Destpêka Dark li Istio: Karûbarên Veşartî

Austin Powers, mirovekî nepenî yê navneteweyî, digot: "Xetere navê min ê navîn e." Lê tiştê ku ji hêla super ajan û servîsên îstîxbaratê ve tê girtin ji bo karûbarên komputerê qet ne guncaw e, ku bêhtengî ji xetereyê çêtir e.

Destpêka Dark li Istio: Karûbarên Veşartî

Istio, digel OpenShift û Kubernetes, belavkirina mîkroxizmetên bi rastî bêzar û pêşbînbar dike - û ew pir xweş e. Em ê li ser vê yekê û hê bêtir di posta çaremîn û dawîn a rêzenivîsa Istio de biaxivin.

Dema ku bêzar rast e

Di rewşa me de, bêhnteng tenê di qonaxa dawîn de çêdibe, dema ku ya ku dimîne rûniştin û temaşekirina pêvajoyê ye. Lê ji bo vê yekê hûn hewce ne ku pêşî her tiştî mîheng bikin, û gelek tiştên balkêş li vir li benda we ne.

Dema ku guhertoyek nû ya nermalava xwe bicîh dikin, hêja ye ku hûn hemî vebijarkan ji bo kêmkirina xetereyan bifikirin. Bi paralel meşandina ceribandinê rêyek pir bi hêz û îsbatkirî ye, û Istio dihêle hûn "karûbarek veşartî" (guhertoyek veşartî ya mîkroxizmeta xwe) bikar bînin da ku hûn vê yekê bikin bêyî ku destwerdana pergala hilberînê bikin. Ji bo vê yekê jî têgehek taybetî heye - "Dark Launch", ku di encamê de ji hêla fonksiyonek bi navê heman sîxur "neynika trafîkê" ve tê çalak kirin.

Ji kerema xwe bala xwe bidin ku hevoka yekem a paragrafa berê li şûna "serbestberdanê" têgîna "bikaranîna" bikar tîne. Pêdivî ye ku hûn bi rastî bikarin bi qasî ku hûn bixwazin mîkro-xizmeta xwe bicîh bikin-û, bê guman, bikar bînin. Pêdivî ye ku ev karûbar bikaribe seyrûseferê werbigire û pêvajoyê bike, encaman çêbike, û di heman demê de têketin binivîse û çavdêriyê bike. Lê di heman demê de, ev karûbar bixwe ne hewce ye ku di hilberînê de were berdan. Bicihkirin û berdana nermalavê her gav ne heman tişt in. Hûn dikarin kengê hûn bixwazin bicîh bikin, lê tenê gava ku hûn amade ne serbest berdin.

Organîzekirina bêhntengiyê balkêş e

Awirek li qaîdeya rêvekirina Istio ya jêrîn, ku hemî daxwazên HTTP ber bi pêşnîyara mîkroxizmetê v1 ve dişîne (hemû mînakên ku ji Istio Tutorial depo GitHub), dema ku di heman demê de wan bi pêşnîyara mîkroxizmeta v2 re neynikê dike:

Destpêka Dark li Istio: Karûbarên Veşartî
Bala xwe bidin labelê mirror: li binê ekranê - ev e ku neynika trafîkê saz dike. Erê, ew qas hêsan e!

Encama vê qaîdeyê dê ev be ku pergala hilberîna we (v1) dê bidomîne ku daxwazên hatîn pêvajoyê bidomîne, lê daxwaz bixwe dê bi asynkronî li v2-ê bêne neynik kirin, ango, dubareyên wan ên bêkêmasî dê biçin wir. Bi vî rengî, hûn dikarin v2 di şert û mercên rastîn de - li ser daneya rastîn û seyrûseferê - biceribînin bêyî ku bi tu awayî mudaxeleyî xebata pergala hilberînê bikin. Ma ev organîzekirina ceribandinê bêzar dike? Belê, teqez. Lê ew bi awayek balkêş tête kirin.

Ka em drama lê zêde bikin

Ji kerema xwe not bikin ku di koda v2 de pêdivî ye ku ji bo rewşên ku daxwazên hatinê dibe ku bibe sedema guhertinên daneyê peyda bikin. Daxwaz bi xwe bi hêsanî û zelal têne xuyang kirin, lê bijartina awayê pêvajoyê di ceribandinê de li ser we ye - û ev hinekî fikar e.

Werin em xalek girîng dubare bikin

Destpêkirina veşartî bi neynikê trafîkê (Dark Launch/Request Mirroring) bêyî ku bi tu awayî bandorê li kodê bike dikare were kirin.

Xwarina ji bo ramanê

Ger cîhê ku daxwaz lê têne xuyang kirin hin ji wan ne ji v1, lê ji v2 re bişîne? Mînakî, ji sedî yek ji hemî daxwazan an tenê daxwazên komek hin bikarhêneran. Û dûv re, berê xwe dide ka v2 çawa dixebite, hêdî hêdî hemî daxwazan veguhezîne guhertoya nû. An jî berevajî vê, ger tiştek bi v1 re xelet bibe, her tiştî vegerîne v2. Ez difikirim ku jê re tê gotin Danasîna Canary. vedigere madenê, û heke ew bi eslê xwe rûsî bûya, belkî dê referansek jê hebe pisîkan), û niha em ê bi hûrgulî li vê binêrin.

Bicihkirina Kanarya li Istio: hêsankirina komîsyonê

Bi baldarî û gav bi gav

Esasê modela bicîhkirina Canary Deployment zehf hêsan e: gava ku hûn guhertoyek nû ya nermalava xwe (di doza me de, mîkroxizmetek) didin destpêkirin, hûn pêşî gihandina wê didin komek piçûk a bikarhêneran. Ger her tişt baş biçe, hûn hêdî hêdî vê komê zêde bikin heya ku guhertoya nû dest bi çalakiyê bike, an - heke ne wusa be - di dawiyê de hemî bikarhêneran koçî wê bikin. Bi fikirîn û hêdî-hêdî danasîna guhertoyek nû û veguheztina bikarhêneran bi rengek kontrolkirî, hûn dikarin xetereyan kêm bikin û bertekan zêde bikin.

Bê guman, Istio Bi pêşkêşkirina çend vebijarkên baş ji bo rêvekirina daxwaziya aqilmend, Danasîna Canary hêsan dike. Û erê, ev hemî dikare bêyî ku bi tu awayî dest bi koda çavkaniyê xwe bike were kirin.

Fîlterkirina gerokê

Yek ji pîvanên rêwîtiyê yên herî hêsan beralîkirina gerok-based e. Ka em bibêjin hûn dixwazin tenê daxwazên gerokên Safari biçin v2. Li vir çawa tê kirin:

Destpêka Dark li Istio: Karûbarên Veşartî
Ka em vê qaîdeya rêvekirinê bicîh bînin û dûv re fermanê bikar bînin curl Em ê daxwazên rastîn ji mîkroxizmetê re di hêlekê de simul bikin. Wekî ku hûn di dîmenderê de dibînin, ew hemî diçin v1:

Destpêka Dark li Istio: Karûbarên Veşartî
Trafîka li ser v2 li ku ye? Ji ber ku di mînaka me de hemî daxwaz tenê ji xeta fermana me hatine, ew bi hêsanî tune. Lê bala xwe bidin rêzikên jêrîn ên li ser ekrana jorîn: ev bertekek e ku me daxwazek ji geroka Safari pêk anî, ku di encamê de ev hilberand:

Destpêka Dark li Istio: Karûbarên Veşartî

Hêza bêsînor

Me berê nivîsandiye ku bêjeyên birêkûpêk ji bo daxwazên rêvekirinê kapasîteyên pir hêzdar peyda dikin. Li mînaka jêrîn binêrin (em difikirin ku hûn ê fêm bikin ka ew çi dike):

Destpêka Dark li Istio: Karûbarên Veşartî
Heya nuha hûn gumanek heye ku bêjeyên birêkûpêk dikarin çi bikin.

Active Smart

Rêvekirina biaqil, bi taybetî hilberandina sernavên pakêtê bi karanîna bêjeyên birêkûpêk, dihêle hûn seyrûsefera ku hûn dixwazin rêve bibin. Û ev pêkanîna koda nû pir hêsan dike - ew hêsan e, ew ne hewce ye ku kodê bixwe biguhezîne, û heke hewce be, her tişt dikare zû wekî berê were vegerandin.

Balkêş?

Ma hûn dixwazin bi Istio, Kubernetes û OpenShift-ê li ser komputera xwe biceribînin? Kom Red Hat Developer Team pir baş amade kir pirtûka pirtûkê li ser vê mijarê û hemû dosyayên pê re ji raya giştî re eşkere kirin. Ji ber vê yekê herin û xwe tiştek înkar nekin.

Istio Egress: derketina ji dikana bîranînan

Bi karanîna Istio bi Red Hat OpenShift û Kubernetes re, hûn dikarin jiyana xwe bi mîkroxizmetan re pir hêsantir bikin. Tevra karûbarê Istio di hundurê Kubernetes-ê de veşartî ye, û koda we (bi piranî) di veqetandinê de dimeşe. Performans, hêsaniya guhertinê, şopandin, hwd. - ev hemî bi saya karanîna konteynerên kêlekê têne bikar anîn. Lê heke pêdivî ye ku mîkroxizmeta we bi karûbarên din ên ku li derveyî pergala weya OpenShift-Kubernetes-ê ne re têkilî daynin?

Li vê derê Îstio Egress tê alîkariyê. Bi kurtasî, ew bi tenê dihêle hûn bigihîjin çavkaniyên (bixwîne: "karûbar") ku ne beşek pergala weya Kubernetes pods in. Ger hûn veavakirina zêde pêk neynin, wê hingê di hawîrdora Istio Egress de seyrûsefera tenê di nav komek podan de û di navbera komikên weha de li ser bingeha tabloyên IP-ya navxweyî tê rêve kirin. Heya ku hûn ne hewce ne ku hûn bigihîjin karûbarên ji derve ve, kelekek wusa pir baş dixebite.

Egress dihêle hûn tabloyên IP-ya jorîn, an li ser bingeha qaîdeyên Egress an jî li ser rêzek navnîşanên IP-yê, derbas bikin.

Em bibêjin bernameyek Java-ya me heye ku ji httpbin.org/headers re daxwazek GET dike.

(httpbin.org ji bo ceribandina daxwazên karûbarê derketinê tenê çavkaniyek hêsan e.)

Ger hûn li ser rêza fermanê têkevin curl http://httpbin.org/headers, em ê jêrîn bibînin:

Destpêka Dark li Istio: Karûbarên Veşartî
An jî hûn dikarin heman navnîşan di gerokê de vekin:

Destpêka Dark li Istio: Karûbarên Veşartî
Wekî ku hûn dikarin bibînin, karûbarê ku li wir heye bi tenê sernavên ku jê re hatine derbas kirin vedigerîne.

Em bi serê xwe dewsa îthalatê dikin

Naha em koda Java-ya vê karûbarê, derveyî pergala xwe, bistînin û wê bi xwe bimeşînin, li ku derê, bînin bîra xwe, Istio hatî saz kirin. (Hûn dikarin vê yekê bi xwe re têkilî bikin tutorial Istio me.) Dema ku wêneyê guncav çêkir û li ser platforma OpenShift da destpêkirin, em ê bi fermanê bangî vê karûbarê bikin. curl egresshttpbin-istioegress.$(minishift ip).nip.io, piştî ku em ê li ser ekranê bibînin:

Destpêka Dark li Istio: Karûbarên Veşartî
Oops, çi bû? Her tişt tenê xebitî. Wateya Not Found çi ye? Me tenê ji bo wî kir curl.

Berfirehkirina tabloyên IP-ê li tevahiya Înternetê

Divê Istio ji bo vê yekê were tawanbar kirin (an spas kirin). Beriya her tiştî, Istio tenê konteynerên kêlekê ye ku berpirsiyarê tespîtkirin û rêvekirinê ne (û gelek tiştên din ên ku me berê li ser wan axivîn). Ji ber vê yekê, tabloyên IP-ê tenê dizanin ku di hundurê pergala koma we de çi ye. Û httpbin.org li derve ye û ji ber vê yekê nayê gihîştin. Û ev e ku Istio Egress tê rizgariyê - bêyî ku guheztinek piçûktir di koda çavkaniya we de hebe.

Rêzika Egress li jêr Istio neçar dike ku li ser karûbarê pêdivî, di vê rewşê de, httpbin.org, bigere (heke hewce bike, paşê li seranserê Înternetê). Wekî ku hûn ji vê pelê (egress_httpbin.yml) dibînin, fonksiyona li vir pir hêsan e:

Destpêka Dark li Istio: Karûbarên Veşartî
Tiştê ku dimîne ev e ku meriv vê qaîdeyê bicîh bîne:

istioctl create -f egress_httpbin.yml -n istioegress

Hûn dikarin qaîdeyên Egress bi fermanê bibînin istioctl get egressrules:

Destpêka Dark li Istio: Karûbarên Veşartî
Û di dawiyê de, em dîsa fermanê dimeşînin curl - û em dibînin ku her tişt dixebite:

Destpêka Dark li Istio: Karûbarên Veşartî

Em vekirî difikirin

Wekî ku hûn dikarin bibînin, Istio destûrê dide we ku hûn bi cîhana derve re danûstendinê saz bikin. Bi gotinek din, hûn hîn jî dikarin karûbarên OpenShift biafirînin û wan bi navgîniya Kubernetes ve rêve bibin, her tiştê ku li gorî hewcedariyê berz û jor ve dibin de bihêlin. Û di heman demê de, hûn dikarin bi ewlehî bigihîjin karûbarên derveyî hawîrdora xwe. Û erê, em careke din dubare dikin ku ev hemî bêyî ku bi tu awayî destwerdana koda we were kirin.

Ev posta paşîn a rêzefîlmê li ser Istio bû. Li bendê bin - li pêş gelek tiştên balkêş hene!

Source: www.habr.com

Add a comment