Anda berada di sini > Berita

Berita

Mengapa aplikasi perusahaan memerlukan seni bina Mesh perkhidmatan

Tarikh:2021-02-10Panas:223

Kerana perusahaan semakin beralih dari rabbani kepada seni bina microservices, ia pasukan berhadapan dengan masalah berkesan kes microservices ini. Apabila kita mempunyai satu aplikasi yang dicipta dengan beberapa perkhidmatan yang berbeza, komunikasi di antara mereka boleh diuruskan dengan mudah. Walau bagaimanapun, aplikasi perusahaan dengan 100s atau 1000s microservices yang berbeza memerlukan penyelesaian yang lebih baik untuk mengimbangi beban, pemantauan, penghalaan lalu lintas dan keselamatan.

Masukkan perkhidmatanSeni bina mesh.

Perkhidmatan seni bina Mesh

Mesh perkhidmatan adalah satu lapisan infrastruktur yang menguruskan komunikasi perkhidmatan-ke-perkhidmatan, dan menyediakan satu cara untuk laluan dinamik, monitor dan aplikasi berasaskan microservice yang selamat.

Sebelum ini, logik yang mentadbir komunikasi antara perkhidmatan adalah dikodkan ke dalam microservice setiap. Tetapi itu bukan pilihan yang boleh dilaksanakan apabila berurusan dengan sejumlah besar microservices, atau cuci aplikasi dengan menambah perkhidmatan baru.

Penyelesaian adalah untuk mempunyai proksi-proksi yang menguruskan komunikasi perkhidmatan-ke-perkhidmatan, berjalan di sebelah microservice setiap dan bukannya di dalamnya. Ini juga dikenali sebagai proksi 'sidecar' dan bersama-sama mereka membentuk seni bina mesh disarikan yang menguruskan komunikasi microservices.

Mengapa ini diperlukan?

Objektif dengan microservices adalah untuk membina aplikasi sebagai koleksi perkhidmatan bebas yang pada dasarnya boleh gagal tanpa menyebabkan gangguan seluruh sistem. Dalam amalan walau bagaimanapun, kebanyakan aplikasi berasaskan microservice mula beroperasi dengan komunikasi langsung antara perkhidmatan. Kerana kerumitan aplikasi dan bilangan microservices meningkat, ini mewujudkan kesalingbergantungan yang lebih besar antara perkhidmatan, sekali gus mengurangkan ketangkasan dan ketahanan sistem.

Dan oleh itu aplikasi perusahaan kompleks dengan sejumlah besar microservices memerlukan seni bina mesh perkhidmatan.

Bukankah itu api apa pula?

Ya, api melaksanakan fungsi yang sama sebagai mesh perkhidmatan iaitu Mengawal aliran maklumat. Perbezaan utama terletak pada jenis komunikasi yang mereka kawal.

Gerbang API menguruskan komunikasi antara aplikasi, dan lain-lain dalam dan di luar seni bina perusahaan.Ia menyediakan titik kemasukan tunggal ke dalam aplikasi, untuk permintaan dari semua pelanggan luaran, dan mengendalikan pengesahan pengguna, penghalaan, pemantauan dan pengendalian ralat. Ia juga abstrak kerumitan asas permohonan, dengan microservices komponen, dari pelanggan luar.

Seni bina mesh perkhidmatan di sisi lain menguruskan komunikasi antara microservices dalam permohonan.

Semua sidecars proksi yang membentuk mesh perkhidmatan disenaraikan dalam pendaftaran perkhidmatan. Setiap microservice yang ingin meminta maklumat (pelanggan microservice) akan mempunyai sidecar proksi yang mencari pendaftaran untuk mencari proksi-proksi yang disediakan yang berkaitan dengan microservice sasaran. Ia kemudian menggunakan algoritma mengimbangi beban yang ditetapkan untuk mengarahkan permintaan kepada proksi yang betul.

Apakah masalah yang menyelesaikan mesh perkhidmatan?

Mesh perkhidmatan terutamanya menyelesaikan kebimbangan sekitar meningkatkan kesalingbergantungan yang menjalar ke dalam aplikasi berasaskan microservice kerana mereka skala kerumitan. Berikut adalah bagaimana:

Menggerakkan pelbagai versi microservice serentak

Siaran kenari, atau memperkenalkan versi baru microservice untuk pilih nombor atau jenis permintaan, adalah cara yang standard untuk memudahkan dalam penambahan ciri-ciri baru. Walau bagaimanapun, berkesan penghalaan permintaan antara versi lama dan baru boleh menjadi sukar apabila logik dikodkan dalam setiap perkhidmatan, kerana mereka cenderung untuk mempunyai interdependencies perkhidmatan lain. Begitu juga, versi microservice ujian A/B juga memerlukan keupayaan penghalaan dinamik yang terbaik disampaikan oleh mesh perkhidmatan.

Seni bina mesh perkhidmatan mempunyai peraturan penghalaan, dan boleh membuat keputusan untuk mengarahkan pertanyaan perkhidmatan sumber kepada versi yang betul perkhidmatan sasaran. Lapisan komunikasi decoupled ini mengurangkan jumlah kod yang ditulis untuk setiap microservice, sementara masih lebih baik menguruskan logik penghalaan antara perkhidmatan.

Penglihatan terperinci ke dalam komunikasi antara perkhidmatan

Dalam seni bina kompleks microservices, ia boleh menjadi sukar untuk pin-point lokasi sebenar kesalahan. Tetapi apabila semua komunikasi diarahkan melalui mesh perkhidmatan, ada cara untuk mengumpul log dan metrik prestasi pada semua aspek microservices. Ini menjadikan ia lebih mudah untuk menjana laporan terperinci dan mudah mengesan titik kegagalan.

Log dari mesh perkhidmatan juga boleh digunakan untuk membuat tanda aras standard untuk permohonan itu. Sebagai contoh, berapa lama menunggu sebelum mencuba semula perkhidmatan yang gagal. Sebaik sahaja kaedah-kaedah ini dikodkan ke dalam mesh perkhidmatan, operasi microservices menjadi dioptimumkan kerana sistem tidak mendapat terbeban dengan ping yang tidak perlu untuk perkhidmatan hiliran yang gagal sebelum tempoh masa yang diperlukan.

Ujian Microservice

Menguji setiap microservice secara berasingan adalah penting untuk memastikan ketahanan aplikasi. Terdapat juga keadaan di mana anda perlu menguji tingkah laku perkhidmatan apabila kesilapan diperkenalkan dalam perkhidmatan hiliran. Dan itu sukar dan berisiko untuk dilakukan jika kita memaksa kesilapan tersebut sebenarnya berlaku dalam perkhidmatan.

Mesh perkhidmatan adalah cara yang sempurna untuk mensimulasikan kesilapan ini dalam sistem dan mengkaji tindak balas yang berkaitan.

Toleransi kesalahan

Daya tahan adalah sebab utama mengapa seni bina microservices lebih disukai, dan unsur-unsur seperti pemutus litar, mengimbangi beban, mengehadkan kadar dan timeouts adalah apa yang membuat ini mungkin. Kaedah-kaedah ini biasanya dikodkan ke dalam setiap microservice, sekali gus meningkatkan kerumitan dalam sistem, selain memakan masa untuk mencipta.

Sekali lagi, mesh perkhidmatan boleh digunakan untuk meningkatkan toleransi kesalahan dengan mengambil fungsi ini daripada microservices dan menambahnya ke mesh. Ini boleh dilaksanakan melalui satu set peraturan yang akan mengawal semua microservices dalam permohonan itu, tanpa benar-benar cluttering pelaksanaan microservice.

Jadi itu adalah cepat berjalan ke bawah pada seni bina mesh perkhidmatan dan mengapa ia menjadi satu keperluan infrastruktur yang penting untuk aplikasi perusahaan. Berikutan blog akan meneroka pelaksanaan mesh perkhidmatan secara mendalam, dan menilai pelbagai alat seperti Istio, Linkerd dan banyak lagi untuk pelaksanaan senibina mesh perkhidmatan.

 

 

Sepasang:Mesh logam berlubang hiasan

Seterusnya:Aluminium berkembang logam Mesh Cladding

Artikel berkaitan

leave your message