Serje ta' karigi fuq Istio Service Mesh

Qed nibdew sensiela ta' postijiet li juru wħud mill-ħafna kapaċitajiet tal-Istio Service Mesh meta kkombinati ma' Red Hat OpenShift u Kubernetes.

Serje ta' karigi fuq Istio Service Mesh

L-ewwel parti, illum:

  • Ejja nispjegaw il-kunċett tal-kontenituri sidecar ta' Kubernetes u nifformulaw il-leitmotiv ta' din is-serje ta' postijiet: "M'għandek bżonn tibdel xejn fil-kodiċi tiegħek".
  • Ejja nintroduċu l-ħaġa fundamentali ta 'Istio - ir-regoli tar-rotta. Il-karatteristiċi l-oħra kollha ta 'Istio huma mibnija fuqhom, peress li huma r-regoli li jippermettulek tidderieġi t-traffiku lejn mikroservizzi, billi tuża fajls YAML esterni għall-kodiċi tas-servizz. Qed nikkunsidraw ukoll l-iskema tal-iskjerament tal-Canary Deployment. Bonus tas-Sena l-Ewwel – 10 lezzjonijiet interattivi fuq Istio


It-tieni parti, dalwaqt, tgħidlek:

  • Kif Istio jimplimenta Pool Ejection flimkien ma 'Circuit Breaker u se juri kif Istio jippermettilek tneħħi pod mejjet jew b'rendiment ħażin miċ-ċirkwit tal-ibbilanċjar.
  • Aħna ser inħarsu wkoll lejn is-suġġett Circuit Breaker mill-ewwel post biex naraw kif Istio jista 'jintuża hawn. Aħna ser nuruk kif ir-rotta tat-traffiku u timmaniġġja l-iżbalji tan-netwerk billi tuża fajls ta 'konfigurazzjoni YAML u kmandi tat-terminal mingħajr l-iċken bidliet fil-kodiċi tas-servizz.

It-tielet parti:

  • Storja dwar it-traċċar u l-monitoraġġ, li diġà huma integrati jew miżjuda faċilment ma 'Istio. Aħna ser nuruk kif tuża għodod bħal Prometheus, Jaeger, u Grafana flimkien mal-iskala tal-OpenShift biex timmaniġġja l-arkitetturi tal-mikroservizzi mingħajr sforz.
  • Nimxu mill-monitoraġġ u l-immaniġġjar tal-iżbalji għall-introduzzjoni tagħhom fis-sistema intenzjonalment. Fi kliem ieħor, nitgħallmu kif nagħmlu injezzjoni tal-ħsara mingħajr ma nibdlu l-kodiċi tas-sors, li huwa importanti ħafna mil-lat tal-ittestjar - peress li jekk tibdel il-kodiċi innifsu għal dan, hemm riskju li tintroduċi żbalji addizzjonali.

Fl-aħħarnett, fil-post finali dwar Istio Service Mesh:

  • Ejja mmorru għall-Dlam Side. B'mod aktar preċiż, se nitgħallmu nużaw l-iskema Dark Launch, meta l-kodiċi jiġi skjerat u ttestjat direttament fuq id-dejta tal-produzzjoni, iżda ma jaffettwa l-operat tas-sistema bl-ebda mod. Dan huwa fejn il-kapaċità ta 'Istio li jaqsam it-traffiku tiġi utli. U l-abbiltà li tittestja fuq id-dejta tal-produzzjoni ħajjin mingħajr ma taffettwa l-operat tas-sistema tal-ġlieda b'xi mod hija l-aktar metodu konvinċenti ta 'verifika.
  • Nibnu fuq Dark Launch, aħna ser nuruk kif tuża l-mudell Canary Deployment biex tnaqqas ir-riskju u tagħmilha aktar faċli biex tidħol kodiċi ġdid fil-produzzjoni. Canary Deployment innifsu mhuwiex ġdid, iżda Istio jippermettilek timplimenta din l-iskema b'fajls YAML sempliċi biss.
  • Fl-aħħarnett, ser nuruk kif tuża Istio Egress biex tagħti aċċess għas-servizzi lil dawk li huma barra mill-clusters tiegħek sabiex tuża l-kapaċitajiet ta 'Istio meta taħdem ma' l-Internet.

Allura, hawn immorru...

Għodod ta 'monitoraġġ u ġestjoni Istio - dak kollu li għandek bżonn biex orkestra mikroservizzi f'malja ta' servizz malji tas-servizz.

X'inhu Istio Service Mesh

Malja tas-servizz timplimenta funzjonijiet bħall-monitoraġġ tat-traffiku, il-kontroll tal-aċċess, l-iskoperta, is-sigurtà, it-tolleranza tal-ħsarat u affarijiet oħra utli għal grupp ta 'servizzi. Istio jippermettilek li tagħmel dan kollu mingħajr l-iċken bidliet fil-kodiċi tas-servizzi nfushom. X'inhu s-sigriet tal-maġija? Istio tehmeż il-prokura tagħha stess ma' kull servizz fil-forma ta' kontejner sidecar (sidecar huwa sidecar ta' mutur), u wara dan it-traffiku kollu għal dan is-servizz jgħaddi mill-prokura, li, iggwidat minn politiki speċifikati, jiddeċiedi kif, meta u jekk dan it-traffiku. għandha tilħaq is-servizz għal kollox. Istio jagħmilha possibbli wkoll li jiġu implimentati tekniki DevOps avvanzati bħal skjeramenti tal-kanarji, circuit breakers, injezzjoni tal-ħsara u ħafna oħrajn.

Kif jaħdem Istio mal-kontenituri u l-Kubernetes

Il-malja tas-servizz Istio hija implimentazzjoni sidecar ta’ dak kollu meħtieġ biex jinħolqu u jiġu mmaniġġjati mikroservizzi: monitoraġġ, traċċar, circuit breakers, routing, ibbilanċjar tat-tagħbija, injezzjoni tal-ħsarat, tentattivi mill-ġdid, timeouts, mirroring, kontroll tal-aċċess, limitazzjoni tar-rata u ħafna aktar. U għalkemm illum hemm ton ta 'libreriji biex jimplimentaw dawn il-funzjonijiet direttament fil-kodiċi, b'Istio tista' tikseb l-istess affarijiet mingħajr ma tbiddel xejn fil-kodiċi tiegħek.

Skont il-mudell sidecar, Istio jaħdem f'kontenitur Linux, li jinsab f'wieħed Kubernetes-pod b'servizz ikkontrollat ​​u jinjetta u estratti funzjonalità u informazzjoni skont konfigurazzjoni partikolari. Aħna nenfasizzaw li din hija l-konfigurazzjoni tiegħek stess, u tgħix barra mill-kodiċi tiegħek. Għalhekk, il-kodiċi isir ħafna aktar sempliċi u iqsar.

Dak li huwa importanti wkoll huwa li l-komponent operattiv tal-mikroservizzi jirriżulta li bl-ebda mod ma huwa konness mal-kodiċi innifsu, li jfisser li l-operat tagħhom jista 'jiġi trasferit b'mod sikur lil speċjalisti tal-IT. Tabilħaqq, għaliex l-iżviluppatur għandu jkun responsabbli għal circuit breakers u injezzjoni ta 'ħsara? Irreaġixxi, iva, imma tipproċessahom u toħloqhom? Jekk tneħħi dan kollu mill-kodiċi, il-programmaturi jkunu jistgħu jiffukaw bis-sħiħ fuq il-funzjonalità tal-applikazzjoni. U l-kodiċi innifsu se jsir iqsar u aktar sempliċi.

Malja tas-servizz

Istio, li jimplimenta funzjonijiet għall-ġestjoni ta 'mikroservizzi barra mill-kodiċi tagħhom, huwa l-kunċett ta' Service Mesh. Fi kliem ieħor, huwa grupp koordinat ta' binarju wieħed jew aktar li jiffurmaw malja ta' funzjonijiet tan-netwerk.

Kif jaħdem Istio mal-mikroservizzi

Dan huwa kif jidher ix-xogħol tal-kontenituri sidecar flimkien ma ' Kubernetes и Minishift ħarsa ta' l-għasafar: tniedi istanza ta' Minishift, oħloq proġett għal Istio (ejja nsejħulha “istio-system”), tinstalla u tħaddem il-komponenti kollha relatati ma' Istio. Imbagħad, hekk kif toħloq proġetti u imżiewed, iżżid l-informazzjoni tal-konfigurazzjoni mal-iskjeramenti tiegħek, u l-imżiewed tiegħek jibdew jużaw Istio. Dijagramma simplifikata tidher bħal din:

Serje ta' karigi fuq Istio Service Mesh

Issa tista 'tbiddel is-settings ta' Istio sabiex, pereżempju, torganizza injezzjoni ta 'ħsara, appoġġ Skjerament tal-Kanarji jew karatteristiċi oħra Istio - u dan kollu mingħajr ma tmiss il-kodiċi tal-applikazzjonijiet infushom. Ejja ngħidu li trid terġa 'tidderieġi t-traffiku kollu tal-web mill-utenti tal-akbar klijent tiegħek (Foo Corporation) għal verżjoni ġdida tas-sit. Biex tagħmel dan, sempliċement oħloq regola ta' rotta Istio li tfittex @foocorporation.com fl-ID tal-utent u tindirizza mill-ġdid kif xieraq. Għall-utenti l-oħra kollha, xejn mhu se jinbidel. Sadanittant, bil-kalma se tittestja l-verżjoni l-ġdida tas-sit. U innota li m'għandekx bżonn tinvolvi l-iżviluppaturi għal dan.

U se jkollok tħallas għożża għaliha?

L-anqas xejn. Istio huwa pjuttost mgħaġġel u huwa miktub fih Go u joħloq ftit li xejn overhead. Barra minn hekk, it-telf possibbli fil-produttività onlajn huwa kkumpensat minn żieda fil-produttività tal-iżviluppatur. Mill-inqas fit-teorija: tinsiex li l-ħin tal-iżviluppaturi huwa ta' valur. Fir-rigward tal-ispejjeż tas-softwer, Istio huwa softwer b'sors miftuħ, sabiex tkun tista 'tikseb u tużah b'xejn.

Ikkontrolla lilek innifsek

It-Tim tal-Esperjenza tal-Iżviluppaturi tar-Red Hat żviluppa prattika fil-fond gwida minn Istio (bl-Ingliż). Hija taħdem fuq Linux, MacOS u Windows, u l-kodiċi huwa disponibbli f'Java u Node.js.

10 lezzjonijiet interattivi fuq Istio

Blokk 1 - Għal Jibdew

Introduzzjoni għal Istio
Minuti 30
Ejja niffamiljarizzaw ruħhom mas-Service Mesh, nitgħallmu kif tinstalla Istio fi cluster OpenShift Kubernetes.
Biex tibda

L-iskjerament ta' mikroservizzi f'Istio
Minuti 30
Aħna nużaw Istio biex niskjeraw tliet mikroservizzi bi Spring Boot u Vert.x.
Biex tibda

Blokk 2 – livell intermedju

Monitoraġġ u traċċar f'Istio
Minuti 60
Aħna ser nesploraw l-għodod ta 'monitoraġġ integrati ta' Istio, metriċi personalizzati, u OpenTracing permezz ta 'Prometheus u Grafana.
Biex tibda

Rotot sempliċi f'Istio
Minuti 60
Tgħallem kif timmaniġġja r-rotot f'Istio billi tuża regoli sempliċi.
Biex tibda

Regoli ta' rotta avvanzati
Minuti 60
Ejja nagħtu ħarsa lejn ir-rotot intelliġenti, il-kontroll tal-aċċess, l-ibbilanċjar tat-tagħbija u l-limitazzjoni tar-rata ta 'Istio.
Biex tibda

Blokk 3 – utent avvanzat

Injezzjoni tal-Ħtija f'Istio
Minuti 60
Nistudjaw xenarji ta' maniġġar ta' fallimenti f'applikazzjonijiet distribwiti, li noħolqu żbalji HTTP u dewmien fin-netwerk, u nitgħallmu nużaw l-inġinerija tal-kaos biex nirrestawraw l-ambjent.
Biex tibda

Circuit Breaker f'Istio
Minuti 30
Aħna ninstallaw Siege għal siti tal-ittestjar tal-istress u nitgħallmu kif niżguraw it-tolleranza tal-ħsarat backend billi tuża replays, circuit breaker u ejection tal-pool.
Biex tibda

Egress u Istio
Minuti 10
Aħna nużaw ir-rotot Egress biex noħolqu regoli għall-interazzjoni ta 'servizzi interni ma' APIs u servizzi esterni.
Biex tibda

Istio u Kiali
Minuti 15
Tgħallem tuża Kiali biex tikseb ħarsa ġenerali tal-malja tas-servizz u tesplora l-flussi tat-talbiet u tad-dejta.
Biex tibda

TLS reċiproku f'Istio
Minuti 15
Noħolqu Istio Gateway u VirtualService, imbagħad nistudjaw it-TLS reċiproku (mTLS) u s-settings tiegħu fid-dettall.
Biex tibda

Blokk 3.1 - Deep Dive: Istio Service Mesh għal Mikroservizzi

Serje ta' karigi fuq Istio Service Mesh
X'inhu l-ktieb dwar:

  • X'inhu xibka tas-servizz?
  • Is-sistema Istio u r-rwol tagħha fl-arkitettura tal-mikroservizz.
  • Uża Istio biex issolvi l-problemi li ġejjin:
    • Tolleranza għall-ħsarat;
    • Rotot;
    • Ittestjar tal-kaos;
    • Sikurezza;
    • Ġbir tat-telemetrija bl-użu ta’ traċċi, metriċi u Grafana.

Biex tniżżel ktieb

Serje ta 'artikoli dwar il-malji tas-servizz u Istio

Ipprova lilek innifsek

Din is-sensiela ta' postijiet mhix maħsuba biex tipprovdi ħarsa fil-fond fid-dinja ta' Istio. Irridu biss nintroduċuk il-kunċett u forsi nispirawk biex tipprova Istio għalik innifsek. Huwa kompletament liberu li tagħmel, u Red Hat jipprovdi l-għodod kollha li għandek bżonn biex tibda b'OpenShift, Kubernetes, kontenituri Linux, u Istio, inklużi: Red Hat Developer OpenShift Container Platform, il-gwida tagħna għal Istio u riżorsi oħra fuq tagħna mikrosit fuq Service Mesh. Iddewwimx, ibda llum!

Istio routing rules: tidderiġi t-talbiet tas-servizz fejn għandhom bżonn imorru

openshift и Kubernetes tagħmel xogħol eċċellenti ta 'indirizzar mikroservizzi mgħoddi għall-imżiewed meħtieġa. Din hija waħda mir-raġunijiet għall-eżistenza ta 'Kubernetes - routing u load balancing. Imma x'jiġri jekk għandek bżonn routing aktar sottili u sofistikat? Per eżempju, biex fl-istess ħin tuża żewġ verżjonijiet ta 'mikroservizz. Kif jistgħu jgħinu Istio Route Rules hawn?

Ir-regoli tar-rotot huma r-regoli li fil-fatt jiddeterminaw l-għażla tar-rotta. Irrispettivament mil-livell ta 'kumplessità tas-sistema, il-prinċipju operattiv ġenerali ta' dawn ir-regoli jibqa 'sempliċi: it-talbiet jiġu mgħoddija bbażati fuq ċerti parametri u valuri ta' header HTTP.
Ejja nħarsu lejn eżempji:

Kubernetes default: trivjali "50/50"

Fl-eżempju tagħna, se nuru kif fl-istess ħin nużaw żewġ verżjonijiet ta 'mikroservizz f'OpenShift, ejja nsejħulhom v1 u v2. Kull verżjoni taħdem fil-pod Kubernetes tagħha stess, u b'mod awtomatiku tħaddem routing round robin bbilanċjat b'mod ugwali. Kull pod jirċievi s-sehem tiegħu ta’ talbiet ibbażat fuq in-numru tal-istanzi tal-mikroservizz tiegħu, fi kliem ieħor, repliki. Istio jippermettilek tibdel dan il-bilanċ manwalment.

Ejja ngħidu aħna skjerati żewġ verżjonijiet tas-servizz ta 'rakkomandazzjoni tagħna fuq OpenShift, rakkomandazzjoni-v1 u rakkomandazzjoni-v2.
Fil-Fig. Il-Figura 1 turi li meta kull servizz ikun rappreżentat f'istanza waħda, it-talbiet jalternaw b'mod ugwali bejniethom: 1-2-1-2-... Dan huwa kif jaħdem ir-routing ta' Kubernetes b'mod awtomatiku:

Serje ta' karigi fuq Istio Service Mesh

Distribuzzjoni peżata bejn il-verżjonijiet

Fil-Fig. Il-Figura 2 turi x'jiġri jekk iżżid in-numru ta' repliki tas-servizz v2 minn waħda għal tnejn (dan isir bl-iskala oc —replicas=2 deployment/recommendation-v2 km). Kif tistgħu taraw, it-talbiet bejn v1 u v2 issa huma maqsuma fi proporzjon wieħed għal tlieta: 1-2-2-1-2-2-...:

Serje ta' karigi fuq Istio Service Mesh

Injora l-verżjoni billi tuża Istio

Istio jagħmilha faċli biex tinbidel id-distribuzzjoni tat-talbiet bil-mod li għandna bżonn. Pereżempju, ibgħat it-traffiku kollu biss għar-rakkomandazzjoni-v1 billi tuża l-fajl Istio yaml li ġej:

Serje ta' karigi fuq Istio Service Mesh

Hawnhekk għandek bżonn tagħti attenzjoni għal dan: il-miżwed jintgħażlu skont it-tikketti. L-eżempju tagħna juża t-tikketta v1. Il-parametru "piż: 100" ifisser li 100% tat-traffiku se jiġi mgħoddi lejn is-service pods kollha li għandhom it-tikketta v1.

Id-distribuzzjoni tad-Direttiva bejn il-verżjonijiet (Canary Deployment)

Sussegwentement, billi tuża l-parametru tal-piż, tista 'tidderieġi t-traffiku lejn iż-żewġ imżiewed, filwaqt li tinjora n-numru ta' każijiet ta 'mikroservizz li qed jaħdmu f'kull wieħed minnhom. Pereżempju, hawnhekk nidderieġu 90% tat-traffiku lejn v1 u 10% lejn v2:

Serje ta' karigi fuq Istio Service Mesh

Rotot separat għall-utenti mobbli

Bħala konklużjoni, se nuru kif iġiegħel it-traffiku tal-utent mobbli jiġi mgħoddi lejn is-servizz v2, u lil kulħadd lejn v1. Biex tagħmel dan, nużaw espressjonijiet regolari biex nanalizzaw il-valur tal-utent tal-aġent fl-intestatura tat-talba:

Serje ta' karigi fuq Istio Service Mesh

Issa imissek

L-eżempju b'espressjonijiet regolari għall-analiżi tal-headers għandu jimmotivak biex issib l-użi tiegħek tar-regoli tar-rotot Istio. Barra minn hekk, il-possibbiltajiet hawnhekk huma pjuttost estensivi, peress li l-valuri tal-header jistgħu jiġu ffurmati fil-kodiċi tas-sors tal-applikazzjoni.

U ftakar li Ops, mhux Dev

Dak kollu li wrejna fl-eżempji ta 'hawn fuq isir mingħajr l-iċken bidliet fil-kodiċi tas-sors, ukoll, ħlief għal dawk il-każijiet meta huwa meħtieġ li jiġu ġġenerati headers ta' talbiet speċjali. Istio se jkun utli kemm għall-iżviluppaturi, li, pereżempju, se jkunu jistgħu jużawh fl-istadju tal-ittestjar, kif ukoll għal speċjalisti fl-operat tas-sistemi tal-IT, li għalihom se jgħin ħafna fil-produzzjoni.

Mela ejja nirrepetu l-leitmotiv ta’ din is-serje ta’ postijiet: m'għandekx bżonn tibdel xi ħaġa fil-kodiċi tiegħek. M'hemmx bżonn li jinbnew immaġini ġodda jew iniedu kontenituri ġodda. Dan kollu huwa implimentat barra mill-kodiċi.

Uża l-immaġinazzjoni tiegħek

Immaġina biss il-possibbiltajiet ta 'analiżi tal-header bl-użu ta' espressjonijiet regolari. Trid tidderieġi mill-ġdid l-akbar klijent tiegħek għal verżjoni speċjali tiegħek mikroservizzi? Faċilment! Għandek bżonn verżjoni separata għall-browser Chrome? Mhux problema! Tista 'rotta traffiku skond kważi kull karatteristika.

Ipprova lilek innifsek

Il-qari dwar Istio, Kubernetes u OpenShift huwa ħaġa waħda, imma għaliex ma tmissx it yourself? Tim Programm tal-Iżviluppatur Red Hat ħejjiet gwida dettaljata (bl-Ingliż) li tgħinek tikkontrolla dawn it-teknoloġiji malajr kemm jista’ jkun. Il-manwal huwa wkoll 100% open source, għalhekk huwa mqiegħed fid-dominju pubbliku. Il-fajl jaħdem fuq macOS, Linux u Windows, u l-kodiċi tas-sors huwa disponibbli fil-verżjonijiet Java u node.js (verżjonijiet f'lingwi oħra dalwaqt). Iftaħ ir-repożitorju git korrispondenti fil-browser tiegħek Red Hat Developer Demo.

Fil-post li jmiss: naħdmu l-problemi mill-isbaħ

Illum rajt x'jistgħu jagħmlu r-regoli tar-routing ta' Istio. Issa immaġina l-istess ħaġa, iżda biss fir-rigward tal-immaniġġjar tal-iżbalji. Dan huwa eżattament dak li se nitkellmu dwaru fil-post li jmiss.

Sors: www.habr.com

Żid kumment