Xizmat tarmog'i nima?

Yana salom!.. Kurs boshlanishi arafasida "Dasturiy ta'minot me'mori" Biz yana bir foydali tarjima tayyorladik.

Xizmat tarmog'i nima?

Xizmat ko'rsatish tarmog'i - bu dasturlash interfeyslari (API) o'rtasida katta hajmdagi tarmoqqa asoslangan jarayonlararo aloqalarni boshqarish uchun zarur bo'lgan sozlanadigan, past kechikishli infratuzilma qatlami. Service Mesh konteynerlashtirilgan va tez-tez vaqtinchalik dastur infratuzilmasi xizmatlari o'rtasida tez, ishonchli va xavfsiz aloqani ta'minlaydi. Service Mesh xizmatlarni aniqlash, yukni muvozanatlash, shifrlash, shaffoflik, kuzatuv, autentifikatsiya va avtorizatsiya va avtomatik o'chirish naqshini qo'llab-quvvatlash kabi imkoniyatlarni taqdim etadi (elektron to'xtatuvchidir).
Xizmat ko'rsatish tarmog'i odatda har bir xizmat ko'rsatish nusxasini chaqiruvchi proksi-nasl bilan ta'minlash orqali amalga oshiriladi Yotoq mashinasi. Yotoq mashinasi xizmatlar o'rtasidagi aloqalarni boshqaradi, xavfsizlik muammolarini, ya'ni alohida xizmatlardan ajratilishi mumkin bo'lgan barcha narsalarni nazorat qiladi va hal qiladi. Shunday qilib, ishlab chiquvchilar xizmatlarda dastur kodini yozishi, saqlashi va xizmat ko'rsatishi mumkin, tizim ma'murlari esa Service Mesh bilan ishlashi va dasturni ishga tushirishi mumkin.

Google, IBM va Lyft kompaniyalaridan Istio hozirda eng mashhur xizmat mesh arxitekturasidir. Va dastlab Google-da ishlab chiqilgan Kubernetes hozirda Istio tomonidan qo'llab-quvvatlanadigan yagona konteyner orkestrlash tizimidir. Sotuvchilar Istio-ning tijorat tomonidan qo'llab-quvvatlanadigan versiyalarini yaratishga harakat qilmoqdalar. Ochiq kodli loyihaga qanday yangi narsalarni olib kelishi mumkinligini ko'rish qiziq.

Biroq, Istio yagona variant emas, chunki boshqa Service Mesh ilovalari ishlab chiqilmoqda. Naqsh sidecar proxy Buoyant, HashiCorp, Solo.io va boshqalar loyihalari tomonidan baholanishi mumkin bo'lgan eng mashhur dastur hisoblanadi. Bundan tashqari, muqobil arxitekturalar mavjud: Netflix texnologiyasi asboblar to‘plami Ribbon, Hysterix, Evrika, Archaius kutubxonalari, shuningdek, Azure Service Fabric kabi platformalar orqali Service Mesh funksiyasi amalga oshiriladigan yondashuvlardan biridir.

Service Mesh shuningdek, xizmat komponentlari va funktsiyalari uchun o'z terminologiyasiga ega:

  • Konteynerni orkestrlash ramkasi. Ilova infratuzilmasiga tobora ko'proq konteynerlar qo'shilganligi sababli, konteynerlarni kuzatish va boshqarish uchun alohida vositaga - konteyner orkestratsiyasi ramkasiga ehtiyoj bor. Kubernetes bu joyni mustahkam egalladi, shuning uchun uning asosiy raqobatchilari Docker Swarm va Mesosphere DC/OS ham muqobil sifatida Kubernetes bilan integratsiyani taklif qilishadi.
  • Xizmatlar va misollar (Kubernetes Pods). Misol mikroservisning bitta ishlaydigan nusxasi. Ba'zan bitta misol bitta konteynerdir. Kubernetesda misol pod deb nomlangan mustaqil konteynerlarning kichik guruhidan iborat. Mijozlar to'g'ridan-to'g'ri namuna yoki podkastga kamdan-kam hollarda kirishadi; ko'pincha ular bir xil, kengaytiriladigan va xatoga chidamli misollar yoki pods (replikalar) to'plami bo'lgan xizmatga kirishadi.
  • Sidecar proksi. Sidecar proksi bitta nusxa yoki podkast bilan ishlaydi. Sidecar Proksi-ning maqsadi - u ishlaydigan konteynerdan keladigan trafikni yo'naltirish yoki proksi-server va trafikni qaytarishdir. Sidecar boshqa Sidecar proksi-serverlari bilan o'zaro ta'sir qiladi va orkestratsiya tizimi tomonidan boshqariladi. Ko'pgina Service Mesh ilovalari instansiya yoki podkastdagi va undan tashqaridagi barcha trafikni ushlab turish va boshqarish uchun Sidecar proksi-serveridan foydalanadi.
  • Xizmat kashfiyoti. Agar namuna boshqa xizmat bilan bog'lanishi kerak bo'lsa, u boshqa xizmatning sog'lom va mavjud nusxasini topishi (kashf etishi) kerak. Odatda, misol DNS qidiruvlarini amalga oshiradi. Konteyner orkestratsiyasi tizimi so'rovlarni qabul qilishga tayyor bo'lgan misollar ro'yxatini saqlaydi va DNS so'rovlari uchun interfeysni taqdim etadi.
  • Yukni muvozanatlash. Ko'pgina konteyner orkestrlari ramkalari 4-qatlamda (transport) yuk muvozanatini ta'minlaydi. Service Mesh 7-qatlamda (ilova darajasida) murakkabroq yuk muvozanatini amalga oshiradi, algoritmlarga boy va trafikni boshqarishda samaraliroq. Yuklarni muvozanatlash sozlamalari API yordamida o'zgartirilishi mumkin, bu sizga ko'k-yashil yoki kanareykalarni joylashtirishni boshqarish imkonini beradi.
  • Shifrlash. Service Mesh so'rovlar va javoblarni shifrlashi va shifrini ochishi mumkin, bu yukni xizmatlardan olib tashlaydi. Service Mesh, shuningdek, mavjud doimiy ulanishlarni ustuvorlashtirish yoki qayta ishlatish orqali ish faoliyatini yaxshilashi mumkin, bu esa yangi ulanishlarni yaratish uchun qimmat hisob-kitoblarga bo'lgan ehtiyojni kamaytiradi. Trafik shifrlashning eng keng tarqalgan qo'llanilishi o'zaro TLS (mTLS), bu erda ochiq kalitlar infratuzilmasi (PKI) Sidecar Proxy tomonidan foydalanish uchun sertifikatlar va kalitlarni yaratadi va tarqatadi.
  • Autentifikatsiya va avtorizatsiya. Service Mesh ilovaning tashqarisidan yoki ichidan qilingan so'rovlarni avtorizatsiya qilishi va autentifikatsiya qilishi mumkin, faqat tasdiqlangan so'rovlarni misollarga yuboradi.
  • Avtomatik o'chirish naqshini qo'llab-quvvatlash. Service Mesh qo'llab-quvvatlaydi avtomatik o'chirish naqsh, bu nosog'lom holatlarni ajratib turadi va kerak bo'lganda ularni asta-sekin sog'lom misollar hovuziga qaytaradi.

Service Mesh ilovasining misollar orasidagi tarmoq trafigini boshqaradigan qismi deyiladi Ma'lumotlar tekisligi. Xulq-atvorni boshqaradigan konfiguratsiyani yarating va o'rnating Ma'lumotlar tekisligi, alohida yordamida amalga oshiriladi Boshqaruv tekisligi. Boshqaruv tekisligi odatda ilovani boshqarish uchun API, CLI yoki GUI ga ulanish uchun moʻljallangan yoki oʻz ichiga oladi.

Xizmat tarmog'i nima?
Xizmat ko'rsatish tarmog'idagi boshqaruv tekisligi konfiguratsiyani Sidecar proksi va ma'lumotlar tekisligi o'rtasida taqsimlaydi.

Service Mesh arxitekturasi ko'pincha konteynerlar va mikroservislar yordamida murakkab operatsion muammolarni hal qilish uchun ishlatiladi. Sohadagi kashshoflar mikroservislar Lyft, Netflix va Twitter kabi kompaniyalar butun dunyo bo'ylab millionlab foydalanuvchilarga barqaror xizmatlarni taqdim etadilar. (Bu erda Netflix duch kelgan ba'zi arxitektura muammolari batafsil ko'rib chiqiladi.). Kamroq talab qilinadigan ilovalar uchun oddiyroq arxitekturalar etarli bo'ladi.

Xizmat Mesh arxitekturasi hech qachon ilovalarning ishlashi va yetkazib berish bilan bog'liq barcha muammolarga javob bo'lishi dargumon. Arxitektorlar va ishlab chiquvchilar katta asboblar arsenaliga ega va ulardan faqat bittasi bolg'a bo'lib, u ko'plab vazifalar orasida faqat bittasini - bolg'acha mixlarini hal qilishi kerak. NGINX-dan mikroservislar uchun mos yozuvlar arxitekturasi, masalan, mikroservislar yordamida muammolarni hal qilish uchun yondashuvlarning uzluksizligini ta'minlovchi bir nechta turli modellarni o'z ichiga oladi.

NGINX, konteynerlar, Kubernetes va mikroservislar kabi Service Mesh arxitekturasida birlashgan elementlar meʼmoriy yondashuv sifatida xizmat koʻrsatmaydigan Mesh ilovalarida bir xil darajada samarali boʻlishi mumkin. Misol uchun, Istio to'liq xizmat ko'rsatish mesh arxitekturasi sifatida ishlab chiqilgan, ammo uning modulliligi ishlab chiquvchilar faqat kerakli texnologiya komponentlarini tanlashi va amalga oshirishi mumkinligini anglatadi. Shuni yodda tutgan holda, agar siz uni ilovangizda to'liq amalga oshirishga ishonchingiz komil bo'lmasa ham, Service Mesh kontseptsiyasini aniq tushunishni rivojlantirish muhimdir.

Modulli monolitlar va DDD

Manba: www.habr.com

a Izoh qo'shish