
MĂ€rk. tĂ”lge.: Artikli autor on (Luc Perkins) â arenduse advokaat organisatsioonis CNCF, mis on kodu selliste avatud lĂ€hdekoodiga projektide nagu Linkerd, SMI (Service Mesh Interface) ja Kuma (kas olete muide kas mĂ”elnud, miks selle nimekirja ei ole Istio?). Ta ĂŒritab taas tuua DevOps kogukonda paremat arusaamist moderaarsest kĂ”nest nimega 'service mesh', tuues vĂ€lja 16 iseloomulikku vĂ”imalust, mida sellised lahendused pakuvad.
TĂ€na â ĂŒks kuumimaid teemasid tarkvaraarenduse valdkonnas (ja pĂ”hjusega!). Pean seda tehnoloogiat uskumatult perspektiivikaks ja unistan, et olen tunnistajaks selle laiale levikule (muidugi, kui see on mĂ”istlik). Sellegipoolest on see endiselt enamus inimeste jaoks salapĂ€rane. Isegi need, kes on sellega hĂ€sti tuttavad vaevavad sageli selle eeliste vormistamist ja seda, mis see tegelikult on (sealhulgas ka teie alandlik teenija). Artiklis pĂŒĂŒan olukorda parandada, loetledes erinevaid kasutussfÀÀre 'teenuse vĂ”rke'*.
* MÀrk. tÔlk.: selles ja jÀrgnevates artikli lÔikudes kasutatakse sÔna 'teenuse vÔrk' selle veel uue 'service mesh' termini tÔlkena.
Aga kÔigepealt tahan teha mÔned mÀrkused:
- Ma ei ole kunagi töötanud teenuste vĂ”rkudega ega kasutanud neid projektides, mis on algatatud ainult minu hariduse huvides. Teisest kĂŒljest kirjutasin ma 2015. aastal Twitteri ettevĂ”tte sisemise teenuste vĂ”rgu jaoks palju dokumentatsiooni (sel ajal ei kutsutud seda isegi «teenuste vĂ”rguks») ning osalesin veebisaidi ja dokumentatsiooni arendamises. , seega on see midagi.
- Minu nimekiri on nÀitlik ja mittetÀielik. VÔivad olla minu teadmata kasutusstsenaariumid, ja aja jooksul tekivad kindlasti uued variandid, kui tehnoloogia areneb ja muutub populaarsemaks.
- Samas ei toeta sugugi iga olemasolev teenuste vÔrgu rakendus kÔiki loetletud kasutusjuhte. SeetÔttu tuleks minu vÀljendeid nagu «teenuste vÔrk vÔib...» lugeda kui «erilised ja vÔib-olla kÔik populaarsed teenuste vÔrgu rakendused vÔivad...».
- NÀidete jÀrjekord ei oma mingit tÀhtsust.
LĂŒhike nimekiri:
- teenuste avastamine;
- krĂŒpteerimine;
- autentimine ja autoriseerimine;
- koormuse tasakaalustamine;
- circuit breaking;
- automaatne skaleerimine;
- kanarollid;
- sinine-roheline juurutamine;
- tervise kontrollimine;
- koormuse vÀhendamine;
- liikluse peegeldamine;
- isoleerimine;
- pÀringute sageduse piiramine, uued katsed ja ajutised katkestused;
- telemeetrielamu;
- audiit;
- visualiseerimine.
1. Teenuste avastamine
TL;DR: Ăhendage vĂ”rgu teiste teenustega lihtsate nimede kaudu.
Teenused peavad olema suutelised automaatselt âleidmaâ ĂŒksteist adekvaatsete nimede kaudu â nĂ€iteks, service.api.production, pets/staging vĂ”i cassandra. Pilvekeskkonnad on tuntud oma elastsete omaduste poolest ning ĂŒhe nime all vĂ”ib peituda hulgaliselt teenuse eksemplare. On selge, et sellises olukorras on fĂŒĂŒsiliselt vĂ”imatu kĂ”iki IP-aadresse hardcode'ida.
Lisaks peab, kui ĂŒks teenus leiab teise, olema sellel vĂ”imalus saata pĂ€ringuid sellele teenusele, kartmata, et need jĂ”uavad tema mitte töötava eksemplarini. TeisisĂ”nu, teenuste mesh peab jĂ€lgima kĂ”igi teenuste eksemplaride töökĂ”lblikkust ja hoidma hostide nimekirja maksimaalselt ajakohasena.
Iga teenusevaheline vĂ”rgustik rakendab teenuste avastamise mehhanismi omal moel. Praegu on kĂ”ige levinum viis jĂ€rgida vĂ€listes protsessides nagu DNS Kubernetes. Minevikus kasutasime Twitteris selleks nimelt nimed sĂŒsteemi. . Lisaks vĂ”imaldab teenusevaheline tehnoloogia kasutajate nimede mehhanismide loomist (kuigi ma pole veel kohanud ĂŒhtegi SM-i teostust, millel oleks see funktsionaalsus).
2. KrĂŒpteerimine
TL;DR: Vabanege krĂŒpteerimata liiklusest teenuste vahel ja laske sellel protsessil olla automatiseeritud ja skaalautuv.
On hea tunne, et kurjategijad ei saa teie sisevĂ”rku tungida. Tulega töötavad tulemĂŒĂŒrid teevad sellega head tööd. Kuid mis juhtuks, kui hĂ€kker siiski siseneb? Kas ta vĂ”ib teha kĂ”ike, mida soovib, sise-teenuse liiklusega? Lootkem, et seda siiski ei juhtu. Selliste stsenaariumide vĂ€ltimiseks tuleks rakendada null usalduse vĂ”rgustikku, kus kogu liiklus teenuste vahel on krĂŒpteeritud. Enamik kaasaegseid teenusevĂ”rke saavutab seda vastastikuse (mutual TLS, mTLS). MĂ”nes olukorras töötab mTLS kogu pilve- ja klastrikeskkondades (ma arvan, et ĂŒhel pĂ€eval on ka planeetidevahelised suhtlused sarnased).
Muidugi, mTLS teenuse vĂ”rgu jaoks ei ole kohustuslik. Iga teenus saab ise hoolitseda oma TLS-i eest, kuid see tĂ€hendab, et tuleb leida viis sertifikaatide genereerimiseks, nende jaotamiseks teenuse hostidele ning rakendusse koodi kaasamiseks, mis laadib need sertifikaadid failidest. Ja Ă€rge unustage ka sertifikaatide uuendamist kindlate ajavahemike jĂ€rel. Teenuste vĂ”rgud automatiseerivad mTLS-i sĂŒsteemide, nagu , abil, mis omakorda automatiseerivad sertifikaatide vĂ€ljastamise ja rĂŒndamise protsessi.
3. Autentimine ja autoriseerimine
TL;DR: MÀÀrake, kes on pÀringu algataja, ja mÀÀrake, mida on lubatud teha, enne kui pÀring jÔuab teenuseni.
Teenused soovivad tihti teada, kes kes teeb pÀringu (autentimine), ja kasutades seda teavet, otsustavad, mida kas antud subjektile on lubatud tegutseda (autoriseerimine). Selles kontekstis vÔib mÔiste 'kes' hÔlmata:
- Teised teenused. Seda nimetatakse 'peer' autentimiseks. peer'а». NÀiteks, teenus
websoovib pÀÀseda teenuseledb. TeenusvÔrgud lahendavad tavaliselt selliseid probleeme mTLS abil: sertifikaadid toimivad antud juhul vajaliku identifikaatorina. - MÔned kasutajad-inimesed. Seda nimetatakse "autentimiseks pÀringu». NÀiteks, kasutaja
haxor69soovib osta uut lampi. TeenusvÔrgud pakuvad erinevaid mehhanisme, nÀiteks .Paljude meist on olnud selle tegemine rakenduskoodis. Tuleb pÀring, vaatame tabelit
users, leiame kasutaja ja vÔrdleme parooli, seejÀrel kontrollime vÀljapermissionsjne. TeenusvÔrgu puhul toimub see juba enne, kui pÀring jÔuab teenuseni.
PÀrast seda, kui oleme kindlaks teinud, kellega pÀring tulnud on, tuleb vÀlja selgitada, mida sellele subjektile teha lubatakse. MÔned teenusvÔrgud vÔimaldavad mÀÀrata pÔhipoliitikaid (kes ja mida vÔib teha) YAML-failide vÔi kÀsurea vormis, samas kui teised pakuvad integreerimist nagu . LÔppeesmÀrgiks on saavutada, et teie teenused aktsepteeriksid iga pÀringu, julgelt eeldades, et need pÀrinevad usaldusvÀÀrsest allikast. ja see tegevus on lubatud.
4. Koormuse tasakaalustamine
TL;DR: Jagage koormust teenuse eksemplaride vahel kindla mustri alusel.
âTeenuseâ koosseisus on teenuse grupis vĂ€ga sageli palju identseid eksemplare. NĂ€iteks tĂ€na koosneb teenus cache 5 eksemplarist, samas kui homseks vĂ”ib nende arv tĂ”usta 11-ni. Taotlused, mis suunatakse cache, tuleks jaotada vastavalt kindlale eesmĂ€rgile. NĂ€iteks vĂ€hendada latentsust vĂ”i maksimeerida tĂ”enĂ€osust, et jĂ”uate toimiva eksemplari juurde. KĂ”ige sagedamini kasutatakse tsĂŒklilist teenindusmeetodit (Round-robin), kuid on olemas ka palju teisi â nĂ€iteks kaalutud (weighted) taotlused (vĂ”ite valida eelistatud eesmĂ€rgid), rĂ”ngas (ring) hashimine (kasutades kooskĂ”lastatud hashimist upstream-hostide jaoks) vĂ”i vĂ€heseima taotluste arvu meetod (eelistatakse eksemplari, millel on kĂ”ige vĂ€hem taotlusi).
Klassikalised koormuse jaoturid omavad ka muid funktsioone, nagu HTTP va cache ja DDoS kaitse, kuid need ei ole eriti relevantsed idalÀÀne liikluse (st liikluse, mis toimub andmekeskuses â tĂ”lke mĂ€rkus) jaoks (tĂŒĂŒpiline rakenduskoht teenusevĂ”rgus). Loomulikult pole koormuse jaotamiseks vĂ”imalik kasutada teenusevĂ”rku, kuid see vĂ”imaldab mÀÀrata ja hallata jaotuste poliitikaid iga teenuse jaoks tsentraliseeritud halduskihtidega, eemaldades seelĂ€bi vajaduse kĂ€itada ja konfigureerida eraldi jaotureid vĂ”rgusteemis.
5. Ahela katkestamine (circuit breaking)
TL;DR: Peatage liiklus probleemse teenuse juurde ja kontrollige kahjustusi halvimates stsenaariumides.
Kui mingil pĂ”hjusel teenus ei suuda liiklust taluda, siis teenusevĂ”rk pakub mitmeid vĂ”imalusi selle probleemi lahendamiseks (teistest rÀÀgitakse vastavates jaotistes). Ahela katkestamine on kĂ”ige rangem variant teenuse liiklusest vĂ€ljalĂŒlitamiseks. Kuid sellel endal pole mĂ”tet â vajalik on varuplaan. See vĂ”ib sisaldada tagasivoolu. () teenuste jaoks, mis tĂ€idavad pĂ€ringute, (kuid Ă€rge unustage oma teenuseteed selle jaoks konfigureerida!), vĂ”i nĂ€iteks staatuse lehe punaseks vĂ€rvimine ja kasutajate suunamine uuesti lehe versioonile koos «langemise kits» («Twitter on maas»).
TeenusevĂ”rgud vĂ”imaldavad mitte ainult mÀÀrata, millal tuleb katkestamine ja mida mida see jĂ€rgneb. Selles kontekstis «millal» vĂ”ib hĂ”lmata mis tahes mÀÀratud parameetrite kombinatsiooni: ĂŒldine pĂ€ringute arv teatud ajavahemikus, samadedikat ĂŒhendused, ootel pĂ€ringud, aktiivsed uuesti proovimise katsetused jne.
Te tĂ”enĂ€oliselt ei soovi circiit breakingâut kuritarvitada, kuid on hea teada, et ÀÀrmuslike olukordade jaoks on olemas varuplaan.
6. Automaatne skaalaimine
TL;DR: Suurendage vÔi vÀhendage teenuse eksemplaride arvu vastavalt mÀÀratud kriteeriumidele.
TeenusevÔrgud ei ole planeerijad, seega nad ei tÀida skaalate ise. Kuid nad saavad edastada teavet, mille alusel planeerijad otsuseid teevad. Kuna service mesh'id saavad ligi kogu teenustevahelisele liiklusele, omavad nad ulatuslikku teavet selle kohta, mis toimub: millised teenused kogevad probleeme, millised on minimaalselt koormatud (neile mÀÀratud ressursid raisatakse) jne.
NĂ€iteks Kubernetes skaala teenuseid vastavalt pod'ide CPU ja mĂ€lu kasutusele. (vt meie ettekannet â» â tĂ”lk. mĂ€rkus), kuid kui otsustate teostada skaalatamise mĂ”ne muu nĂ€itaja alusel (meie puhul - liiklusega seotud), on vajalik eriline mÔÔdik. Juhend nĂ€itab, kuidas seda teha kasutades , ja , kuid kogu protsess on ĂŒsna keeruline. Me tahaksime, et service mesh lihtsustaks seda, lubades lihtsalt seada tingimused nagu âsuurenda teenuse eksemplaride arvu, auth, kui ootejĂ€rjekorras olevate pĂ€ringute arv ĂŒletab ĂŒlempiiri minuti jooksul.â
7. Kanaride juurutused
TL;DR: Katsetage uusi funktsioone vÔi teenuse versioone teatud kasutajate alagruppide peal.
Oletame, et arendate uut SaaS-toodet ja kavatsete selle uue versiooni vĂ€lja tuua. Olete selle testinud staging keskkonnas ja see töötab suurepĂ€raselt. Siiski on teil mured selle tĂ”hususe ĂŒle reaalses keskkonnas. TeisisĂ”nu, peate kontrollima uut versiooni pĂ€ris ĂŒlesannete peal, riskimata samal ajal kasutajate usaldusega. Kanaride juurutamised sobivad selleks suurepĂ€raselt. Need vĂ”imaldavad tutvustada uut funktsiooni teatud valitud kasutajatele. See valik vĂ”ib koosneda kĂ”ige lojaalsetest kasutajatest, tasuta versiooniga töötavatest kasutajatest vĂ”i neist, kes on vĂ€ljendanud soovi olla 'katsealuseks'.
Teenusmesh'id rakendavad seda, vĂ”imaldades mÀÀrata kriteeriumid, mis mÀÀravad, kes ja millist rakenduse versiooni nĂ€eb, ning suunavad liiklust vastavalt. Teenuste jaoks ei muutu midagi. Teenuse versioon 1.0 arvab, et kĂ”ik pĂ€ringud tulevad kasutajatelt, kes just selle versiooni peavad nĂ€gema, ja versioon 1.1 arvab sama oma kasutajate kohta. Samal ajal saate muuta liikluse protsenti vana ja uue versiooni vahel, suunates kasvavat arvu kasutajaid uuele, kui see töötab stabiilselt ja teie âkatsealusedâ annavad heakskiidu.
8. Sinise-rohelised juurutused
TL;DR: Laske vÀlja uus suur funktsioon, kuid olge valmis see kohe tagasi vÔtma.
MĂ”te on see, et kĂ€ivitatakse uus âsinineâ teenus, kĂ€ivitades selle paralleelselt vana, âroheliseâ teenusega. Kui kĂ”ik lĂ€heb sujuvalt ja uus teenus tĂ”estab end hĂ€sti, saab vana jĂ€rk-jĂ€rgult vĂ€lja lĂŒlitada. (Kahjuks kordab ka see uus âsinineâ teenus kunagi ârohelistâ saatust ja kaobâŠ) Sinise-rohelised juurutused erinevad kanarakkudest selle poolest, et uus funktsioon katab kĂ”ik korraga kasutajad (mitte osa); mĂ”te on olla valmis "varupordiks", kui midagi peaks valesti minema.
Teenuste vmessid pakuvad vĂ€ga mugavat viisi "sinise" teenuse testimiseks ja koheseks ĂŒleminekuks töötavale "rohelisele" teenusele, kui probleeme tekib. RÀÀkimata sellest, et nad annavad palju teavet (vt punkt "Telemeetria" allpool) "sinise" töö kohta, mis aitab mĂ”ista, kas see on tĂ€ielikuks kasutamiseks valmis.
MÀrk. tÔlge.: Erinevatest kÀitamisstrateegiatest Kuberneteses (sealhulgas mainitud kanarid, sinine/roheline jne) saab lugeda .
9. Tervise kontrollimine
TL;DR: JÀlgige, millised teenuse eksemplarid on töökorras, ja reageerige nendele, mis enam ei ole.
Tervise kontrollimine (health check) aitab otsustada, kas teenuse eksemplarid on valmis vastu vĂ”tma ja töötlema liiklust. NĂ€iteks HTTP-teenuste puhul vĂ”ib tervise kontrollimine vĂ€lja nĂ€ha kui GET-pĂ€ring teenuse lĂ”pp-punktile /health. Vastus 200 OK tĂ€hendab, et eksemplar on tervislik, kĂ”ik muu - et see ei ole valmis liiklust vastu vĂ”tma. Teenuse meshâid vĂ”imaldavad mÀÀrata, kuidas ja kui tihti visatakse töövĂ”imekust kontrollitakse. Seda teavet saab seejĂ€rel kasutada ka teiste eesmĂ€rkide tĂ€itmiseks - nĂ€iteks koormuse tasakaalustamiseks ja circuit breaking'uks.
Seega on tervise kontroll mitte iseseisev kasutusstsenaarium, vaid seda kasutatakse tavaliselt teiste eesmÀrkide saavutamiseks. Samuti vÔivad vastavalt tervisekontrollide tulemustele osutuda vajalikuks vÀlised tegevused (seoses teiste teenuse vÔrkude eesmÀrkidega): nÀiteks oleku lehe vÀrskendamine, probleemide loomine GitHubis vÔi JIRA pileti tÀitmine. Ja teenuse mesh pakub mugavat mehhanismi selle kÔikide automatiseerimiseks.
10. Koormuse suunamine (load shedding)
TL;DR: Suunake liiklus vastusena ajutisele kasutamise tÔusule.
Kui mĂ”ni teenus osutub liiklusega ĂŒle koormatud, saate ajutiselt suunata osa sellest liiklusest teise kohta (st 'sĂŒttida', 'valada' (shed) seda sinna). NĂ€iteks varukoopie teenusesse vĂ”i andmekeskusesse, vĂ”i pidevalt teema. Seega jĂ€tkab teenus osade pĂ€ringute töötlemist, selle asemel, et tĂ€ielikult kokku kukkuda ja töötlemise lĂ”petada. Koormuse vĂ€hendamine on eelistatum kui ahelate katkestamine, kuid siiski ei tohiks seda kuritarvitada. See aitab vĂ€ltida kaskaadtoimingute ebaĂ”nnestumisi, mis viivad alla downstream-teenuseid.
11. Liikluse paralleelseks jagamiseks/peegeldamiseks
TL;DR: Saatke ĂŒks pĂ€ring kohe mitmesse kohta.
MÔnikord tekib vajadus saata pÀring (vÔi teatud valik pÀringuid) kohe mitmesse teenusesse. Iseloomulik nÀide on osa tootmisliiklusest saatmine stseeniteenusesse. Peamine veebiserver tootmises saadab pÀringu allolevale teenusele products.production ja ainult sellele. Samal ajal kopeerib teenuse mesh intelligentselt selle pÀringu ja saadab selle products.staging, millest veebiserver isegi ei tea.
Veel ĂŒks seotud teenusemesh'i kasutusstsenaarium, mille vĂ”ib rakendada liikluse paralleelse jagamise kohal, on . See vĂ”imaldab saata samaaegseid pĂ€ringuid erinevatele teenuse versioonidele ja kontrollida, kas kĂ”ik versioonid kĂ€ituvad ĂŒhtemoodi. Mul pole veel kohanud teenusetehase rakendust integreeritud tagasiregresseerimise testimise sĂŒsteemiga nagu , kuid idee ise tundub paljutĂ”otav.
12. Isolatsioon
TL;DR: Jagage oma teenusetehas mini-vÔrkudeks.
Tuntud ka kui segmenteerimine, isolatsioon on kunst jagada teenusetehast loogiliselt eraldatud segmentideks, mis ei tea ĂŒksteisest midagi. Isolatsioon sarnaneb virtuaalsete privaatvĂ”rkude loomisega. Peamine erinevus on see, et saate silti kasutada teenusetehase kĂ”iki eeliseid (nĂ€iteks teenuste avastamine), kuid lisatud turvalisusega. NĂ€iteks kui kurjategija suudab tungida teenusesse ĂŒhes alamvĂ”rgus, ei nĂ€e ta, millised teenused on kĂ€imas teistes alamvĂ”rkudes, ega saa nende liiklust katkestada.
Samuti vÔivad eelised olla ka organisatsioonilised. VÔib-olla soovite teenuseid jagada alamvÔrkudesse vastavalt ettevÔtte struktuurile ja vabastada arendajad kognitiivsest koormast, mis tuleneb vajadusest meeles pidada kogu service mesh'i.
13. PĂ€ringute sageduse piiramine, uuesti proovima ja ajaoutsid
TL;DR: Ei ole enam vaja lisada koodibaasi hĂ€davajalikke pĂ€ringute haldamise ĂŒlesandeid.
KĂ”iki neid asju vĂ”iks kĂ€sitleda eraldi kasutusjuhtumitena, kuid otsustasin need ĂŒhendada, kuna neil on ĂŒks ĂŒhine joon: need vĂ”tavad enda kanda pĂ€ringute elutsĂŒkli haldamise ĂŒlesanded, mida tavaliselt töötavad vĂ€lja rakenduste raamatukogud. Kui arendate Ruby on Rails'il pĂ”hinevat veebiserverit (mis ei ole integreeritud service mesh'iga), mis teostab pĂ€ringuid backend-teenustele lĂ€bi , rakendus peab ise otsustama, mida teha, kui N pĂ€ringut ebaĂ”nnestub. Samuti tuleb vĂ€lja selgitada, kui palju liiklust saavad need teenused töödelda ja need parameetrid 'hardcode' Ă”igete teekide abil. Lisaks peab rakendus otsustama, millal on aeg loobuda ja lasta pĂ€ringul aeguda (timeout). Ja et muuta mĂ”nda ĂŒlaltoodud parameetrit, tuleb veebiserver peatada, ĂŒmber konfigureerida ja uuesti kĂ€ivitada.
Nende ĂŒlesannete edastamine teenuste vĂ”rgule tĂ€hendab mitte ainult seda, et teenuste arendajad ei pea nende ĂŒle mĂ”tlema, vaid ka seda, et neid saab vaadelda laiemalt. Kui kasutatakse keerulist teenuste ahelat, nagu A â> B â> C â> D â> E, tuleb arvesse vĂ”tta kogu pĂ€ringu elutsĂŒklit. Kui on eesmĂ€rk pikendada teenuse C ajalimiite, on mĂ”istlik see kĂ”ikĂŒhel teha, mitte osa kaupa: uuendades teenuse koodi ja oodates, kuni pull request on vastu vĂ”etud ja CI-sĂŒsteem uue teenuse ĂŒles seab.
14. Telemeetria
TL;DR: Koguge kogu vajalik (ja mitte ainult) teave teenustelt.
Telemeetriat on ĂŒldtermin, mis hĂ”lmab metrikat, jaotatud jĂ€lgimist ja logisid. Teenuse vĂ”rgud pakuvad mehhanisme nende kolme andmetĂŒĂŒbi kogumiseks ja töötlemiseks. Siin hakkab asi veidi Ă€hmaseks minema, kuna vĂ”imaluste hulk on liiga suur. Metriika kogumiseks on olemas ja teised tööriistad, logide kogumiseks vĂ”ib kasutada , , jne. (nĂ€iteks ClickHouse koos meiega K8s jaoks â tĂ”lkija mĂ€rkus), jaotatud jĂ€lgimise jaoks on olemas jne. Iga teenuse vĂ”rk vĂ”ib toetada mĂ”ndade tööriistu ja mitte toetada teisi. On huvitav nĂ€ha, kas projekt suudab pakkuda mingit konvergentsi.
Antud juhul on teenuse vĂ”rgu tehnoloogia eelis selles, et sidecar konteinerid vĂ”ivad pĂ”himĂ”tteliselt koguda kĂ”iki eespool loetletud andmeid oma teenustelt. TeisisĂ”nu, teil on kĂ€sutuses ĂŒhtne telemeetriakogumissĂŒsteem ja teenuse vĂ”rk suudab muuta kogu selle teabe töötlemise erinevateks viisideks. NĂ€iteks:
- logide jÀlgimine mÔnelt teenuselt CLI-s;
- taotluste mahu jÀlgimine teenuse vÔrgu jÀlgimisnavigatsioonil;
- koguda ja suunata hajutatud jĂ€lgimiskuud sĂŒsteemi, nagu Jaeger.
TĂ€helepanu, subjektiivne arvamus: Ăldiselt on telemeetriaga selline olukord, kus teenuste vĂ”rgu tugev sekkumine on soovimatu. Alusinfo kogumine ja mĂ”ningate âkuldsete mÔÔdikuteâ reaalajas jĂ€lgimine, nagu nĂ€iteks edukaid pĂ€ringute protsent ja latentsus, on normaalne, kuid loodame, et me ei ole tunnistajaks mĂ”nede Frankenstein-stekide sĂŒndimisele, mis ĂŒritavad asendada spetsialiseeritud sĂŒsteeme, millest mĂ”ned on juba hĂ€sti tĂ”estatud ja hĂ€sti uuritud.
15. Audit
TL;DR: Kes unustab ajaloo Ôppetunnid, on mÀÀratud neid kordama.
Audit on kunst jĂ€lgida olulisi sĂŒndmuseid sĂŒsteemis. Teenuste vĂ”rgu puhul vĂ”ib see tĂ€hendada jĂ€lgimist, kes tegi pĂ€ringuid teatud teenuste spetsiifiliste lĂ”pp-punktide juurde vĂ”i kui tihti on viimase kuu jooksul toimunud mingi sĂŒndmus, mis on seotud turvalisusega.
On selge, et audite on tihedalt seotud telemeetria. Erinevus seisneb aga selles, et telemeetria seondub tavaliselt sellistele asjadele nagu jĂ”udlus ja tehniline tĂ”husus, samas kui audit vĂ”ib puudutada Ă”iguslikke ja muid kĂŒsimusi, mis ulatuvad kaugemale rangest tehnilisest sfÀÀrist (nĂ€iteks GDPR-i nĂ”uete jĂ€rgimine â Euroopa Liidu isikuandmete kaitse ĂŒldmÀÀrus).
16. Visualiseerimine
TL;DR: Elagu React.js â vĂ€simatu allikas veidratele liidesele.
VÔib-olla on olemas sobivam termin, aga ma ei tea seda. Pean lihtsalt silmas service mesh'i vÔi selle komponentide graafilist esitamist. Need visualiseerimised vÔivad sisaldada nÀitajaid nagu keskmised viivitused, teavet sidecar konteinerite konfiguratsiooni, tervisekontrolli tulemusi ja teateid.
Töö teenusele suunatud keskkonnas eeldab palju suuremat kognitiivset koormust vĂ”rreldes KĂ”rge Ăksuse Monoliidiga. SeetĂ”ttu tuleks kognitiivset koormust igal vĂ”imalusel vĂ€hendada. Lihtne graafiline liides teenuste vĂ”rgustiku jaoks, kus saab nuppu vajutada ja soovitud tulemus kĂ€tte saada, vĂ”ib olla selle tehnoloogia populaarsuse kasvu jaoks ĂŒlioluline.
Mitte kÔik ei olnud nimekirjas
Alguses kavatsesin lisada nimekirja veel mÔned kasutusjuhtumid, kuid otsustasin seda mitte teha. Siin nad koos minu otsuse pÔhjendustega:
- Mitmed andmekesksed keskustest. Minu arvates ei ole see niivÔrd kasutusjuhtum kui pigem kitsas ja spetsiifiline valdkond, kus teenuste vÔrgud vÔi mÔne funktsiooni nagu teenuste avastamine, rakenduvad.
- Sisse- ja vĂ€ljaminek. See on seotud valdkond, kuid piirdusin (vĂ”imalikult kunstlikult) kasutusjuhtumiga âida-lÀÀne liiklusâ. Sisse- ja vĂ€ljaminek vÀÀrivad eraldi artiklit.
KokkuvÔte
Sellega on kĂ”ik! JĂ€llegi, see nimekiri on ĂŒsna tinglik ja tĂ”enĂ€oliselt puudulik. Kui arvad, et ma midagi unustasin vĂ”i olen kuskil eksinud, vĂ”ta minuga Twitteris ĂŒhendust (). Palun jĂ€rgige kĂ€itumisreegleid.
P.S. tÔlkija mÀrkused
Artikli peanĂ€idisena on kasutatud pilti artiklist ââ (autor â Gregory MacKinnon). Sellel on kujutatud, kuidas osa rakenduste funktsionaalsusest (roheline) on liikunud service mesh'i, tagades nende vahelise ĂŒhenduse (sinine).
Lugege ka meie blogist:
- «»;
- «»;
- «».
Allikas: habr.com
