Röð færslur um Istio Service Mesh

Við erum að hefja röð af færslum sem sýna nokkra af mörgum möguleikum Istio Service Mesh þegar það er sameinað Red Hat OpenShift og Kubernetes.

Röð færslur um Istio Service Mesh

Fyrsti hluti, í dag:

  • Við skulum útskýra hugmyndina um Kubernetes hliðarvagnagáma og móta leiðarstef þessarar færsluröðar: "þú þarft ekki að breyta neinu í kóðanum þínum".
  • Við skulum kynna grundvallaratriði Istio - leiðarreglur. Allir aðrir eiginleikar Istio eru byggðir á þeim, þar sem það eru reglurnar sem gera þér kleift að beina umferð að örþjónustum með því að nota YAML skrár utan við þjónustukóðann. Við erum líka að íhuga dreifingaráætlun Canary Deployment. Nýársbónus – 10 gagnvirkar kennslustundir á Istio


Hluti annar, sem kemur bráðlega, mun segja þér:

  • Hvernig Istio útfærir Pool Ejection í samsetningu með Circuit Breaker og mun sýna hvernig Istio gerir þér kleift að fjarlægja dauðan eða illa árangursríkan belg úr jafnvægisrásinni.
  • Við munum líka skoða efnið Circuit Breaker frá fyrstu færslunni til að sjá hvernig hægt er að nota Istio hér. Við munum sýna þér hvernig á að beina umferð og meðhöndla netvillur með því að nota YAML stillingarskrár og flugstöðvarskipanir án minnstu breytinga á þjónustukóðanum.

Þriðji hluti:

  • Saga um rakningu og eftirlit, sem eru þegar innbyggð eða auðveldlega bætt við Istio. Við munum sýna þér hvernig á að nota verkfæri eins og Prometheus, Jaeger og Grafana ásamt OpenShift mælikvarða til að stjórna örþjónustuarkitektúrum áreynslulaust.
  • Við förum frá því að fylgjast með og meðhöndla villur yfir í að koma þeim viljandi inn í kerfið. Með öðrum orðum, við lærum hvernig á að gera bilanasprautun án þess að breyta frumkóðanum, sem er mjög mikilvægt frá prófunarsjónarmiði - þar sem ef þú breytir kóðanum sjálfum fyrir þetta er hætta á að fleiri villur komi inn.

Að lokum, í lokafærslunni á Istio Service Mesh:

  • Förum á Dark Side. Nánar tiltekið munum við læra að nota Dark Launch kerfið, þegar kóðinn er notaður og prófaður beint á framleiðslugögnum, en hefur ekki áhrif á rekstur kerfisins á nokkurn hátt. Þetta er þar sem geta Istio til að skipta umferð kemur sér vel. Og hæfileikinn til að prófa á lifandi framleiðslugögnum án þess að hafa áhrif á virkni bardagakerfisins á nokkurn hátt er sannfærandi sannprófunaraðferðin.
  • Byggt á Dark Launch, munum við sýna þér hvernig á að nota Canary Deployment líkanið til að draga úr áhættu og gera það auðveldara að koma nýjum kóða í framleiðslu. Canary Deployment sjálft er langt frá því að vera nýtt, en Istio gerir þér kleift að innleiða þetta kerfi með aðeins einföldum YAML skrám.
  • Að lokum munum við sýna þér hvernig á að nota Istio Egress til að veita aðgang að þjónustu til þeirra sem eru utan þyrpinga þinna til að nota möguleika Istio þegar unnið er með internetið.

Svo, hér við förum...

Istio eftirlits- og stjórnunarverkfæri - allt sem þú þarft til að skipuleggja örþjónustur í þjónustuneti þjónustunet.

Hvað er Istio Service Mesh

Þjónustunet útfærir aðgerðir eins og umferðareftirlit, aðgangsstýringu, uppgötvun, öryggi, bilanaþol og annað gagnlegt fyrir hóp þjónustu. Istio gerir þér kleift að gera allt þetta án minnstu breytinga á kóða þjónustunnar sjálfra. Hvert er leyndarmál galdra? Istio tengir sitt eigið umboð við hverja þjónustu í formi hliðarvagnsgáms (hliðarvagn er mótorhjólahliðarvagn), eftir það fer öll umferð að þessari þjónustu í gegnum umboðið, sem, með tilgreindum stefnum að leiðarljósi, ákveður hvernig, hvenær og hvort þessi umferð. ætti að ná þjónustunni yfirleitt. Istio gerir einnig mögulegt að innleiða háþróaða DevOps tækni eins og kanarídreifingu, aflrofa, bilanasprautun og margt fleira.

Hvernig Istio virkar með ílátum og Kubernetes

Istio þjónustunetið er hliðarvagnsútfærsla á öllu sem þarf til að búa til og stjórna örþjónustu: vöktun, rakningu, aflrofar, leið, álagsjafnvægi, bilanasprautun, endurtilraunir, tímamörk, speglun, aðgangsstýringu, hraðatakmörkun og margt fleira. Og þó að í dag séu fullt af bókasöfnum til að útfæra þessar aðgerðir beint í kóða, með Istio geturðu fengið alla sömu hlutina án þess að breyta neinu í kóðanum þínum.

Samkvæmt hliðarbílsgerðinni keyrir Istio í Linux gámi, sem er staðsettur í einum Kubernetes-pod með stýrðri þjónustu og sprautar inn og dregur út virkni og upplýsingar í samræmi við tiltekna uppsetningu. Við leggjum áherslu á að þetta sé þín eigin uppsetning og hún lifir utan kóðans þíns. Þess vegna verður kóðinn miklu einfaldari og styttri.

Það sem er líka mikilvægt er að rekstrarhluti örþjónustunnar reynist á engan hátt tengjast kóðanum sjálfum, sem þýðir að hægt er að flytja rekstur þeirra á öruggan hátt til upplýsingatæknisérfræðinga. Reyndar, hvers vegna ætti framkvæmdaraðilinn að bera ábyrgð á aflrofum og bilunarinnspýtingu? Bregðast við, já, en vinna úr þeim og búa til? Ef þú fjarlægir allt þetta úr kóðanum munu forritarar geta einbeitt sér að fullu að virkni forrita. Og kóðinn sjálfur verður styttri og einfaldari.

Þjónustunet

Istio, sem útfærir aðgerðir til að stjórna örþjónustum utan kóðans þeirra, er hugmyndin um þjónustunet. Með öðrum orðum, það er samræmdur hópur einnar eða fleiri tvöfalda sem mynda möskva af netaðgerðum.

Hvernig Istio vinnur með örþjónustum

Svona lítur verk hliðvagnagáma út samhliða Kubernetes и Smávakt fuglaskoðun: ræstu tilvik af Minishift, búðu til verkefni fyrir Istio (köllum það „istio-kerfi“), settu upp og keyrðu alla Istio-tengda íhluti. Síðan, þegar þú býrð til verkefni og belg, bætirðu stillingarupplýsingum við dreifingarnar þínar, og hólf þín byrja að nota Istio. Einföld skýringarmynd lítur svona út:

Röð færslur um Istio Service Mesh

Nú geturðu breytt Istio stillingum til að skipuleggja bilanasprautun, stuðning Kanaríútsetning eða aðra Istio eiginleika - og allt þetta án þess að snerta kóðann á forritunum sjálfum. Segjum að þú viljir beina allri vefumferð frá notendum stærsta viðskiptavinar þíns (Foo Corporation) yfir í nýja útgáfu af síðunni. Til að gera þetta skaltu einfaldlega búa til Istio leiðarreglu sem mun leita að @foocorporation.com í notandaauðkenninu og beina í samræmi við það. Fyrir alla aðra notendur mun ekkert breytast. Í millitíðinni muntu prófa nýju útgáfuna af síðunni í rólegheitum. Og athugaðu að þú þarft alls ekki að taka verktaki með í þessu.

Og verður þú að borga dýrt fyrir það?

Alls ekki. Istio er frekar hratt og er skrifað inn Go og skapar mjög lítið kostnaður. Að auki er hugsanlegt tap á framleiðni á netinu á móti aukinni framleiðni þróunaraðila. Að minnsta kosti í orði: ekki gleyma því að tími þróunaraðila er dýrmætur. Hvað hugbúnaðarkostnað varðar, þá er Istio opinn hugbúnaður, svo þú getur fengið og notað hann ókeypis.

Lærðu það sjálfur

Red Hat Developer Experience Team hefur þróað ítarlega handavinnu forystu eftir Istio (á ensku). Það keyrir á Linux, MacOS og Windows og kóðinn er fáanlegur í Java og Node.js.

10 gagnvirkar kennslustundir á Istio

Blokk 1 - Fyrir byrjendur

Kynning á Istio
30 mínútur
Við skulum kynnast Service Mesh, læra hvernig á að setja upp Istio í OpenShift Kubernetes klasa.
Að byrja

Innleiðir örþjónustur í Istio
30 mínútur
Við notum Istio til að dreifa þremur örþjónustum með Spring Boot og Vert.x.
Að byrja

Blokk 2 – miðstig

Vöktun og rakning í Istio
60 mínútur
Við munum kanna innbyggð eftirlitsverkfæri Istio, sérsniðnar mælingar og OpenTracing í gegnum Prometheus og Grafana.
Að byrja

Einföld leið í Istio
60 mínútur
Lærðu hvernig á að stjórna leið í Istio með einföldum reglum.
Að byrja

Ítarlegar leiðarreglur
60 mínútur
Við skulum kíkja á snjalla leið Istio, aðgangsstýringu, álagsjöfnun og taxtatakmörkun.
Að byrja

Blokk 3 – háþróaður notandi

Bilunarsprautun í Istio
60 mínútur
Við rannsökum atburðarás meðhöndlunar bilana í dreifðum forritum, búum til HTTP villur og nettafir og lærum að nota glundroðaverkfræði til að endurheimta umhverfið.
Að byrja

Hringrás í Istio
30 mínútur
Við setjum upp Siege fyrir álagsprófunarsvæði og lærum hvernig á að tryggja bilanaþol bakenda með því að nota endursýningar, aflrofa og útkast úr lauginni.
Að byrja

Egress og Istio
10 mínútur
Við notum Egress leiðir til að búa til reglur um samskipti innri þjónustu við ytri API og þjónustu.
Að byrja

Istio og Kiali
15 mínútur
Lærðu að nota Kiali til að fá yfirsýn yfir þjónustunetið og kanna beiðnir og gagnaflæði.
Að byrja

Gagnkvæm TLS í Istio
15 mínútur
Við búum til Istio Gateway og VirtualService, síðan lærum við gagnkvæm TLS (mTLS) og stillingar þess í smáatriðum.
Að byrja

Block 3.1 - Deep Dive: Istio Service Mesh for Microservices

Röð færslur um Istio Service Mesh
Um hvað fjallar bókin:

  • Hvað er þjónustunet?
  • Istio kerfið og hlutverk þess í örþjónustuarkitektúr.
  • Notkun Istio til að leysa eftirfarandi vandamál:
    • Bilanaþol;
    • Leiðsögn;
    • Óreiðuprófun;
    • Öryggi;
    • Söfnun fjarmælinga með því að nota spor, mælikvarða og Grafana.

Til að sækja bók

Greinaröð um þjónustumöskva og Istio

Prófaðu það sjálfur

Þessari færsluröð er ekki ætlað að veita djúpa dýfu inn í heim Istio. Við viljum bara kynna fyrir þér hugmyndina og kannski hvetja þig til að prófa Istio sjálfur. Það er algjörlega ókeypis að gera og Red Hat býður upp á öll þau verkfæri sem þú þarft til að byrja með OpenShift, Kubernetes, Linux gáma og Istio, þar á meðal: Red Hat þróunaraðili OpenShift Container Platform, leiðarvísir okkar til Istio og önnur úrræði á okkar örsíða á Service Mesh. Ekki tefja, byrjaðu í dag!

Istio leiðarreglur: beina þjónustubeiðnum þangað sem þær þurfa að fara

opnunarvakt и Kubernetes gera frábært starf við að takast á við örþjónustur flutt til nauðsynlegra belg. Þetta er ein af ástæðunum fyrir tilvist Kubernetes - vegvísun og álagsjafnvægi. En hvað ef þú þarft fíngerðari og flóknari leið? Til dæmis að nota tvær útgáfur af örþjónustu samtímis. Hvernig geta Istio leiðarreglur hjálpað hér?

Leiðarreglur eru þær reglur sem í raun ákveða val á leið. Burtséð frá hversu flókið kerfið er, er almenna starfsreglan þessara reglna einföld: beiðnir eru sendar út frá ákveðnum breytum og HTTP hausgildum.
Við skulum skoða dæmi:

Kubernetes sjálfgefið: léttvægt "50/50"

Í dæminu okkar munum við sýna hvernig á að nota samtímis tvær útgáfur af örþjónustu í OpenShift, við skulum kalla þær v1 og v2. Hver útgáfa keyrir í sínum eigin Kubernetes hólf og sjálfgefið keyrir hún jafnt jafnvægi á hringrásarleið. Hver fræbelgur fær sinn hlut af beiðnum byggt á fjölda örþjónustutilvika, með öðrum orðum, eftirlíkingum. Istio gerir þér kleift að breyta þessari stöðu handvirkt.

Segjum að við höfum notað tvær útgáfur af meðmælaþjónustu okkar á OpenShift, meðmæli-v1 og meðmæli-v2.
Í mynd. Mynd 1 sýnir að þegar hver þjónusta er táknuð í einu tilviki skiptast beiðnir jafnt á milli þeirra: 1-2-1-2-... Svona virkar Kubernetes leiðin sjálfgefið:

Röð færslur um Istio Service Mesh

Vegin dreifing milli útgáfur

Í mynd. Mynd 2 sýnir hvað gerist ef þú fjölgar v2 þjónustu eftirlíkingum úr einum í tvær (þetta er gert með oc kvarðanum — replicas=2 deployment/recommendation-v2 skipun). Eins og þú sérð er beiðnum á milli v1 og v2 nú skipt í hlutfalli eins til þriggja: 1-2-2-1-2-2-...:

Röð færslur um Istio Service Mesh

Hunsa útgáfu með Istio

Istio gerir það auðvelt að breyta dreifingu beiðna á þann hátt sem við þurfum. Sendu til dæmis alla umferð aðeins til meðmæli-v1 með því að nota eftirfarandi Istio yaml skrá:

Röð færslur um Istio Service Mesh

Hér þarftu að huga að þessu: fræbelgir eru valdir í samræmi við merkimiðana. Dæmið okkar notar merki v1. „þyngd: 100“ færibreytan þýðir að 100% af umferðinni verður beint til allra þjónustubelgja sem hafa v1 merkimiðann.

Tilskipunardreifing milli útgáfur (Canary Deployment)

Næst, með því að nota þyngdarbreytuna, geturðu beint umferð til beggja belganna, hunsað fjölda örþjónustutilvika sem keyra í hverju þeirra. Til dæmis, hér beinum við 90% af umferð til v1 og 10% til v2:

Röð færslur um Istio Service Mesh

Aðskilin leið fyrir farsímanotendur

Að lokum munum við sýna hvernig á að þvinga umferð notenda til að beina til þjónustu v2 og alla aðra í v1. Til að gera þetta notum við reglubundnar tjáningar til að greina notanda-umboðsgildið í beiðnihausnum:

Röð færslur um Istio Service Mesh

Núna er röðin komin að þér

Dæmið með reglulegum segðum fyrir þáttun hausa ætti að hvetja þig til að finna þína eigin notkun á Istio leiðarreglum. Þar að auki eru möguleikarnir hér nokkuð miklir þar sem hausgildi geta myndast í frumkóða forritsins.

Og mundu að Ops, ekki Dev

Allt sem við sýndum í dæmunum hér að ofan er gert án minnstu breytinga á frumkóðanum, ja, nema í þeim tilvikum þegar nauðsynlegt er að búa til sérstaka beiðnihausa. Istio mun nýtast bæði þróunaraðilum, sem munu til dæmis geta notað það á prófunarstigi, og sérfræðingum í rekstri upplýsingatæknikerfa, sem það mun hjálpa mjög við framleiðsluna.

Svo við skulum endurtaka leiðarstef þessarar færsluröðar: þú þarft ekki að breyta neinu í kóðanum þínum. Það er engin þörf á að smíða nýjar myndir eða setja nýja ílát. Allt þetta er útfært utan kóðans.

Notaðu ímyndunaraflið

Ímyndaðu þér bara möguleikana á hausagreiningu með því að nota reglulegar segðir. Langar þig að beina stærsta viðskiptavininum þínum í sérstaka útgáfu af þínum örþjónustur? Auðveldlega! Þarftu sérstaka útgáfu fyrir Chrome vafrann? Ekkert mál! Þú getur beint umferð í samræmi við nánast hvaða eiginleika sem er.

Prófaðu það sjálfur

Að lesa um Istio, Kubernetes og OpenShift er eitt, en hvers vegna ekki að snerta allt sjálfur? Lið Red Hat þróunaráætlun hefur útbúið ítarlegan leiðbeiningar (á ensku) sem mun hjálpa þér að ná tökum á þessari tækni eins fljótt og auðið er. Handbókin er einnig 100% opinn uppspretta, þannig að hún er birt á almenningi. Skráin virkar á macOS, Linux og Windows og frumkóði er fáanlegur í Java og node.js útgáfum (útgáfur á öðrum tungumálum væntanlegar). Opnaðu bara samsvarandi git geymslu í vafranum þínum Red Hat Developer Demo.

Í næstu færslu: Við vinnum fallega úr vandamálum

Í dag sástu hvað Istio leiðarreglur geta gert. Ímyndaðu þér það sama, en aðeins í tengslum við villumeðferð. Þetta er nákvæmlega það sem við munum tala um í næstu færslu.

Heimild: www.habr.com

Bæta við athugasemd