Dark Launch in Istio: Secret Services

„Hætta er millinafnið mitt,“ sagði Austin Powers, alþjóðlegi dularfulli maðurinn. En það sem ofurnjósnarar og leyniþjónustur kjósa er algjörlega óhentugt fyrir netöryggi, þar sem leiðindi eru miklu betri en hætta.

Dark Launch in Istio: Secret Services

Istio, ásamt OpenShift og Kubernetes, gerir örþjónustuuppsetningu sannarlega leiðinlega og fyrirsjáanlega — og það er frábært. Við munum ræða þetta og margt fleira í fjórðu og síðustu færslunni í Istio seríunni.

Þegar leiðindin eru réttmæt

Í okkar tilviki koma leiðindin aðeins upp á lokastiginu, þegar þú getur bara setið og horft á ferlið. En til að gera það þarftu fyrst að setja allt upp og þar bíður þín margt áhugavert.

Þegar ný útgáfa af hugbúnaði er sett upp er vert að íhuga alla möguleika til að draga úr áhættu. Samhliða keyrsla er mjög öflug og sannað prófunaraðferð og Istio gerir þér kleift að nota „leyniþjónustu“ (falna útgáfu af örþjónustunni þinni) í þessu skyni án þess að trufla framleiðslukerfið. Það er jafnvel sérstakt hugtak fyrir þetta: „Dark Launch“, sem aftur er virkjað með eiginleika sem hefur jafn njósnalegt nafn, „umferðarspeglun“.

Athugið að í fyrstu setningunni í fyrri málsgreininni er hugtakið „uppsetning“ notað frekar en „útgáfa“. Þið ættuð að geta sett upp – og auðvitað notað – örþjónustuna ykkar eins oft og þið viljið. Þessi þjónusta ætti að geta tekið á móti og unnið úr umferð, framleitt niðurstöður og skráð og fylgst með. Hins vegar þarf þjónustan sjálf ekki endilega að vera sett í framleiðslu. Uppsetning og útgáfa hugbúnaðar er ekki alltaf það sama. Þið getið sett upp hvenær sem þið viljið, en þið getið aðeins gefið út þegar þið eruð tilbúin.

Það er áhugavert að skipuleggja leiðindi

Skoðaðu eftirfarandi Istio leiðarreglu, sem leiðir allar HTTP beiðnir til örþjónustunnar tilmæli v1 (öll dæmi eru tekin úr GitHub geymslu fyrir Istio Tutorial), og speglar þær samtímis við örþjónustuna fyrir tilmæli v2:

Dark Launch in Istio: Secret Services
Vinsamlegast athugið merkimiðann mirror: Hnappurinn neðst á skjánum setur upp umferðarspeglun. Já, það er svona einfalt!

Niðurstaðan af þessari reglu er sú að framleiðslukerfið þitt (útgáfa 1) mun halda áfram að vinna úr innkomandi beiðnum, en beiðnirnar sjálfar verða speglaðar ósamstillt við útgáfu 2, sem þýðir að þær verða sendar sem heildarafrit. Þannig geturðu prófað útgáfu 2 við raunverulegar aðstæður - með raunverulegum gögnum og umferð - án þess að trufla framleiðslukerfið. Gerir þetta prófanir að erfiði? Já, algjörlega. En það er gaman að gera það.

Bætum við smá dramatík

Vinsamlegast athugið að útgáfa 2 kóðans verður að taka tillit til aðstæðna þar sem innkomandi beiðnir geta leitt til gagnabreytinga. Beiðnirnar sjálfar eru speglaðar auðveldlega og gagnsælega, en valið um hvernig á að meðhöndla þær í prófunarumhverfinu er undir þér komið - og þá verður hlutirnir svolítið taugatrekkjandi.

Við skulum endurtaka mikilvægt atriði

Hægt er að framkvæma speglun á dökku ræsingu/beiðni án þess að snerta neinn kóða.

Matur til umhugsunar

Hvað ef staðsetning speglunar beiðna myndi senda sumar þeirra í útgáfu 2 í stað útgáfu 1? Til dæmis eitt prósent af öllum beiðnum, eða aðeins beiðnir frá tilteknum hópi notenda. Og síðan, byggt á því hvernig útgáfa 2 virkar, flytja allar beiðnir smám saman yfir í nýju útgáfuna. Eða, öfugt, snúa öllu aftur í útgáfu 1 ef eitthvað fer úrskeiðis með útgáfu 2. Ég held að þetta sé kallað Canary Deployment. fer aftur í námuvinnsluog ef það væri af rússneskum uppruna, þá myndi það líklega innihalda tilvísun í kettir), og nú skulum við skoða þetta nánar.

Canary Deployment í Istio: einfalda gangsetningu

Varlega og smám saman

Útfærslulíkanið á Canary er einfalt: þegar þú gefur út nýja útgáfu af hugbúnaðinum þínum (í okkar tilfelli örþjónustu) þá gefurðu hana fyrst litlum hópi notenda. Ef allt gengur vel stækkarðu þennan hóp hægt og rólega þar til nýja útgáfan byrjar að bila, eða – ef það gerist aldrei – þá flyturðu að lokum alla notendur yfir á hana. Með því að rúlla nýju útgáfunni út af ábyrgum og smám saman og færa notendur yfir á hana á stýrðan hátt geturðu dregið úr áhættu og hámarkað endurgjöf.

Að sjálfsögðu einfaldar Istio dreifingu á Canary með því að bjóða upp á nokkra frábæra möguleika fyrir snjalla beiðnaleiðsögn. Og já, allt þetta er hægt að gera án þess að snerta frumkóðann þinn.

Síun vafrans

Eitt af einföldustu leiðarviðmiðunum er vafrasértæk tilvísun. Segjum sem svo að þú viljir aðeins beiðnir frá Safari vöfrum fara í útgáfu 2. Svona gerirðu það:

Dark Launch in Istio: Secret Services
Við skulum beita þessari leiðarreglu og síðan nota skipunina curl Við munum herma eftir raunverulegum beiðnum til örþjónustunnar í lykkju. Eins og þú sérð á skjámyndinni fara þær allar í útgáfu 1:

Dark Launch in Istio: Secret Services
Hvar er umferðin á útgáfu 2? Þar sem allar beiðnir í dæminu okkar komu frá skipanalínunni, þá er hún einfaldlega ekki þar. En takið eftir neðstu línunum á skjámyndinni hér að ofan: þetta er svarið við beiðni okkar frá Safari vafranum, sem aftur skilaði þessu:

Dark Launch in Istio: Secret Services

Ótakmarkað afl

Við höfum þegar skrifað um hversu öflugar reglulegar segðir eru fyrir leiðarbeiðnir. Skoðið eftirfarandi dæmi (við teljum að þið munið átta ykkur á því hvað það gerir):

Dark Launch in Istio: Secret Services
Núna hefur þú líklega hugmynd um hvað reglulegar segðir eru færar um.

Hegðaðu þér skynsamlega

Snjall leiðarval, þar á meðal vinnsla pakkahausa með reglulegum segðum, gerir þér kleift að stjórna umferð nákvæmlega eins og þú vilt. Þetta einfaldar verulega innleiðingu nýs kóða – það er einfalt, krefst ekki breytinga á kóðanum sjálfum og hægt er að endurheimta það fljótt ef þörf krefur.

Hefur þú áhuga?

Langar þig að prófa Istio, Kubernetes og OpenShift á þinni eigin vél? Teymið Red Hat forritarateymi útbúið framúrskarandi kennslubók Ég hef birt allar tengdar skrár um þetta efni og gert þær aðgengilegar almenningi. Njóttu þess því sem þú getur.

Istio Egress: Farið út í gegnum minjagripabúðina

Að nota Istio með Red Hat OpenShift og Kubernetes getur gert lífið með örþjónustur mun auðveldara. Istio þjónustunetið er falið inni í Kubernetes hylki og kóðinn þinn keyrir (að mestu leyti) í einangrun. Afköst, auðveld breyting, rakning og fleira er allt auðvelt að nýta með því að nota hliðarvagnsílát. En hvað ef örþjónustan þín þarf að eiga samskipti við aðrar þjónustur sem eru staðsettar utan OpenShift-Kubernetes kerfisins þíns?

Þetta er þar sem Istio Egress kemur inn í myndina. Einfaldlega sagt, það gerir þér kleift að fá aðgang að auðlindum (lesist: „þjónustu“) sem eru ekki hluti af Kubernetes pod kerfinu þínu. Án nokkurrar viðbótarstillingar leiðir Istio Egress aðeins umferð innan og á milli pod klasa byggt á innri IP töflum. Þessi aðlögun virkar vel svo lengi sem þú þarft ekki að fá aðgang að þjónustu utan frá.

Egress gerir þér kleift að komast framhjá ofangreindum IP-töflum, annað hvort byggt á Egress-reglum eða á sviði IP-talna.

Segjum sem svo að við höfum Java forrit sem sendir GET beiðni til httpbin.org/headers.

(httpbin.org er einfaldlega þægileg auðlind til að prófa sendar þjónustubeiðnir.)

Ef þú slærð inn í skipanalínuna curl http://httpbin.org/headers, munum við sjá eftirfarandi:

Dark Launch in Istio: Secret Services
Eða þú getur opnað sama vefslóðina í vafranum þínum:

Dark Launch in Istio: Secret Services
Eins og við sjáum skilar þjónustan sem þar er staðsett einfaldlega hausunum sem henni eru send.

Við erum að beita innflutningsstaðgengli beint

Nú skulum við taka Java kóðann fyrir þessa þjónustu utan kerfisins okkar og keyra hann á kerfinu okkar, þar sem, til áminningar, Istio er uppsett. (Þú getur gert þetta sjálfur með því að vísa til Istio kennslan okkar.) Eftir að viðeigandi mynd hefur verið smíðuð og keyrð á OpenShift kerfinu, munum við kalla á þessa þjónustu með skipuninni curl egresshttpbin-istioegress.$(minishift ip).nip.io, eftir það munum við sjá þetta á skjánum:

Dark Launch in Istio: Secret Services
Úbbs, hvað gerðist? Það var bara að virka. Hvað þýðir „Ekki fundið“? Við gerðum eitthvað í því. curl.

Að útvíkka IP-töflur yfir allt internetið

Istio ber ábyrgð á þessu (eða ber að þakka). Þegar öllu er á botninn hvolft er Istio einfaldlega hliðarvagnsílát sem ber ábyrgð á uppgötvun og leiðsögn (og fullt af öðru sem við höfum fjallað um áður). Þess vegna vita IP-töflur aðeins hvað er inni í klasakerfinu þínu. httpbin.org er staðsett utan þess og því óaðgengilegt. Þetta er þar sem Istio Egress kemur inn í myndina – án minnstu breytinga á frumkóðanum þínum.

Reglan hér að neðan neyðir Istio til að leita (ef nauðsyn krefur, um allt internetið) að þjónustunni sem þarf, í þessu tilfelli httpbin.org. Eins og þú sérð á þessari skrá (egress_httpbin.yml), er virknin hér frekar einföld:

Dark Launch in Istio: Secret Services
Það eina sem eftir er er að beita þessari reglu:

istioctl create -f egress_httpbin.yml -n istioegress

Þú getur skoðað Egress reglurnar með skipuninni istioctl get egressrules:

Dark Launch in Istio: Secret Services
Og að lokum keyrum við skipunina aftur Curl – og við sjáum að allt virkar:

Dark Launch in Istio: Secret Services

Hugsaðu opinskátt

Eins og þú sérð gerir Istio þér kleift að hafa samskipti við umheiminn. Með öðrum orðum geturðu samt búið til OpenShift þjónustur og stjórnað þeim í gegnum Kubernetes, haldið öllu í hylki sem geta stækkað og minnkað eftir þörfum. Og á sama tíma geturðu auðveldlega fengið aðgang að þjónustum utan umhverfisins. Og já, enn og aftur geturðu gert allt þetta án þess að snerta kóðann þinn.

Þetta var síðasta færslan í Istio seríunni. Verið vakandi - það er margt fleira framundan!

Heimild: www.habr.com

Kauptu áreiðanlega hýsingu fyrir síður með DDoS vernd, VPS VDS netþjónum 🔥 Kauptu áreiðanlega vefhýsingu með DDoS vörn, VPS VDS netþjónum | ProHoster