Layanan mesh untuk layanan microser. Bagian I

Terjemahan artikel disiapkan khusus untuk siswa program Platform Infrastruktur Berbasis Kubernet .




Jika Anda telah mengikuti tren dalam arsitektur cloud dan didistribusikan dalam beberapa tahun terakhir, Anda mungkin pernah mendengar lebih dari satu kali tentang layanan microser. Mereka muncul beberapa tahun yang lalu, dan sejak itu peran mereka dalam penyebaran cloud perusahaan hanya tumbuh. Semakin banyak perusahaan yang beralih ke layanan-layanan mikro dan menyatakan ini dalam publikasi dan siaran pers mereka.

Pilihan mereka dibenarkan, tetapi hanya sedikit yang tahu apa yang ada di balik transisi semacam itu. Dengan implementasi yang tepat, layanan microser memecahkan banyak masalah arsitektur monolitik: mereka mudah untuk diulang dan didistribusikan ke dalam kelompok, dan kode dapat dengan mudah dibagi menjadi komponen yang dikelola. Namun, dalam sebagian besar publikasi tidak ada sepatah kata pun tentang pekerjaan berikutnya dengan layanan dan perangkat microser yang diperlukan untuk penggunaannya yang efektif.

Hari ini kita melihat ke belakang layar dan melihat apa yang dimaksud dengan service mesh, bagaimana teknologi ini membantu menyelesaikan masalah arsitektur layanan mikro dan menyederhanakan pekerjaan pengembang. Saya harap Anda mendapatkan gagasan terperinci tentang perannya dalam penyebaran layanan-mikro.

Apa yang dimaksud dengan service mesh?


Service mesh (istilah "jaringan layanan microser", "jaringan mesh layanan microser" juga digunakan) adalah lapisan abstrak dari infrastruktur yang mendefinisikan interaksi antara layanan microser dari suatu aplikasi. Teknologi ini menggunakan koneksi jaringan antar wadah untuk mengontrol interaksi berbagai komponen aplikasi. Kedengarannya sangat abstrak, tetapi sebenarnya ini adalah konsep yang sangat praktis. Kontainer berinteraksi melalui jaringan, sehingga mengubah topologi jaringan memungkinkan Anda untuk mengubah urutan wadah berinteraksi.



Kolaborasi yang efektif memainkan peran penting dalam layanan mikro. Mengelola interaksi ini dengan jala layanan memberikan banyak manfaat. Jadi, ketika Anda menggunakan versi komponen baru, Anda dapat langsung berpindah perangkat jaringan dari yang lama ke yang baru tanpa konfigurasi tambahan. Jika Anda mengalami kesulitan dalam penskalaan, Anda dapat menggunakan jala servis untuk mengalihkan lalu lintas ke berbagai penyeimbang beban dan menambah jumlah kontainer untuk komponen aplikasi.

Tip yang populer bagi mereka yang mulai bekerja dengan layanan microser adalah: perlakukan berbagai komponen aplikasi sebagai API penyedia yang sama sekali berbeda. Teknologi layanan jala memungkinkan Anda untuk menerapkan prinsip ini di tingkat jaringan dan secara akurat menentukan layanan mana yang akan tersedia di berbagai lokasi jaringan. Jika Anda memindahkan atau memodifikasi layanan, alih-alih menggunakan konfigurasi baru, Anda hanya perlu mengubah interaksi jaringan.

Apa yang diberikannya?


Layanan Microsoft populer untuk skalabilitasnya yang luas dan cocok untuk bekerja dengan aplikasi besar yang dapat dipecah menjadi komponen yang mudah dikelola. Arsitektur monolitik, sebaliknya, nyaman di daerah di mana sentralisasi penting. Dalam aplikasi monolitik, lebih mudah untuk merekam peristiwa, karena mereka berjalan di lokasi yang sama. Kontrol versi juga mudah, karena satu instance ditimpa. Tidak mengherankan bahwa banyak pengembang hilang dalam transisi dari arsitektur monolitik ke microservice, di mana tidak ada satu lokasi untuk penjurnalan dan lebih sulit untuk memilih versi komponen yang diperlukan.



Keuntungan dari teknologi layanan mesh adalah bahwa ia memainkan peran sebagai sumber pusat dari beberapa data, khususnya data tentang interaksi jaringan. Pertimbangkan contoh penerapan komponen aplikasi versi baru di atas. Alih-alih menghancurkan semua wadah yang berisi versi lama, meluncurkan wadah baru dengan versi baru dan mengulangi proses ini untuk komponen terkait lainnya, Anda dapat mengontrol wadah mana yang akan terlihat oleh wadah lain di jaringan.

Ini berarti bahwa untuk menggunakan versi baru, cukup dengan hanya menentukan kontainer baru sebagai target menggunakan DNS, untuk menargetkan load balancer baru atau untuk mengubah kontainer yang ditargetkan oleh balancer yang ada.

Dengan berfokus pada interaksi antara komponen aplikasi (pada jaringan mesh di mana mereka bekerja), Anda dapat mempertahankan tingkat sentralisasi tertentu, yang menyederhanakan administrasi dalam lingkungan monolitik. Perlu informasi lebih lanjut tentang lalu lintas yang melewati aplikasi? Tambahkan kemampuan pemantauan ke jaringan antar komponen. Ingin meningkatkan keamanan? Terapkan enkripsi dan HTTPS yang kuat. Semua ini dimungkinkan berkat mesh layanan .

Ingin tahu lebih banyak?


Dalam beberapa minggu ke depan kita akan mempelajari secara lebih rinci pengoperasian jaringan mesh dan aplikasi praktisnya dalam beberapa skenario penyebaran layanan-layanan microser. Kami akan fokus pada manfaat nyata dari teknologi ini: kontrol yang efektif, pengelolaan, dan kemampuan untuk memantau proses aplikasi besar.

Source: https://habr.com/ru/post/id476358/


All Articles