Naon ari Service Mesh?

Halo deui!.. Dina malem mimiti kursus "Software Arsitek" Kami parantos nyiapkeun tarjamahan sanés anu mangpaat.

Naon ari Service Mesh?

Bolong jasa mangrupikeun lapisan infrastruktur anu tiasa dikonfigurasi, low-latency anu diperyogikeun pikeun nanganan volume komunikasi antar-prosés dumasar jaringan antara antarmuka program aplikasi (API). Service Mesh ngamungkinkeun komunikasi gancang, dipercaya jeung aman antara jasa infrastruktur aplikasi containerized sarta mindeng ephemeral. Service Mesh nyayogikeun kamampuan sapertos penemuan jasa, kasaimbangan beban, enkripsi, transparansi, traceability, auténtikasi sareng otorisasina, sareng dukungan pola otomatis-pareum (pemutus sirkuit).
Bolong jasa biasana dilaksanakeun ku nyayogikeun unggal conto jasa sareng conto proxy, anu disebut Sidecar. Sidecar nanganan komunikasi antara jasa, ngawas sarta ngabéréskeun masalah kaamanan, nyaeta, sagalana nu bisa abstrak tina jasa individu. Ku cara ieu, pamekar tiasa nyerat, ngajaga, sareng ngalayanan kode aplikasi dina jasa, sareng pangurus sistem tiasa damel sareng Service Mesh sareng ngajalankeun aplikasi.

Istio ti Google, IBM sareng Lyft ayeuna mangrupikeun arsitektur bolong jasa anu paling kasohor. Sareng Kubernetes, anu mimitina dikembangkeun di Google, ayeuna mangrupikeun hiji-hijina kerangka orkestrasi wadah anu dirojong ku Istio. Vendor nyobian nyiptakeun versi Istio anu dirojong sacara komersil. Éta bakal pikaresepeun pikeun ningali naon hal-hal anyar anu tiasa dibawa ka proyék open source.

Nanging, Istio sanés hiji-hijina pilihan sabab palaksanaan Service Mesh anu sanés dikembangkeun. Pola sidecar proxy mangrupikeun palaksanaan anu paling populér, sapertos anu tiasa ditilik ku proyék Buoyant, HashiCorp, Solo.io sareng anu sanésna. Aya ogé arsitéktur alternatif: toolkit téknologi Netflix mangrupikeun salah sahiji pendekatan dimana fungsionalitas Service Mesh dilaksanakeun ngaliwatan perpustakaan Ribbon, Hysterix, Eureka, Archaius, ogé platform sapertos Azure Service Fabric.

Service Mesh ogé gaduh terminologi sorangan pikeun komponén sareng fungsi jasa:

  • Kerangka orkestrasi wadah. Salaku beuki loba peti ditambahkeun kana infrastruktur aplikasi, aya anu peryogi pikeun alat misah pikeun ngawas sarta ngatur peti - a container orchestration framework. Kubernetes parantos nempatan niche ieu, dugi ka pesaing utama Docker Swarm sareng Mesosphere DC / OS nawiskeun integrasi sareng Kubernetes salaku alternatif.
  • Jasa sareng Instans (Kubernetes Pods). Hiji conto mangrupakeun salinan ngajalankeun tunggal microservice a. Kadang hiji conto hiji wadah. Dina Kubernetes, instance diwangun ku sakelompok leutik wadah mandiri anu disebut pod. Klién jarang ngaksés instan atanapi pod sacara langsung; langkung sering, aranjeunna ngaksés jasa, nyaéta sakumpulan instansi atanapi pods anu idéntik, skalabel sareng toleran kasalahan (réplika).
  • Proksi Sidecar. Sidecar Proxy tiasa dianggo sareng hiji conto atanapi pod. Titik Sidecar Proxy nyaéta pikeun rute atanapi lalu lintas proxy anu asalna tina wadahna anu dianggo sareng balikkeun lalu lintas. Sidecar berinteraksi sareng Proxies Sidecar anu sanés sareng diurus ku kerangka orkestrasi. Seueur palaksanaan Service Mesh nganggo Sidecar Proxy pikeun nyegat sareng ngatur sadaya lalu lintas asup sareng kaluar tina conto atanapi pod.
  • Papanggihan Service. Nalika hiji instansi kedah komunikasi sareng jasa anu sanés, éta kedah mendakan (manggihan) conto anu séhat sareng sayogi tina jasa anu sanés. Ilaharna, conto ngalakukeun DNS lookups. Kerangka orkestrasi wadahna ngajaga daptar instansi anu siap nampi pamundut sareng nyayogikeun antarmuka pikeun patarosan DNS.
  • Balancing beban. Seuseueurna kerangka orkestrasi wadah nyayogikeun kasaimbangan beban dina lapisan 4 (transportasi). Service Mesh ngalaksanakeun kasaimbangan beban anu langkung kompleks dina lapisan 7 (tingkat aplikasi), beunghar ku algoritma sareng langkung efektif dina ngatur lalu lintas. Setélan balancing beban tiasa dirobih nganggo API, ngamungkinkeun anjeun pikeun ngatur panyebaran biru-héjo atanapi kenari.
  • Énkripsi. Service Mesh tiasa énkripsi sareng ngadekrip pamundut sareng réspon, ngaleungitkeun beban ieu tina jasa. Service Mesh ogé bisa ningkatkeun kinerja ku prioritizing atawa make deui sambungan pengkuh aya, ngurangan kabutuhan komputasi mahal pikeun nyieun sambungan anyar. Palaksanaan paling umum tina enkripsi lalulintas nyaéta silih TLS (mTLS), dimana infrastruktur konci umum (PKI) ngahasilkeun sarta ngadistribusikaeun sertipikat sarta konci pikeun pamakéan ku Sidecar Proxy.
  • Auténtikasi sareng Otorisasi. Service Mesh tiasa otorisasi sareng ngabuktoskeun kaaslianana pamundut ti luar atanapi di jero aplikasi, ngan ukur ngirimkeun pamundut anu disahkeun ka instansi.
  • Dukungan pola pareum otomatis. Service Mesh ngarojong pola mareuman otomatis, nu ngasingkeun instansi damang lajeng laun balik deui ka kolam renang instansi cageur lamun diperlukeun.

Bagian tina aplikasi Service Mesh anu ngatur lalu lintas jaringan antara instansi disebut Data Plane. Jieun tur nyebarkeun konfigurasi nu ngatur kabiasaan Data Plane, dipigawé maké misah Pesawat kontrol. Pesawat kontrol ilaharna ngawengku atawa dirancang pikeun nyambung ka API, CLI, atawa GUI pikeun ngadalikeun aplikasi.

Naon ari Service Mesh?
Control Plane dina Service Mesh ngadistribusikaeun konfigurasi antara Sidecar Proxy jeung Data Plane.

Arsitéktur Service Mesh sering dianggo pikeun ngarengsekeun masalah operasional anu rumit nganggo wadah sareng jasa mikro. Panaratas dina widang microservices perusahaan sapertos Lyft, Netflix sareng Twitter, anu nyayogikeun jasa anu stabil pikeun jutaan pangguna di sakumna dunya. (Ieu katingal rinci ngeunaan sababaraha tantangan arsitéktur anu disanghareupan Netflix.). Pikeun aplikasi anu kirang nungtut, arsitéktur anu langkung saderhana sigana cekap.

Arsitéktur Service Mesh sigana moal janten jawaban pikeun sadaya operasi aplikasi sareng masalah pangiriman. Arsiték sarta pamekar boga arsenal badag pakakas, sarta ngan salah sahijina nyaéta palu, nu, diantara loba tugas, kudu ngajawab ngan hiji - hammering paku. Microservices Rujukan Arsitéktur ti NGINX, contona, ngawengku sababaraha model béda nu nyadiakeun continuum pendekatan pikeun ngarengsekeun masalah ngagunakeun microservices.

Unsur-unsur anu ngahiji dina arsitektur Service Mesh, sapertos NGINX, wadah, Kubernetes, sareng microservices salaku pendekatan arsitéktur, tiasa sami-sami produktif dina palaksanaan Non-Service Mesh. Salaku conto, Istio dirarancang salaku arsitéktur bolong jasa lengkep, tapi modularitasna hartosna pamekar ngan ukur tiasa milih sareng nerapkeun komponén téknologi anu diperyogikeun. Kalayan dina pikiran ieu, penting pikeun ngembangkeun pamahaman anu jelas ngeunaan konsép Service Mesh, sanaos anjeun henteu yakin yén anjeun bakal tiasa nerapkeun sapinuhna dina aplikasi anjeun.

Monoliths modular jeung DDD

sumber: www.habr.com

Tambahkeun komentar