Hvað er þjónustunet?

Halló aftur!.. Í aðdraganda námskeiðsbyrjunar "hugbúnaðararkitekt" Við höfum útbúið aðra gagnlega þýðingu.

Hvað er þjónustunet?

Þjónustunet er stillanlegt innviðalag með lítilli leynd sem þarf til að takast á við mikið magn af nettengdum samskiptum milli vinnsluferla milli forritunarviðmóta (API). Service Mesh gerir hröð, áreiðanleg og örugg samskipti á milli gámaþjónustu og oft skammvinnrar umsóknarinnviðaþjónustu. Service Mesh býður upp á möguleika eins og þjónustuuppgötvun, álagsjafnvægi, dulkóðun, gagnsæi, rekjanleika, auðkenningu og heimild, og stuðning við sjálfvirka lokunarmynstur (aflrofa).
Þjónustunet er venjulega útfært með því að veita hverju þjónustutilviki umboðstilvik, kallað Hliðarvagn. Hliðarvagn annast samskipti milli þjónustu, fylgjast með og leysa úr öryggismálum, það er allt sem hægt er að draga úr einstakri þjónustu. Þannig geta verktaki skrifað, viðhaldið og þjónað forritakóða í þjónustu og kerfisstjórar geta unnið með þjónustunetinu og keyrt forritið.

Istio frá Google, IBM og Lyft er nú frægasti þjónustumöskunararkitektúrinn. Og Kubernetes, sem upphaflega var þróað hjá Google, er nú eini gámaskipunarramminn sem Istio styður. Seljendur eru að reyna að búa til viðskiptastuddar útgáfur af Istio. Það verður áhugavert að sjá hvaða nýja hluti þeir geta komið með í opinn uppspretta verkefnið.

Hins vegar er Istio ekki eini kosturinn þar sem verið er að þróa aðrar Service Mesh útfærslur. Mynstur sidecar proxy er vinsælasta útfærslan, eins og hægt er að dæma af verkefnunum Buoyant, HashiCorp, Solo.io og fleiri. Það eru líka aðrir arkitektúrar: Netflix tæknitólið er ein af aðferðunum þar sem Service Mesh virkni er útfærð í gegnum Ribbon, Hysterix, Eureka, Archaius bókasöfnin, sem og palla eins og Azure Service Fabric.

Service Mesh hefur einnig sitt eigið hugtök fyrir þjónustuhluta og aðgerðir:

  • Gáma hljómsveitarramma. Eftir því sem fleiri og fleiri gámar bætast við innviði forritsins er þörf fyrir sérstakt tól til að fylgjast með og stjórna gámum - gámaskipunarramma. Kubernetes hefur hertekið þennan sess af festu, svo mikið að jafnvel helstu keppinautarnir Docker Swarm og Mesosphere DC/OS bjóða upp á samþættingu við Kubernetes sem val.
  • Þjónusta og tilvik (Kubernetes Pods). Tilvik er eitt hlaupandi eintak af örþjónustu. Stundum er eitt tilvik einn ílát. Í Kubernetes samanstendur tilvik af litlum hópi sjálfstæðra íláta sem kallast fræbelgur. Viðskiptavinir fá sjaldan aðgang að tilviki eða belg beint; oftar fá þeir aðgang að þjónustu, sem er safn af eins, stigstærð og bilunarþolnum tilvikum eða belgjum (eftirlíkingar).
  • Sidecar Proxy. Sidecar Proxy virkar með stöku tilviki eða pod. Tilgangurinn með Sidecar Proxy er að beina eða staðgengill umferð sem kemur frá gámnum sem það vinnur með og skila umferð. Sidecar hefur samskipti við aðra Sidecar Proxies og er stjórnað af hljómsveitarramma. Margar þjónustumesh útfærslur nota Sidecar Proxy til að stöðva og stjórna allri umferð inn og út úr tilviki eða belg.
  • Þjónustuuppgötvun. Þegar tilvik þarf að eiga samskipti við aðra þjónustu þarf það að finna (uppgötva) heilbrigt og tiltækt tilvik af hinni þjónustunni. Venjulega framkvæmir tilvikið DNS leit. Gámaskipunarramminn heldur úti lista yfir tilvik sem eru tilbúin til að taka á móti beiðnum og veitir viðmót fyrir DNS fyrirspurnir.
  • Álagsjöfnun. Flestir gámaskipunarrammar veita álagsjafnvægi við lag 4 (flutningur). Service Mesh útfærir flóknari álagsjafnvægi á 7. lagi (forritastigi), ríkur af reikniritum og skilvirkari við að stjórna umferð. Hægt er að breyta stillingum álagsjafnvægis með því að nota API, sem gerir þér kleift að skipuleggja blágrænar eða kanarífuglar.
  • Dulkóðun. Service Mesh getur dulkóðað og afkóðað beiðnir og svör og fjarlægt þessa byrði af þjónustu. Service Mesh getur einnig bætt afköst með því að forgangsraða eða endurnýta núverandi viðvarandi tengingar, sem dregur úr þörfinni fyrir dýra útreikninga til að búa til nýjar tengingar. Algengasta útfærslan á dulkóðun umferðar er gagnkvæm TLS (mTLS), þar sem opinber lykilinnviði (PKI) býr til og dreifir vottorðum og lyklum til notkunar fyrir Sidecar Proxy.
  • Staðfesting og heimild. Þjónustunetið getur heimilað og auðkennt beiðnir sem gerðar eru utan eða innan forritsins og sendir aðeins staðfestar beiðnir til tilvika.
  • Stuðningur við sjálfvirka lokunarmynstur. Service Mesh styður sjálfvirka lokunarmynstur, sem einangrar óholl tilvik og skilar þeim síðan smám saman aftur í hóp heilbrigðra tilvika þegar þörf krefur.

Hluti Service Mesh forrits sem stjórnar netumferð á milli tilvika er kallaður Gagnaflugvél. Búðu til og settu upp stillingar sem stjórnar hegðun Gagnaflugvél, er framkvæmt með því að nota aðskilið Stýringarflugvél. Stýringarflugvél inniheldur venjulega eða er hannað til að tengjast API, CLI eða GUI til að stjórna forritinu.

Hvað er þjónustunet?
Stjórnarplanið í þjónustunetinu dreifir uppsetningunni á milli hliðarbíls umboðs og gagnaplans.

Service Mesh arkitektúr er oft notaður til að leysa flókin rekstrarvandamál með því að nota ílát og örþjónustur. Frumkvöðlar á þessu sviði örþjónustur eru fyrirtæki eins og Lyft, Netflix og Twitter, sem veita stöðuga þjónustu til milljóna notenda um allan heim. (Hér er ítarlegt yfirlit yfir nokkrar byggingarfræðilegar áskoranir sem Netflix stóð frammi fyrir.). Fyrir minna krefjandi forrit mun einfaldari arkitektúr líklega duga.

Ólíklegt er að þjónustumesh arkitektúr verði nokkurn tíma svarið við öllum aðgerðum og afhendingu forrita. Arkitektar og verktaki hafa mikið vopnabúr af verkfærum, og aðeins einn þeirra er hamar, sem, meðal margra verkefna, þarf að leysa aðeins eitt - að hamra neglur. Microservices Reference Architecture frá NGINX, til dæmis, inniheldur nokkur mismunandi líkön sem veita samfellda nálgun til að leysa vandamál með því að nota örþjónustu.

Þættirnir sem koma saman í Service Mesh arkitektúr, eins og NGINX, gáma, Kubernetes og örþjónustu sem byggingarfræðileg nálgun, geta verið jafn afkastamikill í útfærslum sem ekki eru Service Mesh. Til dæmis var Istio hannað sem fullkominn þjónustumöskvaarkitektúr, en máthluti hans þýðir að verktaki getur valið og innleitt aðeins þá tæknihluta sem þeir þurfa. Með þetta í huga er mikilvægt að þróa með sér skýran skilning á Service Mesh hugmyndinni, jafnvel þó þú sért ekki viss um að þú munt nokkurn tíma geta innleitt það að fullu í umsókn þinni.

Modular monoliths og DDD

Heimild: www.habr.com

Bæta við athugasemd