Шабакаи хидматрасонӣ чист?

Боз салом!.. Дар арафаи огози курс "Архитектори нармафзор" Мо боз як тарҷумаи муфидро омода кардем.

Шабакаи хидматрасонӣ чист?

Шабакаи хидматрасонӣ як қабати конфигуратсияшавандаи инфрасохтори камдаромад аст, ки барои коркарди ҳаҷми зиёди иртиботи байни равандҳои ба шабака асосёфта байни интерфейсҳои барномасозии барнома (API) лозим аст. Service Mesh иртиботи зуд, боэътимод ва бехатарро байни хидматрасониҳои инфрасохтори барномавии контейнерӣ ва аксаран эфемерӣ фароҳам меорад. Service Mesh имкониятҳоро ба монанди кашфи хадамот, мувозинати сарборӣ, рамзгузорӣ, шаффофият, пайгирӣ, аутентификатсия ва авторизатсия ва дастгирии намунаи худкор хомӯш мекунад (сими барқ).
Шабакаи хидматрасонӣ маъмулан тавассути таъмини ҳар як мисоли хидматрасонӣ бо мисоли прокси, ки ном дорад, амалӣ карда мешавад Ароба. Ароба муоширати байни хадамотро идора мекунад, масъалаҳои амниятро назорат ва ҳал мекунад, яъне ҳама чизеро, ки аз хидматҳои инфиродӣ ҷудо кардан мумкин аст. Бо ин роҳ, таҳиягарон метавонанд рамзи барномаро дар хидматҳо нависад, нигоҳдорӣ ва хидмат расонанд ва маъмурони система метавонанд бо Service Mesh кор кунанд ва барномаро иҷро кунанд.

Istio аз Google, IBM ва Lyft дар айни замон машҳуртарин меъмории хидматрасонӣ мебошад. Ва Kubernetes, ки аслан дар Google таҳия шудааст, ҳоло ягона чаҳорчӯбаи оркестри контейнерӣ мебошад, ки аз ҷониби Istio дастгирӣ карда мешавад. Фурӯшандагон кӯшиш мекунанд, ки версияҳои аз ҷиҳати тиҷоратӣ дастгирӣшавандаи Istio эҷод кунанд. Ҷолиб хоҳад буд, ки онҳо ба лоиҳаи кушодаасос чӣ чизҳои нав оварда метавонанд.

Аммо, Istio ягона вариант нест, зеро дигар татбиқи Service Mesh таҳия карда мешаванд. Намуна sidecar proxy татбиқи маъмултарин мебошад, ки онро лоиҳаҳои Buoyant, HashiCorp, Solo.io ва дигарон метавон арзёбӣ кард. Архитектураҳои алтернативӣ низ мавҷуданд: абзори технологияи Netflix яке аз равишҳоест, ки дар он функсияҳои Service Mesh тавассути китобхонаҳои Ribbon, Hysterix, Eureka, Archaius ва инчунин платформаҳо ба монанди Azure Service Fabric амалӣ карда мешаванд.

Service Mesh инчунин истилоҳоти худро барои ҷузъҳо ва функсияҳои хидматрасонӣ дорад:

  • Чаҳорчӯбаи оркестрсозии контейнер. Вақте ки ба инфрасохтори барнома контейнерҳои бештар илова карда мешаванд, зарурати асбоби алоҳида барои назорат ва идоракунии контейнерҳо - чаҳорчӯбаи оркестрсозии контейнер вуҷуд дорад. Кубернетес ин ҷойро ба таври қатъӣ ишғол кардааст, ки ҳатто рақибони асосии он Docker Swarm ва Mesosphere DC/OS ҳамгироиро бо Kubernetes ҳамчун алтернатива пешниҳод мекунанд.
  • Хидматҳо ва мисолҳо (Kubernetes Pods). Мисол як нусхаи ягонаи иҷрокунандаи хидмати микроист. Баъзан як мисол як контейнер аст. Дар Кубернетес, як мисол аз як гурӯҳи хурди контейнерҳои мустақил иборат аст, ки pod номида мешаванд. Мизоҷон ба як инстансия ё подкаст хеле кам дастрасӣ пайдо мекунанд; аксар вақт онҳо ба хидмате дастрасӣ пайдо мекунанд, ки маҷмӯи инстансияҳо ё порчаҳои якхела, миқёспазир ва ба хатоҳо таҳаммулпазир аст (реплика).
  • Прокси Sidecar. Sidecar Proxy бо як инстансия ё pod кор мекунад. Мақсади Sidecar Proxy ин масир ё прокси трафики аз контейнере, ки бо он кор мекунад ва баргардонидани трафик аст. Sidecar бо дигар проксиҳои Sidecar ҳамкорӣ мекунад ва аз ҷониби чаҳорчӯбаи оркестр идора карда мешавад. Бисёре аз татбиқи Service Mesh Proxy Sidecar-ро барои боздоштан ва идора кардани тамоми трафики дохил ва берун аз инстансия ё pod истифода мебаранд.
  • Кашфи хидмат. Вақте ки инстансия бояд бо хидмати дигар муошират кунад, он бояд як намунаи солим ва дастраси хидмати дигарро пайдо кунад (кашф кунад). Одатан, инстансия ҷустуҷӯҳои DNS-ро иҷро мекунад. Чаҳорчӯбаи оркестрсозии контейнер рӯйхати мисолҳоеро нигоҳ медорад, ки барои қабули дархостҳо омодаанд ва интерфейси дархостҳои DNS-ро таъмин мекунанд.
  • Мувозинати сарборӣ. Аксари чаҳорчӯбаҳои оркестрсозии контейнер мувозинати сарборӣ дар қабати 4 (наклиёт) таъмин мекунанд. Service Mesh мувозинати мураккабтари сарбориро дар қабати 7 (сатҳи барнома) амалӣ мекунад, ки аз алгоритмҳои бой ва дар идоракунии трафик самараноктар аст. Танзимоти мувозинати сарборро бо истифода аз API тағир додан мумкин аст, ки ба шумо имкон медиҳад ҷойгиркунии кабуд-сабз ё канариро танзим кунед.
  • Рамзгузорӣ. Service Mesh метавонад дархостҳо ва посухҳоро рамзгузорӣ ва рамзкушоӣ кунад ва ин бори гаронро аз хидматҳо дур кунад. Service Mesh инчунин метавонад тавассути афзалият додан ё истифодаи дубораи пайвастагиҳои мавҷуда иҷроишро беҳтар созад ва эҳтиёҷоти ҳисоббарории гаронарзишро барои эҷоди пайвастҳои нав коҳиш диҳад. Татбиқи маъмултарини рамзгузории трафик мебошад TLS мутақобилан (mTLS), ки инфрасохтори калидҳои оммавӣ (PKI) сертификатҳо ва калидҳоро барои истифода аз ҷониби Sidecar Proxy тавлид ва паҳн мекунад.
  • Аутентификатсия ва авторизатсия. Хадамоти Mesh метавонад дархостҳоеро, ки аз берун ё дохили барнома ворид шудаанд, иҷозат ва тасдиқ кунад ва танҳо дархостҳои тасдиқшударо ба инстансияҳо фиристад.
  • Дастгирии намунаи худкор хомӯш. Service Mesh дастгирӣ мекунад намунаи худкор хомӯш, ки ҳолатҳои носолимро ҷудо мекунад ва сипас ҳангоми зарурат тадриҷан онҳоро ба ҳавзи ҳолатҳои солим бармегардонад.

Қисми барномаи Service Mesh, ки трафики шабакаро байни инстансияҳо идора мекунад, номида мешавад Ҳавопаймои маълумот. Конфигуратсияеро, ки рафторро назорат мекунад, созед ва ҷойгир кунед Ҳавопаймои маълумот, бо истифода аз алохида ичро карда мешавад Ҳавопаймои идоракунӣ. Ҳавопаймои идоракунӣ маъмулан дар бар мегирад ё барои пайвастшавӣ ба API, CLI ё GUI барои идоракунии барнома тарҳрезӣ шудааст.

Шабакаи хидматрасонӣ чист?
Ҳавопаймои идоракунӣ дар Mesh хидматрасонӣ конфигуратсияро байни прокси Sidecar ва ҳавопаймои маълумот тақсим мекунад.

Меъмории Service Mesh аксар вақт барои ҳалли мушкилоти мураккаби амалиётӣ бо истифода аз контейнерҳо ва хидматрасониҳои хурд истифода мешавад. Пионерон дар сахро хизматрасониҳои хурд ширкатҳои монанди Lyft, Netflix ва Twitter мебошанд, ки ба миллионҳо корбарон дар саросари ҷаҳон хидматҳои устувор пешкаш мекунанд. (Дар ин ҷо маълумоти муфассал ба баъзе мушкилоти меъмории Netflix дучор шудааст.). Барои барномаҳои камтар серталаб, меъмории соддатар эҳтимол кофӣ хоҳад буд.

Меъмории Service Mesh гумон аст, ки ҳеҷ гоҳ ба ҳама масъалаҳои амалиёт ва интиқоли барномаҳо ҷавоб диҳад. Меъморон ва таҳиягарон арсенали бузурги асбобҳо доранд ва танҳо яке аз онҳо болға аст, ки дар байни бисёр вазифаҳо бояд танҳо якто - мехҳои болғаро ҳал кунад. Архитектураи истинодҳои Microservices аз NGINX, масалан, якчанд моделҳои гуногунро дар бар мегирад, ки пайвастаи равишҳоро барои ҳалли мушкилот бо истифода аз хидматҳои микросервис таъмин мекунанд.

Унсурҳое, ки дар меъмории Service Mesh якҷоя мешаванд, ба монанди NGINX, контейнерҳо, Кубернетесҳо ва хидматрасониҳои микросервисҳо ҳамчун равиши меъморӣ метавонанд дар татбиқи ғайри хидматрасонии Mesh баробар самаранок бошанд. Масалан, Истио ҳамчун як меъмории пурраи хидматрасонӣ тарҳрезӣ шудааст, аммо модулияти он маънои онро дорад, ки таҳиягарон метавонанд танҳо ҷузъҳои технологии ба онҳо лозимиро интихоб ва татбиқ кунанд. Бо дарназардошти ин, муҳим аст, ки дарки дақиқи консепсияи Service Mesh таҳия карда шавад, ҳатто агар шумо мутмаин набошед, ки шумо онро дар аризаи худ пурра татбиқ карда метавонед.

Монолитҳои модулӣ ва DDD

Манбаъ: will.com

Илова Эзоҳ