Apa iku Service Mesh?

Hello maneh!.. Ing Kawa saka wiwitan kursus "Software Architect" Kita wis nyiapake terjemahan liyane sing migunani.

Apa iku Service Mesh?

Bolong layanan minangka lapisan infrastruktur sing bisa dikonfigurasi, latensi rendah sing dibutuhake kanggo nangani volume komunikasi antar-proses adhedhasar jaringan ing antarane antarmuka pemrograman aplikasi (API). Service Mesh mbisakake komunikasi sing cepet, dipercaya lan aman antarane layanan infrastruktur aplikasi containerized lan asring ephemeral. Service Mesh nyedhiyakake kapabilitas kayata panemuan layanan, imbangan beban, enkripsi, transparansi, keterlacakan, otentikasi lan wewenang, lan dhukungan pola mateni otomatis (pemutus sirkuit).
Bolong layanan biasane dileksanakake kanthi nyedhiyakake saben conto layanan kanthi conto proxy, sing diarani Sidecar. Sidecar nangani komunikasi antarane layanan, ngawasi lan mutusake masalah keamanan, yaiku, kabeh sing bisa abstrak saka layanan individu. Kanthi cara iki, pangembang bisa nulis, njaga, lan nglayani kode aplikasi ing layanan, lan administrator sistem bisa nggarap Service Mesh lan mbukak aplikasi kasebut.

Istio saka Google, IBM lan Lyft saiki dadi arsitektur bolong layanan sing paling misuwur. Lan Kubernetes, sing wiwitane dikembangake ing Google, saiki dadi siji-sijine kerangka orkestrasi wadah sing didhukung dening Istio. Vendor nyoba nggawe versi Istio sing didhukung komersial. Bakal menarik kanggo ndeleng apa sing bisa digawa menyang proyek open source.

Nanging, Istio ora mung pilihan amarga implementasi Service Mesh liyane dikembangake. Pola sidecar proxy minangka implementasine sing paling populer, kaya sing bisa ditemtokake dening proyek Buoyant, HashiCorp, Solo.io lan liya-liyane. Ana uga arsitektur alternatif: toolkit teknologi Netflix minangka salah sawijining pendekatan ing ngendi fungsi Service Mesh diimplementasikake liwat perpustakaan Ribbon, Hysterix, Eureka, Archaius, uga platform kayata Azure Service Fabric.

Service Mesh uga nduweni terminologi dhewe kanggo komponen lan fungsi layanan:

  • Kerangka orkestrasi kontainer. Amarga tambah akeh kontaner sing ditambahake ing infrastruktur aplikasi, perlu alat sing kapisah kanggo ngawasi lan ngatur wadhah - kerangka orkestrasi wadah. Kubernetes wis kuwat manggoni niche iki, dadi malah saingan utama Docker Swarm lan Mesosphere DC / OS nawakake integrasi karo Kubernetes minangka alternatif.
  • Layanan lan Instans (Kubernetes Pods). Instance minangka salinan microservice sing mlaku. Kadhangkala siji conto minangka siji wadhah. Ing Kubernetes, conto kasusun saka klompok cilik wadhah mandiri sing diarani pod. Klien arang ngakses instance utawa pod langsung; luwih kerep, dheweke ngakses layanan, yaiku sakumpulan conto utawa pod (replika) sing identik, bisa diukur lan tahan kesalahan.
  • Proksi Sidecar. Sidecar Proxy bisa digunakake karo siji conto utawa pod. Titik Sidecar Proxy yaiku rute utawa lalu lintas proxy sing asale saka wadah sing dianggo lan bali lalu lintas. Sidecar sesambungan karo Proksi Sidecar liyane lan dikelola dening kerangka orkestrasi. Akeh implementasi Service Mesh nggunakake Sidecar Proxy kanggo nyegat lan ngatur kabeh lalu lintas mlebu lan metu saka conto utawa pod.
  • Service Discovery. Nalika instance kudu komunikasi karo layanan liyane, iku kudu nemokake (nemokake) conto sing sehat lan kasedhiya saka layanan liyane. Biasane, conto nindakake DNS lookups. Kerangka orkestrasi wadah njaga dhaptar conto sing siap nampa panjaluk lan menehi antarmuka kanggo pitakon DNS.
  • Ngimbangi beban. Umume kerangka orkestrasi kontainer nyedhiyakake keseimbangan beban ing lapisan 4 (transportasi). Service Mesh ngetrapake imbangan beban sing luwih rumit ing lapisan 7 (tingkat aplikasi), sugih ing algoritma lan luwih efektif kanggo ngatur lalu lintas. Setelan imbangan beban bisa diganti nggunakake API, ngidini sampeyan ngatur penyebaran biru-ijo utawa kenari.
  • Enkripsi. Service Mesh bisa encrypt lan decrypt panjalukan lan respon, mbusak beban iki saka layanan. Service Mesh uga bisa nambah kinerja kanthi prioritizing utawa nggunakake maneh sambungan terus-terusan ana, ngurangi perlu kanggo komputasi larang kanggo nggawe sambungan anyar. Implementasi paling umum saka enkripsi lalu lintas yaiku mutual TLS (mTLS), ing ngendi infrastruktur kunci umum (PKI) ngasilake lan nyebarake sertifikat lan kunci kanggo digunakake dening Sidecar Proxy.
  • Authentication lan wewenang. Service Mesh bisa menehi wewenang lan otentikasi panjalukan sing digawe saka njaba utawa ing njero aplikasi, mung ngirim panjaluk sing wis divalidasi menyang instansi.
  • Dhukungan pola mateni otomatis. Service Mesh ndhukung pola mati otomatis, sing ngisolasi kedadeyan sing ora sehat banjur mboko sithik bali menyang blumbang kedadeyan sing sehat yen perlu.

Bagean saka aplikasi Service Mesh sing ngatur lalu lintas jaringan ing antarane kedadeyan diarani pesawat data. Nggawe lan masang konfigurasi sing ngontrol prilaku pesawat data, dileksanakake nggunakake kapisah Pesawat Kontrol. Pesawat Kontrol biasane kalebu utawa dirancang kanggo nyambung menyang API, CLI, utawa GUI kanggo kontrol aplikasi.

Apa iku Service Mesh?
Control Plane ing Service Mesh nyebarake konfigurasi antarane Sidecar Proxy lan Data Plane.

Arsitektur Service Mesh asring digunakake kanggo ngatasi masalah operasional sing rumit nggunakake wadhah lan layanan mikro. Pionir ing lapangan layanan mikro minangka perusahaan kayata Lyft, Netflix lan Twitter, sing nyedhiyakake layanan stabil kanggo mayuta-yuta pangguna ing saindenging jagad. (Mangkene tampilan rinci babagan sawetara tantangan arsitektur sing diadhepi Netflix.). Kanggo aplikasi sing kurang nuntut, arsitektur sing luwih prasaja bakal cukup.

Arsitektur Service Mesh ora bisa dadi jawaban kanggo kabeh masalah operasi lan pangiriman aplikasi. Arsitek lan pangembang duwe arsenal alat sing akeh banget, lan mung siji yaiku palu, sing, ing antarane akeh tugas, kudu ngrampungake mung siji - palu kuku. Arsitektur Referensi Microservices saka NGINX, contone, kalebu sawetara model beda sing nyedhiyani continuum saka pendekatan kanggo mecahaken masalah nggunakake microservices.

Unsur sing digabungake ing arsitektur Service Mesh, kayata NGINX, wadah, Kubernetes, lan layanan mikro minangka pendekatan arsitektur, bisa uga produktif ing implementasine non-Service Mesh. Contone, Istio dirancang minangka arsitektur bolong layanan lengkap, nanging modularitas tegese pangembang mung bisa milih lan ngetrapake komponen teknologi sing dibutuhake. Kanthi ngelingi iki, penting kanggo ngembangake pemahaman sing jelas babagan konsep Service Mesh, sanajan sampeyan ora yakin bakal bisa ngetrapake kanthi lengkap ing aplikasi sampeyan.

Monolit modular lan DDD

Source: www.habr.com

Add a comment