Tnedija Skur f'Istio: Servizzi Sigrieti

“Il-periklu huwa l-isem tan-nofs tiegħi,” kien jgħid Austin Powers, raġel internazzjonali ta’ misteru. Imma dak li huwa stmat ħafna mis-super-aġenti u s-servizzi tal-intelliġenza xejn mhu adattat għas-servizzi tal-kompjuter, fejn id-dwejjaq huwa ħafna aħjar mill-periklu.

Tnedija Skur f'Istio: Servizzi Sigrieti

U Istio, flimkien ma' OpenShift u Kubernetes, jagħmel l-iskjerament ta' mikroservizzi tassew boring u prevedibbli - u dan huwa kbir. Dwar dan u ħafna aktar nitkellmu fir-raba’ u l-aħħar post fis-sensiela Istio.

Meta d-dwejjaq ikun tajjeb

Fil-każ tagħna, id-dwejjaq iseħħ biss fil-fażi finali, meta dak kollu li jibqa 'huwa li toqgħod u tara l-proċess. Iżda għal dan għandek bżonn tikkonfigura kollox l-ewwel, u ħafna affarijiet interessanti jistennewk hawn.

Meta tuża verżjoni ġdida tas-softwer tiegħek, ta' min tikkunsidra l-għażliet kollha biex tnaqqas ir-riskji. It-tħaddim b'mod parallel huwa mod qawwi ħafna u ppruvat biex tittestja, u Istio jippermettilek tuża "servizz sigriet" (verżjoni moħbija tal-mikroservizz tiegħek) biex tagħmel dan mingħajr ma tinterferixxi mas-sistema ta 'produzzjoni. Hemm anke terminu speċjali għal dan - "Dark Launch", li min-naħa tiegħu huwa attivat minn funzjoni b'isem ugwalment spy "mirror tat-traffiku".

Jekk jogħġbok innota li l-ewwel sentenza tal-paragrafu preċedenti tuża t-terminu "skjerament" aktar milli "rilaxx". Għandek tkun tista' tassew tuża—u, ovvjament, tuża—il-mikroservizz tiegħek kemm-il darba trid. Dan is-servizz irid ikun kapaċi jirċievi u jipproċessa t-traffiku, jipproduċi riżultati, u jikteb ukoll fir-reġistri u jimmonitorja. Iżda fl-istess ħin, dan is-servizz innifsu mhux bilfors jeħtieġ li jiġi rilaxxat fil-produzzjoni. L-iskjerament u r-rilaxx tas-softwer mhumiex dejjem l-istess ħaġa. Tista' tuża kull meta trid, imma tirrilaxxa biss meta tkun lest.

L-organizzazzjoni tad-dwejjaq hija interessanti

Agħti ħarsa lejn ir-regola tar-rotot Istio li ġejja, li tgħaddi t-talbiet HTTP kollha għar-rakkomandazzjoni tal-mikroservizz v1 (l-eżempji kollha meħuda minn Istio Tutorial GitHub repo), filwaqt li fl-istess ħin tirriflettihom għall-mikroservizz tar-rakkomandazzjoni v2:

Tnedija Skur f'Istio: Servizzi Sigrieti
Oqgħod attent għat-tikketta mirror: fil-qiegħ tal-iskrin - huwa dan li jistabbilixxi r-riflessjoni tat-traffiku. Iva, huwa daqshekk sempliċi!

Ir-riżultat ta 'din ir-regola se jkun li s-sistema ta' produzzjoni tiegħek (v1) se tkompli tipproċessa talbiet deħlin, iżda t-talbiet infushom se jiġu riflessi b'mod asinkroniku ma 'v2, jiġifieri, id-duplikati sħaħ tagħhom se jmorru hemm. B'dan il-mod, tista 'tittestja v2 f'kundizzjonijiet reali - fuq data reali u traffiku - mingħajr ma tinterferixxi bl-ebda mod mat-tħaddim tas-sistema ta' produzzjoni. Dan jagħmel l-organizzazzjoni tal-ittestjar boring? Iva, żgur. Iżda dan isir b'mod interessanti.

Ejja nżidu d-drama

Jekk jogħġbok innota li fil-kodiċi v2 huwa meħtieġ li jiġu pprovduti sitwazzjonijiet fejn it-talbiet deħlin jistgħu jwasslu għal bidliet fid-dejta. It-talbiet infushom huma riflessi faċilment u b'mod trasparenti, iżda l-għażla tal-metodu tal-ipproċessar fit-test hija f'idejk - u dan huwa daqsxejn inkwetanti.

Ejja nirrepetu punt importanti

Tnedija sigrieta b'mirror tat-traffiku (Dark Launch/Request Mirroring) tista 'titwettaq mingħajr ma taffettwa l-kodiċi bl-ebda mod.

Ikel għall-ħsieb

X'jiġri jekk il-post fejn it-talbiet huma riflessi jibgħat xi wħud minnhom mhux għal v1, iżda għal v2? Pereżempju, wieħed fil-mija tat-talbiet kollha jew talbiet biss minn ċertu grupp ta 'utenti. U mbagħad, diġà tħares lejn kif taħdem v2, ittrasferixxi gradwalment it-talbiet kollha għall-verżjoni l-ġdida. Jew viċeversa, erġa' lura kollox għal v1 jekk xi ħaġa tmur ħażin ma' v2. Naħseb li tissejjaħ Canary Deployment. tmur lura għall-minjieri, u kieku kienet ta' oriġini Russa, probabbilment ikun fiha referenza għal qtates), u issa se nħarsu lejn dan f'aktar dettall.

Skjerament tal-Kanarji f'Istio: is-simplifikazzjoni tal-kummissjonar

B'attenzjoni u gradwalment

L-essenza tal-mudell ta 'skjerament ta' Canary Deployment hija estremament sempliċi: meta tniedi verżjoni ġdida tas-softwer tiegħek (fil-każ tagħna, mikroservizz), l-ewwel tagħti aċċess għaliha lil grupp żgħir ta 'utenti. Jekk kollox imur tajjeb, bil-mod iżżid dan il-grupp sakemm il-verżjoni l-ġdida tibda taġixxi, jew - jekk le - eventwalment temigra l-utenti kollha lejh. Billi tintroduċi b'mod maħsub u gradwalment verżjoni ġdida u taqleb l-utenti għaliha b'mod ikkontrollat, tista 'tnaqqas ir-riskji u timmassimizza l-feedback.

Naturalment, Istio jissimplifika l-Iskjerament tal-Kanarji billi joffri diversi għażliet tajbin għal rotta intelliġenti tat-talbiet. U iva, dan kollu jista 'jsir mingħajr ma tmiss il-kodiċi tas-sors tiegħek bl-ebda mod.

Iffiltrar tal-browser

Wieħed mill-aktar kriterji ta' rotta sempliċi huwa direzzjoni mill-ġdid ibbażata fuq il-browser. Ejja ngħidu li trid talbiet biss mill-browsers Safari biex imorru għall-v2. Hawn kif isir:

Tnedija Skur f'Istio: Servizzi Sigrieti
Ejja napplikaw din ir-regola tar-rotta u mbagħad uża l-kmand curl Aħna se nissimulaw talbiet reali lill-mikroservizz f'linja. Kif tistgħu taraw fil-screenshot, kollha jmorru għall-v1:

Tnedija Skur f'Istio: Servizzi Sigrieti
Fejn hu t-traffiku fuq v2? Peress li fl-eżempju tagħna t-talbiet kollha ġew biss mil-linja tal-kmand tagħna stess, sempliċement ma teżistix. Imma oqgħod attent għal-linji tal-qiegħ fl-iskrin ta 'hawn fuq: din hija reazzjoni għall-fatt li wettaqna talba mill-browser Safari, li min-naħa tiegħu pproduċiet dan:

Tnedija Skur f'Istio: Servizzi Sigrieti

Qawwa bla limitu

Aħna diġà ktibna li l-espressjonijiet regolari jipprovdu kapaċitajiet qawwija ħafna għat-talbiet tar-rotot. Agħti ħarsa lejn l-eżempju li ġej (naħsbu li tifhem x'tagħmel):

Tnedija Skur f'Istio: Servizzi Sigrieti
Sa issa probabbilment ikollok idea ta 'x'jistgħu jagħmlu l-espressjonijiet regolari.

Att Smart

Ir-rotot intelliġenti, b'mod partikolari l-ipproċessar ta' headers tal-pakketti bl-użu ta' espressjonijiet regolari, jippermettilek li tmexxi t-traffiku kif trid. U dan jissimplifika ħafna l-implimentazzjoni ta 'kodiċi ġdid - huwa sempliċi, ma jeħtieġx li tinbidel il-kodiċi innifsu, u jekk meħtieġ, kollox jista' jiġi rritornat malajr kif kien.

Interessat?

Int ħerqan li tesperimenta b'Istio, Kubernetes u OpenShift fuq il-kompjuter tiegħek? Tim Tim ta' Żviluppatur Red Hat ippreparat eċċellenti ktieb dwar dan is-suġġett u għamel il-fajls kollha li jakkumpanjawhom disponibbli għall-pubbliku. Mela aqbad u tiċħad xejn lilek innifsek.

Istio Egress: ħruġ mill-ħanut tas-souvenirs

Billi tuża Istio flimkien ma' Red Hat OpenShift u Kubernetes, tista' tagħmillek ħajtek bil-mikroservizzi ħafna aktar faċli. Il-malja tas-servizz ta' Istio hija moħbija ġewwa l-imżiewed ta' Kubernetes, u l-kodiċi tiegħek jaħdem (l-aktar) b'mod iżolat. Prestazzjoni, faċilità ta 'bidla, traċċar, eċċ. - dan kollu huwa faċli biex jintuża grazzi għall-użu ta' kontenituri sidecar. Imma x'jiġri jekk il-mikroservizz tiegħek jeħtieġ li jikkomunika ma' servizzi oħra li jinsabu barra mis-sistema OpenShift-Kubernetes tiegħek?

Dan huwa fejn Istio Egress jiġi għas-salvataġġ. Fil-qosor, sempliċement jippermettilek taċċessa riżorsi (aqra: "servizzi") li mhumiex parti mis-sistema tiegħek ta 'miżwed Kubernetes. Jekk ma twettaqx konfigurazzjoni addizzjonali, allura fl-ambjent Istio Egress it-traffiku jiġi mgħoddi biss fi ħdan cluster ta 'miżwed u bejn gruppi bħal dawn ibbażati fuq tabelli IP interni. U pupation bħal din taħdem tajjeb sakemm ma jkollokx bżonn aċċess għal servizzi minn barra.

Egress jippermettilek li tevita t-tabelli IP ta 'hawn fuq, jew ibbażati fuq regoli ta' Egress jew fuq firxa ta 'indirizzi IP.

Ejja ngħidu li għandna programm Java li jagħmel talba GET lil httpbin.org/headers.

(httpbin.org huwa biss riżors konvenjenti biex jiġu ttestjati talbiet għal servizzi li joħorġu.)

Jekk tidħol fuq il-linja tal-kmand curl http://httpbin.org/headers, se naraw dan li ġej:

Tnedija Skur f'Istio: Servizzi Sigrieti
Jew tista' tiftaħ l-istess indirizz fil-browser:

Tnedija Skur f'Istio: Servizzi Sigrieti
Kif tistgħu taraw, is-servizz li jinsab hemm sempliċement jirritorna l-headers mgħoddija lilu.

Sostituzzjoni ta' importazzjoni diretta

Issa ejja nieħdu l-kodiċi Java ta 'dan is-servizz, estern għas-sistema tagħna, u nħaddmuh waħedna, fejn, ftakar, Istio huwa installat. (Tista 'tagħmel dan lilek innifsek billi tikkuntattja it-tutorja tagħna ta' Istio.) Wara li bnejna l-immaġni xierqa u nedietha fuq il-pjattaforma OpenShift, aħna se nsejħu dan is-servizz bil-kmand curl egresshttpbin-istioegress.$(minishift ip).nip.io, wara dan se naraw dan fuq l-iskrin:

Tnedija Skur f'Istio: Servizzi Sigrieti
Oops, x'ġara? Kollox ħadem biss. Xi jfisser Not Found? Għamilna biss għalih curl.

L-estensjoni tat-tabelli IP għall-Internet kollu

Istio għandu jiġi akkużat (jew irringrazzjat) għal dan. Wara kollox, Istio huwa biss kontenituri sidecar li huma responsabbli għall-iskoperta u r-rotot (u ħafna affarijiet oħra li tkellimna dwarhom qabel). Għal din ir-raġuni, it-tabelli tal-IP jafu biss x'hemm ġewwa s-sistema tal-cluster tiegħek. U httpbin.org jinsab barra u għalhekk inaċċessibbli. U dan huwa fejn Istio Egress jiġi għas-salvataġġ - mingħajr l-iċken bidla fil-kodiċi tas-sors tiegħek.

Ir-regola Egress hawn taħt iġiegħel lil Istio tfittex (jekk meħtieġ, imbagħad fl-Internet kollu) għas-servizz meħtieġ, f'dan il-każ, httpbin.org. Kif tistgħu taraw minn dan il-fajl (egress_httpbin.yml), il-funzjonalità hawnhekk hija pjuttost sempliċi:

Tnedija Skur f'Istio: Servizzi Sigrieti
Jibqa' biss li tapplika din ir-regola:

istioctl create -f egress_httpbin.yml -n istioegress

Tista' tara r-regoli tal-Egress bil-kmand istioctl get egressrules:

Tnedija Skur f'Istio: Servizzi Sigrieti
U fl-aħħarnett, nerġgħu nħaddmu l-kmand curl – u naraw li kollox jaħdem:

Tnedija Skur f'Istio: Servizzi Sigrieti

Naħsbu fil-miftuħ

Kif tistgħu taraw, Istio jippermettilek torganizza interazzjoni mad-dinja ta 'barra. Fi kliem ieħor, xorta tista 'toħloq servizzi OpenShift u timmaniġġjahom permezz ta' Kubernetes, filwaqt li żżomm kollox f'miżwed li jiżdiedu u 'l isfel kif meħtieġ. U fl-istess ħin, tista 'taċċessa b'mod sikur servizzi esterni għall-ambjent tiegħek. U iva, nirrepetu għal darb'oħra li dan kollu jista 'jsir mingħajr ma tmiss il-kodiċi tiegħek bl-ebda mod.

Din kienet l-aħħar post fis-sensiela fuq Istio. Oqgħod attent - hemm ħafna affarijiet interessanti quddiem!

Sors: www.habr.com

Żid kumment