Asosiy kontentga o‘tish
Innovialabs

Service mesh nima: Istio, Linkerd va u qachon haqiqatan kerak

Asoslar4 daq

Qisqacha

Service mesh — servislar o‘rtasidagi trafikni o‘z zimmasiga oladigan proksilar qatlami bo‘lib, koddagi o‘zgarishlarsiz mTLS, retry, trafikni bo‘lish va telemetriya qo‘shadi; u servislar ko‘p va xavfsizlik talablari qat’iy bo‘lganda o‘zini oqlaydi, kichik jamoa uchun esa odatda ortiqcha.

Service mesh nima

Mikroservis tizimida servislar doimiy ravishda bir-birini chaqiradi. Har bir chaqiruvga shifrlash, taymaut, retry, metrikalar va kirish qoidalari kerak. Mesh bo‘lmasa, har bir jamoa buni o‘z kodi va kutubxonalarida, har bir tilda o‘zicha amalga oshiradi.

Service mesh bu mantiqni infratuzilmaga olib chiqadi. U ikki qismdan iborat:

  • Data plane — servislar orasidagi har bir so‘rov yo‘lida turib, qoidalarni qo‘llaydigan proksilar.
  • Control plane — barcha proksilarni sozlaydigan, sertifikatlar chiqaradigan va konfiguratsiyangizni ularning sozlamalariga aylantiradigan komponent.

Ilova oddiy HTTP yoki gRPC chaqiruv qiladi. Bu chaqiruvni qanday himoyalash, qayerga yo‘naltirish va qanday o‘lchashni mesh hal qiladi.

Sidecar va sidecarless

Sidecar modeli. Kubernetes ning har bir podida ilova konteyneri yonida proksi konteyner ishlaydi. Podning barcha kiruvchi va chiquvchi trafigi u orqali o‘tadi.

[Pod A: app | proxy] ---mTLS---> [Pod B: proxy | app]
  • Afzalliklari: har bir servis uchun aniq nazorat, yetuk va tushunarli model.
  • Kamchiliklari: har bir podda qo‘shimcha konteyner, umumiy hisobda ko‘proq xotira va CPU, yangilash ko‘pincha podlarni qayta ishga tushirishni talab qiladi.

Sidecarless modeli. Har bir podda proksi o‘rniga nodadagi umumiy komponent asosiy shifrlangan transportni ta’minlaydi, murakkab HTTP funksiyalari uchun og‘irroq proksilar esa faqat kerakli joyda ulanadi. Istio dagi ambient mode shunday tuzilgan; ba’zi mesh lar yadroda eBPF dan ham foydalanadi.

  • Afzalliklari: kamroq qo‘shimcha xarajat, ulanishda podlarni qayta ishga tushirish shart emas.
  • Kamchiliklari: yangiroq yondashuv, prodakshn tajribasi kamroq, izolyatsiya va nosozliklar modeli boshqacha.

Mesh nima beradi

  • Servislar orasida mTLS: har bir ulanish shifrlangan, ikkala tomon mesh o‘zi chiqaradigan va almashtiradigan sertifikatlar bilan shaxsini tasdiqlaydi.
  • Avtorizatsiya siyosatlari: «faqat orders payments ni chaqira oladi» — IP bo‘yicha emas, servis identifikatori bo‘yicha.
  • Retry va taymautlar: markazlashgan holda va hamma uchun bir xil sozlanadi.
  • Trafikni bo‘lish: canary reliz uchun so‘rovlarning bir qismini yangi versiyaga yuborish yoki test uchun trafikni ko‘zgulash.
  • Circuit breaking va outlier detection: nosoz nusxalarga so‘rov yuborishni to‘xtatish.
  • Telemetriya: har bir servis juftligi uchun so‘rovlar chastotasi, xatolar va kechikishlar hamda taqsimlangan tracing qo‘llovi — asosiy metrikalar kodni instrumentatsiya qilmasdan.

Muhim: tracing uchun servislar baribir trace sarlavhalarini uzatishi kerak. Jarayoningiz ichidagi kiruvchi va chiquvchi chaqiruvni mesh o‘zi bog‘lay olmaydi.

Istio va Linkerd

IstioLinkerd
ProksiEnvoy (sidecar) yoki ambient modeRust da yozilgan o‘z yengil proksisi
QamrovJuda keng: ingress, egress, murakkab marshrutlash, kengaytiriluvchanlikAsosiysiga e’tibor: mTLS, ishonchlilik, metrikalar
MurakkablikYuqoriroq, ko‘p CRD va sozlamalarPastroq, o‘rnatish va yuritish osonroq
ResurslarSidecar rejimida og‘irroqOdatda yengilroq
Kimga mosMurakkab trafik qoidalari bor yirik platformalargamTLS va kuzatuvchanlikni kam kuch bilan olmoqchi bo‘lgan jamoalarga

Ikkala loyiha ham CNCF tarkibida va prodakshnda ishlatiladi. Tanlashdan oldin litsenziya va reliz chiqarish shartlarini tekshiring — ular o‘zgarishi mumkin.

Halol mezonlar: sizga kerakmi

Mesh — kimdir yangilashi, debug qilishi va tungi soat uchda tushunishi kerak bo‘lgan to‘laqonli infratuzilma. Ehtimol, usiz ishlagan ma’qul, agar:

  • Sizda bir nechta servis bor va ular bitta jamoaga tegishli.
  • Siz Kubernetes da emassiz yoki uni ishonchli yuritadigan odam yo‘q.
  • Talab «klaster ichida shunchaki HTTPS» — soddaroq yechim yetadi.
  • Hali asosiy metrikalar, loglar va alertlar yo‘q. Ulardan boshlang.

Mesh mantiqli bo‘ladi, qachonki:

  • Turli tillardagi ko‘plab servislarga yagona xavfsizlik va ishonchlilik qoidalari kerak.
  • Komplayens butun ichki trafikni shifrlash va identifikatsiya qilishni talab qiladi.
  • Siz tez-tez canary reliz qilasiz va trafikni aniq boshqarish kerak.
  • Unga egalik qiladigan platforma jamoasi bor.

Kichik jamoalar uchun muqobillar: kirishda API gateway, umumiy klient kutubxonasida retry va taymautlar, Kubernetes da network policies.

Ko‘p uchraydigan xatolar

  • Aniq muammo yo‘q paytda mesh ni «zamonaviy bo‘lsin» deb o‘rnatish.
  • Ikki karra retry: ilovada ham, mesh da ham retry insident vaqtida yuklamani ko‘paytiradi.
  • Qat’iy mTLS ni bir qadamda yoqish va hali mesh da bo‘lmagan servislarni buzish. Avval permissive rejimdan foydalaning.
  • Proksilar uchun resurs limitlarini belgilamaslik va klaster hisobidan hayron qolish.

Ko‘p beriladigan savollar

To‘liq emas. Gateway tizimga tashqaridan kiruvchi trafikni qayta ishlaydi: foydalanuvchilar autentifikatsiyasi, limitlar, ommaviy marshrutlash. Mesh esa ichki servislar orasidagi trafik uchun javob beradi. Ko‘pincha ikkalasi ishlatiladi, ba’zi mesh larda esa o‘z ingress gateway komponenti bor.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.