Bagikan melalui


Infrastruktur komunikasi Mesh Layanan

Tip

Konten ini adalah kutipan dari eBook, Merancang Aplikasi .NET Cloud Native untuk Azure, tersedia di .NET Docs atau sebagai PDF gratis yang dapat diunduh yang dapat dibaca secara offline.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Sepanjang bab ini, kami telah mengeksplorasi tantangan komunikasi layanan mikro. Kami mengatakan bahwa tim pengembangan perlu sensitif terhadap bagaimana layanan back-end berkomunikasi satu sama lain. Idealnya, semakin sedikit komunikasi antar-layanan, semakin baik. Namun, penghindaran tidak selalu dimungkinkan karena layanan back-end sering mengandalkan satu sama lain untuk menyelesaikan operasi.

Kami mengeksplorasi berbagai pendekatan untuk menerapkan komunikasi HTTP sinkron dan olahpesan asinkron. Dalam setiap kasus, pengembang dibebani dengan penerapan kode komunikasi. Kode komunikasi rumit dan intensif waktu. Keputusan yang salah dapat menyebabkan masalah performa yang signifikan.

Pendekatan yang lebih modern untuk pusat komunikasi layanan mikro di sekitar teknologi baru dan berkembang pesat berjudul Mesh Layanan. Mesh layanan adalah lapisan infrastruktur yang dapat dikonfigurasi dengan kemampuan bawaan untuk menangani komunikasi layanan ke layanan, ketahanan, dan banyak masalah lintas sektoral. Mesh layanan memindahkan tanggung jawab untuk masalah ini keluar dari layanan mikro dan menuju lapisan mesh layanan. Komunikasi diabstraksi jauh dari layanan mikro Anda.

Komponen kunci dari mesh layanan adalah proksi. Dalam aplikasi cloud-native, instans proksi biasanya ditempatkan dengan setiap layanan mikro. Meskipun dijalankan dalam proses terpisah, keduanya terkait erat dan memiliki siklus hidup yang sama. Pola ini, dikenal sebagai pola Sidecar, dan ditunjukkan pada Gambar 4-24.

Service mesh with a side car

Gambar 4-24. Mesh layanan dengan side car

Perhatikan di gambar sebelumnya menunjukkan bagaimana pesan ditahan oleh proksi yang berjalan bersama setiap layanan mikro. Setiap proksi dapat dikonfigurasi dengan aturan lalu lintas khusus untuk layanan mikro. Setiap proksi memahami pesan dan dapat mengarahkan pesan ke seluruh layanan Anda dan ke dunia luar.

Seiring dengan pengelolaan komunikasi layanan ke layanan, Mesh Layanan menyediakan dukungan untuk penemuan layanan dan penyeimbangan beban.

Setelah dikonfigurasi, service mesh sangat fungsional. Mesh mengambil kumpulan instans yang sesuai dari titik akhir penemuan layanan. Ia mengirimkan permintaan ke instans layanan tertentu, merekam latensi dan jenis respons hasilnya. Ia memilih instans yang paling mungkin mengembalikan respons cepat berdasarkan faktor yang berbeda, termasuk latensi yang diamati untuk permintaan terbaru.

Mesh layanan mengelola masalah lalu lintas, komunikasi, dan jaringan di tingkat aplikasi. Ia memahami pesan dan permintaan. Mesh layanan biasanya terintegrasi dengan orkestrator kontainer. Kubernetes mendukung arsitektur yang dapat diperluas di mana mesh layanan dapat ditambahkan.

Pada bab 6, kita mendalami teknologi Mesh Layanan termasuk diskusi tentang arsitekturnya dan implementasi sumber terbuka yang tersedia.

Ringkasan

Dalam bab ini, kami membahas pola komunikasi cloud-native. Kami mulai dengan memeriksa bagaimana klien front-end berkomunikasi dengan layanan mikro back-end. Sepanjang jalan, kami berbicara tentang platform API Gateway dan komunikasi real time. Kami kemudian melihat bagaimana layanan mikro berkomunikasi dengan layanan back-end lainnya. Kami melihat komunikasi HTTP sinkron dan pesan asinkron di seluruh layanan. Kami membahas gRPC, teknologi yang akan datang di dunia cloud-native. Akhirnya, kami memperkenalkan teknologi baru dan berkembang pesat berjudul Service Mesh yang dapat menyederhanakan komunikasi layanan mikro.

Penekanan khusus ada pada layanan Azure terkelola yang dapat membantu menerapkan komunikasi dalam sistem cloud-native:

Kami selanjutnya beralih ke data terdistribusi dalam sistem cloud-native dan manfaat serta tantangan yang diberikannya.

Referensi