Service Mesh Benotzung Szenarie

Service Mesh Benotzung Szenarie

Note. iwwersat.: Den Auteur vun dësem Artikel (Luc Perkins) ass en Entwéckler Affekot bei der CNCF Organisatioun, déi Heem ass fir sou Open Source Projete wéi Linkerd, SMI (Service Mesh Interface) a Kuma (iwwregens, hutt Dir Iech och gefrot firwat Istio ass net op dëser Lëscht.). Nach eng Kéier probéiert d'DevOps Gemeinschaft e bessert VerstÀndnis vum trendy Hype genannt "Service Mesh" ze bréngen, hie lëscht 16 charakteristesch FÀegkeeten déi sou Léisungen ubidden.

haut Service Mesh gemaach ― ee vun de wĂ€ermsten Themen am BerĂ€ich vun der Software Engineering (a mat Recht!). Ech mengen dĂ«s Technologie ass onheemlech villverspriechend a gĂ©if gĂ€ren se wĂ€it ugeholl gesinn (wann et natierlech SĂ«nn mĂ©cht). WĂ©i och Ă«mmer, et ass Ă«mmer nach vun enger Aura vu Geheimnis fir dĂ©i meescht Leit Ă«mginn. GlĂ€ichzĂ€iteg och dĂ©i, dĂ©i gutt bekannt domat ass et dacks schwĂ©ier seng Virdeeler ze formulĂ©ieren a wat et genee ass (och Är wierklech). An dĂ«sem Artikel probĂ©ieren ech d'Situatioun ze korrigĂ©ieren andeems Dir verschidde oplĂ«scht benotzen FĂ€ll "Service Meshes"*.

* Notiz Iwwersetzung: hei a weider am Artikel gëtt genee dës Iwwersetzung ("Service Mesh") fir den nach neie Begrëff Service Mesh benotzt.

Awer als éischt wëll ech e puer Kommentarer maachen:

  • Ech hunn ni mat Service Meshes geschafft oder se ausserhalb vu Projete benotzt fir meng eegen Ausbildung ugefaang. Op der anerer SĂ€it war ech deen, deen am Joer 2015 eng ganz RĂ«tsch Dokumentatioun fir den internen Service Mesh vun Twitter geschriwwen huet (et war deemools nach net e "Service Mesh" genannt) an un der EntwĂ©cklung vun der WebsĂ€it an der Dokumentatioun fir Linker, also dat heescht eppes.
  • Meng LĂ«scht ass ongefĂ©ier an onkomplett. Et ka gutt BenotzungsfĂ€ll fir mech onbekannt sinn, an nei Optiounen wĂ€erte mĂ©iglecherweis mat der ZĂ€it entstoen wĂ©i d'Technologie sech entwĂ©ckelt a seng PopularitĂ©it wiisst.
  • Zur selwechter ZĂ€it Ă«nnerstĂ«tzt net all existent Service Mesh Implementatioun all dĂ©i opgelĂ«scht BenotzungsfĂ€ll. Dofir sollten meng Aussoe wĂ©i "Service Mesh Can ..." als "individuell gelies ginn, a vlĂ€icht all populĂ€r Service Mesh Implementatiounen kĂ«nnen ...".
  • D'Uerdnung vun de Beispiller mĂ©cht keen Ënnerscheed.

Kuerz Lëscht:

  • Service Entdeckung;
  • VerschlĂ«sselung;
  • Authentifikatioun an Autorisatioun;
  • Belaaschtung;
  • Circuit briechen;
  • autoscaling;
  • Kanaresch Deployementer;
  • blo-grĂ©ng DĂ©tachementer;
  • Gesondheet kontrollĂ©ieren;
  • Belaaschtung;
  • VerkĂ©ier Spigelen;
  • Isolatioun;
  • Ufro Taux limitĂ©ieren, Retry an Timeouts;
  • Telemetrie;
  • Audit;
  • visualization.

1. Service Entdeckung

TL;DR: Connectéiert mat anere Servicer am Netz mat einfachen Nimm.

D'Servicer solle sech automatesch gĂ©igesĂ€iteg "fannen" mat adequat Nimm - z.B. service.api.production, pets/staging oder cassandra. Cloud Ëmfeld sinn elastesch, an een eenzegen Numm kann vill Instanzen vun engem Service verstoppen. Et ass kloer datt an esou enger Situatioun et kierperlech onmĂ©iglech ass all IP Adressen ze hardcode.

Plus, wann ee Service en aneren fënnt, sollt et fÀeg sinn Ufroen un dee Service ze schécken ouni Angscht datt se um Input vu senger gebrochener Instanz ophalen. An anere Wierder, de Service Mesh muss d'Gesondheet vun all Serviceinstanzen iwwerwaachen an d'Lëscht vun den Hosten esou aktuell wéi méiglech halen.

All Service Mesh implementéiert de Service Entdeckungsmechanismus anescht. Am Moment ass déi allgemeng Manéier fir extern Prozesser wéi Kubernetes DNS ze delegéieren. An der Vergaangenheet op Twitter hu mir en Nummsystem fir dësen Zweck benotzt Finagle. ZousÀtzlech, Service Mesh Technologie mécht et méiglech fir Benotzerdefinéiert Benennungsmechanismen ze entstoen (obwuel ech nach keng SM-Implementatioun mat esou Funktionalitéit gesinn hunn).

2. Verschlësselung

TL;DR: Gitt vun onverschlësselte Verkéier tëscht Servicer lass a maacht dëse Prozess automatiséiert a skalierbar.

Et ass schĂ©in ze wĂ«ssen datt UgrĂ€ifer net an Ärem internen Netzwierk penetrĂ©iere kĂ«nnen. Firewalls maachen eng super Aarbecht vun dĂ«ser. Awer wat geschitt wann en Hacker dobanne kĂ«nnt? WĂ€ert hien fĂ€eg maache wat e wĂ«ll mam intra-Service Traffic? Loosse mer hoffen, datt dat schliisslech net geschitt. Fir dĂ«st Szenario ze vermeiden, sollt Dir en Nullvertrauensnetz implementĂ©ieren, an deem all Traffic tĂ«scht Servicer verschlĂ«sselt ass. DĂ©i meescht modern Service Meshes erreechen dĂ«st duerch gĂ©igesĂ€iteg TLS (gĂ©igesĂ€itege TLS, mTLS). An e puer FĂ€ll funktionnĂ©iert mTLS a ganz Wolleken a StĂ€rekĂ©ip (ech mengen interplanetaresch Kommunikatioun wĂ€ert iergendwann Ă€hnlech arrangĂ©iert ginn).

Natierlech, fir mTLS Service Mesh gemaach fakultativ. All Service ka sech ëm sÀin eegene TLS këmmeren, awer dëst bedeit datt Dir e Wee muss fannen fir Certificaten ze generéieren, se iwwer Servicehoster ze verdeelen, a Code an der Applikatioun enthalen déi dës Certificaten aus Dateien lued. Jo, vergiesst net dës Certificaten a reegelméissegen OfstÀnn ze erneieren. Service Meshes automatiséieren mTLS mat Systemer wéi SPIFFE, déi am Tour de Prozess vun der Ausstellung an der Rotatioun vun Zertifikater automatiséieren.

3. Authentifikatioun an Autorisatioun

TL;DR: Etabléiert wien den Ufroer ass an definéiert wat se dierfen maachen ier d'Ufro iwwerhaapt de Service erreecht.

Servicer wëllen oft wëssen wien ass mécht d'Ufro (Authentifikatioun), a benotzt dës Informatioun, entscheet dass eng bestëmmten Entitéit ass erlaabt ze maachen (Autorisatioun). An dësem Fall kann de Pronomen "wien" verstoppen:

  1. Aner Servicer. Dëst gëtt "Authentifikatioun" genannt peer" Zum Beispill, Service web wëll Zougang zum Service kréien db. Service Meshes léisen normalerweis esou Probleemer mat mTLS: Certificaten an dësem Fall handelen als néideg Identifizéierer.
  2. E puer mënschlech Benotzer. Dëst gëtt "Authentifikatioun" genannt ufroen" Zum Beispill, Benotzer haxor69 wëll eng nei Luucht kafen. Service Meshes bidden verschidde Mechanismen, z.B. JSON Web Tokens.

    Vill vun eis hunn dëst am Applikatiounscode gemaach. Eng Demande kënnt an, mir kucken duerch den Dësch users, Fannt de Benotzer a verglÀicht d'Passwuert, kontrolléiert dann d'Kolonn permissions etc. Am Fall vun engem Service Mesh geschitt dat ier d'Ufro iwwerhaapt de Service erreecht.

Wann mir festgestallt hunn, vu wiem d'Ufro koum, musse mir bestĂ«mmen wat dĂ«s EntitĂ©it erlaabt ass ze maachen. E puer Service Meshes erlaaben Iech Basispolitiken ze setzen (iwwer wien wat maache kann) als YAML Dateien oder op der Kommandozeil, anerer bidden Integratioun mat Kaderen wĂ©i Open Politik Agent. D'ultimativ Zil ass fir Är Servicer all Ufro ze akzeptĂ©ieren, sĂ©cher unzehuelen datt et aus enger vertrauter Quell kĂ«nnt Đž dĂ«s Aktioun ass erlaabt.

4. Laascht Equiliber

TL;DR: Verdeelt d'Laascht iwwer Serviceinstanzen no engem spezifesche Muster.

E "Service" an enger Service Sektioun besteet ganz dacks aus villen identesche FÀll. Zum Beispill, haut de Service cache besteet aus 5 Exemplare, a muer kann hir Zuel op 11 klammen. Demandë geschéckt un cache, muss no engem spezifeschen Zweck verdeelt ginn. Zum Beispill, minimiséieren d'Latenz oder maximéiert d'Wahrscheinlechkeet fir an eng Aarbechtsinstans ze kommen. Dee meescht benotzten Algorithmus ass Round-Robin, awer et gi vill anerer - zum Beispill déi gewiicht Method (gewiicht) Ufroen (Dir kënnt gewënschte Ziler auswielen), Ring (ring) hashing (benotzt konsequent Hashing iwwer Upstream Hosten) oder mannst Ufro Method (Preferenz gëtt der Instanz mat de mannste Ufroe ginn).

Klassesch Balancer hunn aner Funktiounen, wĂ©i HTTP-Caching an DDoS-Schutz, awer si sinn net ganz relevant fir den Ost-West-Traffic (dat ass, fir de VerkĂ©ier, deen an engem Datenzenter flĂ©isst - ca. Iwwersetzung) (typesch Ëmfang vum Service Mesh). Natierlech ass et net nĂ©ideg e Service Mesh fir LaaschtbalancĂ©ierung ze benotzen, awer et erlaabt Iech BalancĂ©ierungspolitike fir all Service aus enger zentralisĂ©ierter Kontrollschicht ze setzen an ze kontrollĂ©ieren, an doduerch d'Noutwennegkeet eliminĂ©iert fir separat Lastbalancer am Netzstack ze lafen an ze konfigurĂ©ieren. .

5. Circuit gebrach

TL;DR: Stop de Verkéier op de problematesche Service a kontrolléiert de Schued am schlëmmste Fall Szenarie.

Wann aus irgendege GrĂ«nn de Service net mam Traffic eens kann, bitt de Service Mesh verschidde MĂ©iglechkeeten fir dĂ«se Problem ze lĂ©isen (aner gĂ«tt an de passenden Rubriken diskutĂ©iert). Circuit Breaking ass dĂ©i schwĂ©ierst Optioun fir e Service vum Traffic ze trennen. WĂ©i och Ă«mmer, eleng mĂ©cht et kee SĂ«nn - e Backupplang ass nĂ©ideg. RĂ©ckdrock kann zur VerfĂŒgung gestallt ginn (RĂ©ckdrock) op Servicer dĂ©i Ufroe maachen (vergiesst just net Äre Service Mesh fir dĂ«st ze konfigurĂ©ieren!), Oder zum Beispill d'StatussĂ€it rout ze faarwen an d'Benotzer op eng aner Versioun vun der SĂ€it mat engem "falende Wal" Ă«mzeweisen ("Twitter ass erof").

Service Meshes erlaben Iech net nëmmen ze definéieren wéini shutdown wÀert verfollegen an dass dëst wÀert duerno. An dësem Fall, "wann" kann all Kombinatioun vun spezifizéierte Parameteren enthalen: d'Gesamtzuel vun Ufroe fir eng gewëssen ZÀit, d'Zuel vun de parallele Verbindungen, pendend Ufroen, aktiv Neiversichten, etc.

Dir wëllt wahrscheinlech keng Circuitbriechung mëssbrauchen, awer et ass flott ze wëssen datt Dir e Backupplang am Noutfall hutt.

6. Autoscaling

TL;DR: Erhéije oder reduzéieren d'Zuel vun de Serviceinstanzen ofhÀngeg vun de spezifizéierte CritÚren.

Service Meshes sinn net Scheduler, sou datt se net ausdroen selwer skaléieren. Wéi och ëmmer, si kënnen Informatioun ubidden iwwer wéi eng Planer hir Entscheedungen baséieren. Zënter Service Meshes hunn Zougang zu all Traffic tëscht Servicer, si hunn extensiv Informatioun iwwer wat geschitt: wéi eng Servicer erliewen Problemer, wéi eng Servicer si ganz liicht gelueden (d'Kapazitéit, déi hinnen zougedeelt ass, gëtt verschwend), etc.

Zum Beispill, Skala Kubernetes Servicer baséiert op Pods 'CPU an Erënnerung Notzung (kuckt eise Bericht "Autoscaling a Ressourcemanagement zu Kubernetes"- ca. Iwwersetzung), awer wann Dir décidéiert fir op all aner Metrik ze skaléieren (an eisem Fall, Verkéiersbezunn), braucht Dir eng speziell Metrik. Gestioun esou weist wéi dëst ze maachen mat spécial, Istio О Prometheus, awer de Prozess selwer ass zimlech komplizéiert. Mir wëllen datt de Service Mesh dëst vereinfacht andeems mir eis einfach Konditioune setzen wéi "d'Zuel vun de Serviceinstanzen erhéijen auth, wann d'Zuel vun de pendende Ufroe bannent enger Minutt d'Schwell iwwerschreift."

7. Kanaresch deployment

TL;DR: Test nei Fonctiounen oder Service Versiounen op engem Ënnerdeel vun Benotzer.

Loosst eis soen datt Dir e SaaS Produkt entwĂ©ckelt a wĂ«lles eng cool nei Versioun dovun auszerollen. Dir hutt et an der InszenĂ©ierung getest an et huet super geschafft. MĂ€ et sinn nach bestĂ«mmte Bedenken iwwer hir Verhalen an real Konditiounen. An anere Wierder, Dir musst dĂ©i nei Versioun op echte Probleemer testen ouni d'Vertrauen vum Benotzer ze riskĂ©ieren. Kanaresch Deployementer si super fir dĂ«st. Si erlaben Iech eng nei Feature zu engem Ënnerdeel vun de Benotzer ze demonstrĂ©ieren. DĂ«se Subset kann aus de treiste Benotzer besteet oder dĂ©i, dĂ©i mat der gratis Versioun vum Produkt schaffen, oder Benotzer dĂ©i e Wonsch ausgedrĂ©ckt hunn "MeerschwĂ€in" ze sinn.

Service Meshes implementĂ©ieren dĂ«st andeems Dir CritĂšren spezifizĂ©iere kĂ«nnt, dĂ©i bestĂ«mmen wien dĂ©i Versioun vun der Applikatioun gesĂ€it, an de Traffic deementspriechend routĂ©ieren. Fir d'Servicer selwer Ă€nnert sech awer nĂ€ischt. D'Versioun 1.0 vum Service mengt datt all Ufroe vu Benotzer kommen, dĂ©i et solle gesinn, an d'Versioun 1.1 gleeft d'selwecht fir seng Benotzer. MĂ«ttlerweil kĂ«nnt Dir de Prozentsaz vum Traffic tĂ«scht der aler an der neier Versioun Ă€nneren, eng wuessend Zuel vu Benotzer op dĂ©i nei redirectĂ©ieren, wann et stabil funktionnĂ©iert an Är "MeerschwĂ€in" ginn de Go-Ahead.

8. Blo-gréng Détachementer

TL;DR: Roll eng cool nei Feature aus, awer bereet Iech direkt alles zréck ze huelen.

Sinn blo-gréng Détachementer ass en neien "bloen" Service auszerollen, parallel mam alen "grénge" lancéieren. Wann alles glat geet an den neie Service funktionnéiert gutt, da kann deen alen lues a lues deaktivéiert ginn. (Ach, iergendwann wÀert dësen neie "bloen" Service d'Schicksal vum "gréngen" widderhuelen a verschwannen ...) Blo-gréngen Deployementer ënnerscheede sech vun de Kanaresch an datt déi nei Funktioun deckt jiddereen op eemol Benotzer (net Deel); De Punkt hei ass e "sécheren Hafen" prett ze hunn am Fall wou eppes falsch leeft.

Service Meshes bidden e ganz praktesche Wee fir e "bloen" Service ze testen an direkt op eng funktionéierend "gréng" ze wiesselen am Fall vu Probleemer. Net der Tatsaach ze ernimmen, datt laanscht de Wee vill Informatiounen (kuckt "Telemetrie" ënnendrënner) iwwer d'Aarbecht vun der "blo", déi hëlleft ze verstoen, ob et fir voll Operatioun prett ass.

Note. iwwersat.: Dir kënnt méi iwwer verschidden Deploymentstrategien an Kubernetes liesen (inklusiv déi ernimmt Kanaresch, blo / gréng an anerer) an dësen Artikel.

9. Gesondheet kontrolléieren

TL;DR: Verfollegt wéi eng Serviceinstanzen funktionell sinn a reagéiert op déi déi net méi funktionell sinn.

Gesondheetscheck (Gesondheetscheck) hĂ«lleft ze entscheeden ob Service Instanzen prett sinn Traffic ze akzeptĂ©ieren an Prozess. Zum Beispill, am Fall vun HTTP-Servicer, kann e Gesondheetscheck ausgesinn wĂ©i eng GET-Ufro un den Endpunkt /health. Äntwert 200 OK wĂ€ert heeschen, datt d'Instanz gesond ass, all aner - datt et net prett ass Traffic ze krĂ©ien. Service Meshes erlaben Iech souwuel de Wee ze spezifizĂ©ieren wĂ©i d'FunktionalitĂ©it geprĂ©ift gĂ«tt an d'Frequenz mat dĂ€r dĂ«s Kontroll duerchgefouert gĂ«tt. DĂ«s Informatioun kann dann fir aner Zwecker benotzt ginn - zum Beispill fir Belaaschtung a Circuitbriechung.

Also ass d'Gesondheetskontroll net e Stand-alone Benotzungsfall, awer gĂ«tt normalerweis benotzt fir aner Ziler z'erreechen. Och, ofhĂ€ngeg vun de Resultater vun de GesondheetsprĂŒfungen, kĂ«nnen Handlungen extern zu anere Service Mesh Ziler erfuerderlech sinn: zum Beispill d'StatussĂ€it aktualisĂ©ieren, en Thema op GitHub erstellen oder e JIRA Ticket ausfĂ«llen. A Service Mesh bitt e praktesche Mechanismus fir dat alles ze automatisĂ©ieren.

10. Belaaschtung

TL;DR: Redirect Traffic als Äntwert op eng temporĂ€r Spike am Gebrauch.

Wann e bestëmmte Service mat Traffic iwwerlaascht ass, kënnt Dir e puer vun dësem Traffic temporÀr op eng aner Plaz redirectéieren (dat ass "dump", "transfer" (Schapp) hien do). Zum Beispill, zu engem Backupsatellit Service oder Daten Zentrum, oder zu engem permanent Pulsar Thema. Als Resultat wÀert de Service weider e puer Ufroe veraarbecht anstatt alles ofzeschléissen an ze stoppen. D'Belaaschtung ass léiwer wéi de Circuit ze briechen, awer et ass nach ëmmer net unzeroden et ze mëssbrauchen. Et hëlleft Kaskadfehler ze vermeiden, déi Downstream Servicer verursaachen.

11. Verkéier parallelization / Spigelen

TL;DR: Schéckt eng Ufro op e puer Plazen glÀichzÀiteg.

Heiansdo gëtt et e Besoin fir eng Ufro (oder eng gewësse Selektioun vun Ufroen) un e puer Servicer glÀichzÀiteg ze schécken. En typescht Beispill ass en Deel vum Produktiounsverkéier un e Staging Service ze schécken. Den Haaptproduktiounswebserver schéckt eng Ufro un den Downstream Service products.production an nëmmen him. An de Service Mesh kopéiert dës Ufro intelligent a schéckt se un products.staging, wat de Webserver net emol bewosst ass.

En anere verbonne Service Mesh Benotzungsfall deen uewen op Traffic Paralleliséierung ëmgesat ka ginn ass Regressiounstest. Et handelt sech ëm déiselwecht Ufroe fir verschidde Versioune vum Service ze schécken an ze kontrolléieren ob all Versiounen d'selwecht behuelen. Ech sinn nach net mat engem Service Mesh Implementatioun mat engem integréierte Regressiounstestsystem wéi Diffy, mee d'Iddi selwer schéngt villverspriechend.

12. Isolatioun

TL;DR: Break Äre Service Mesh a Mini-Netzwierker.

Och bekannt als SegmentatiounIsolatioun ass d'Konscht fir e Servicemesh a logesch Ă«nnerschiddlech Segmenter opzedeelen dĂ©i nĂ€ischt iwwerenee wĂ«ssen. Isolatioun ass e bĂ«sse wĂ©i virtuell privat Netzwierker ze kreĂ©ieren. De fundamentalen Ënnerscheed ass datt Dir Ă«mmer nach all d'Virdeeler vun engem Service Mesh genĂ©isst (wĂ©i Service Entdeckung), awer mat zousĂ€tzlech SĂ©cherheet. Zum Beispill, wann en UgrĂ€ifer et fĂ€erdeg brĂ©ngt e Service an engem vun den Ënnernetzer z'erreechen, wĂ€ert hien net fĂ€eg sinn ze gesinn wĂ©i eng Servicer op anere Subnetzer lafen oder hiren Traffic ofbriechen.

ZousĂ€tzlech kĂ«nnen d'Virdeeler och organisatoresch sinn. Dir wĂ«llt Är Servicer op Basis vun Ärer Firmastruktur subnetĂ©ieren an d'EntwĂ©ckler vun der kognitiver Laascht entlaaschten fir de ganze Servicemesh am Kapp ze halen.

13. Ufro Taux limitéieren, retries an timeouts

TL;DR: Dir braucht net mĂ©i dĂ©i nitty-gritty Ufro Gestioun Aufgaben an Ärer Codebase abegraff.

All dës Saache kéinten als separat BenotzungsfÀll ugesi ginn, awer ech hunn decidéiert se ze kombinéieren wéinst enger gemeinsamer Feature: si iwwerhuelen d'Ufro Lifecycle Management Aufgaben, déi typesch vun Applikatiounsbibliothéiken gehandhabt ginn. Wann Dir e Webserver am Ruby on Rails entwéckelt (net mat engem Service Mesh integréiert) deen Ufroe fir Backend Servicer iwwer gRPC, d'Applikatioun muss entscheeden wat ze maachen wann N Ufroe feelen. Dir musst och erausfannen wéi vill Traffic dës Servicer fÀeg sinn dës Parameteren mat enger spezieller Bibliothéik ze veraarbechten an ze hardcodéieren. Plus, d'Applikatioun muss entscheeden wéini et ZÀit ass opzeginn an d'Ufro ausléisen (baséiert op Timeout). A fir eng vun den uewe genannte Parameteren z'Ànneren, muss de Webserver gestoppt ginn, nei konfiguréiert an erëm gestart ginn.

DĂ«s Aufgaben op e Service Mesh eroflueden heescht net nĂ«mmen datt Service EntwĂ©ckler net iwwer si mussen nodenken, awer och datt se op eng mĂ©i global ManĂ©ier kĂ«nne gekuckt ginn. Wann eng komplex Kette vu Servicer benotzt gĂ«tt, soen A -> B -> C -> D -> E, muss de ganze Liewenszyklus vun der Ufro berĂŒcksichtegt ginn. Wann d'Aufgab ass d'Timeouts am Service C ze verlĂ€ngeren, ass et logesch dĂ«st alles glĂ€ichzĂ€iteg ze maachen, an net an Deeler: andeems Dir de Servicecode aktualisĂ©iert a waart bis d'Pull-Ufro akzeptĂ©iert gĂ«tt an de CI System den aktualisĂ©ierten Service ofsetzt.

14. Telemetrie

TL;DR: Sammelt all néideg (an net ganz) Informatioune vu Servicer.

Telemetrie ass en allgemenge Begrëff deen Metriken, verdeelt Tracing a Logbicher enthÀlt. Service Meshes bidden Mechanismen fir all drÀi Zorte vun Daten ze sammelen an ze veraarbecht. Dëst ass wou d'Saachen e bësse blurry ginn, well d'Zuel vu méiglechen Optiounen ze grouss ass. Fir Metriken ze sammelen gëtt et Prometheus an aner Tools déi benotzt kënne fir Logbicher ze sammelen fléissend, Loki, Vecteure an anerer. (zum Beispill ClickHouse mat eisem Loghaus fir K8s - ca. Iwwersetzung), fir verdeelt Tracing gëtt et Jaeger a sou weider. All Service Mesh kann e puer Tools ënnerstëtzen an net anerer. Et wÀert interessant sinn ze gesinn, ob de Projet kann Open Telemetrie eng Konvergenz ubidden.

An dĂ«sem Fall ass de Virdeel vun der Service Mesh Technologie datt Sidecar Container am Prinzip all dĂ©i uewe genannte DonnĂ©eĂ«n aus hire Servicer sammelen. An anere Wierder, Dir hutt en eenzegen Telemetrie Sammelsystem zur VerfĂŒgung, an de Service Mesh kann all dĂ«s Informatioun op verschidde ManĂ©iere veraarbechten. Zum Beispill:

  • SchwĂ€if Logbicher vun engem bestĂ«mmte Service am CLI;
  • Monitor de Volume vun Ufroe vum Service Mesh Dashboard;
  • sammelen verdeelt Spuren a weiderginn hinnen zu engem System wĂ©i Jaeger.

Opgepasst, subjektiv Uerteel: Allgemeng ass Telemetrie e Gebitt an deem staark Interferenz vum Service Mesh onerwënscht ass. Basisinformatioun sammelen an on-the-fly e puer gëllene Metriken wéi Ufro Erfollegsquote a Latenz verfollegen ass gutt, awer loosst eis hoffen datt mir Frankenstein Stacks net gesinn entstinn déi probéieren spezialiséiert Systemer ze ersetzen, e puer vun deenen sech scho bewisen a gutt studéiert hunn .

15. Audit

TL;DR: Déi, déi d'Lektioune vun der Geschicht vergiessen, sinn veruerteelt se ze widderhuelen.

Audit ass d'Konscht fir wichteg Eventer an engem System ze observéieren. Am Fall vun engem Service Mesh, kann dat bedeiten Tracking wien Ufroe fir spezifesch Endpunkte fir spezifesch Servicer gemaach hunn, oder wéi oft e Sécherheetsbezunnen Event am leschte Mount geschitt ass.

Et ass kloer datt Audit ganz enk mat Telemetrie verbonnen ass. Den Ënnerscheed ass datt Telemetrie normalerweis mat Saachen wĂ©i ProduktivitĂ©it an technescher IntegritĂ©it assoziĂ©iert ass, wĂ€hrend Audit kann op juristesch an aner Themen bezĂ©ien dĂ©i iwwer dĂ©i strikt technesch SphĂ€r goen (zum Beispill d'KonformitĂ©it mam GDPR - d'EU General Regulation on Dateschutz).

16. Virschau

TL;DR: Vive React.js - eng onendlech Quell vu flotten Interfaces.

Et gëtt vlÀicht e bessere Begrëff, awer ech weess et net. Ech mengen einfach eng grafesch Representatioun vun engem Service Mesh oder e puer vu senge Komponenten. Dës Visualiséierunge kënnen Indikatoren enthalen wéi duerchschnëttlech Latenzen, Sidecar Konfiguratiounsinformatioun, Gesondheetscheckresultater an Alarmer.

An engem serviceorientĂ©ierten Ëmfeld schaffen involvĂ©iert eng vill mĂ©i hĂ©ich kognitiv Belaaschtung am Verglach zu Seng MajestĂ©it de Monolith. Dofir sollt de kognitiven Drock op all KĂ€schten reduzĂ©iert ginn. Eng einfach grafesch Interface fir e Service Mesh mat der FĂ€egkeet fir op e KnĂ€ppchen ze klicken an dat gewĂ«nschte Resultat ze krĂ©ien kĂ©int entscheedend sinn fir de Wuesstum vun der PopularitĂ©it vun dĂ«ser Technologie.

War net an der Lëscht abegraff

Ech wollt ursprénglech e puer méi BenotzungsfÀll an der Lëscht enthalen, awer hunn dunn decidéiert net. Hei sinn se, zesumme mat de Grënn fir meng Entscheedung:

  • Multi-Datenzentrum. Menger Meenung no ass dĂ«st net sou vill e Benotzungsfall wĂ©i e schmuel a spezifescht Gebitt vun der Applikatioun vu Service Meshes oder e puer Set vu Funktiounen wĂ©i Service Entdeckung.
  • Ingress an Ausgang. DĂ«st ass e verwandte BerĂ€ich, awer ech hunn mech limitĂ©iert (vlĂ€icht kĂ«nschtlech) zum "Ost-West Traffic" Benotzungsfall. Ingress an Egress verdĂ©ngen en separaten Artikel.

Konklusioun

Dat ass alles fir elo! Elo ass dës Lëscht ganz arbitrÀr a wahrscheinlech onkomplett. Wann Dir mengt datt ech eppes verpasst hunn oder eppes falsch hunn, da kontaktéiert mech w.e.g. op Twitter (@luckerkins). Respektéiert w.e.g. d'Regele vun der AnstÀnnegkeet.

PS vum Iwwersetzer

D'Titelillustratioun fir den Artikel baséiert op engem Bild aus dem Artikel "Wat ass e Service Mesh (a wéini een ze benotzen)?"(vum Gregory MacKinnon). Et weist wéi e puer Funktionalitéit vun Uwendungen (am gréngen) an e Service Mesh geplënnert ass, deen Interconnections tëscht hinnen ubitt (am blo).

Liest och op eisem Blog:

Source: will.com

Kaaft zouverlĂ€sseg Hosting fir Site mat DDoS Schutz, VPS VDS Server đŸ”„ Kaaft zouverlĂ©issegt WebsĂ€ithosting mat DDoS-Schutz, VPS VDS Server | ProHoster