Rêzikek ji postên li ser Istio Service Mesh

Dema ku bi Red Hat OpenShift û Kubernetes re têne hev kirin, em dest bi rêzek postan dikin ku hin ji gelek kapasîteyên Mesh Karûbarê Istio destnîşan dikin.

Rêzikek ji postên li ser Istio Service Mesh

Beşa yekê, îro:

  • Ka em têgeha konteynerên kêlekê yên Kubernetes rave bikin û leîtmotîfa vê rêze posteyan formule bikin: "Hûn ne hewce ne ku di koda xwe de tiştek biguherînin".
  • Ka em tişta bingehîn a Istio - qaîdeyên rêvekirinê destnîşan bikin. Hemî taybetmendiyên din ên Istio li ser wan têne çêkirin, ji ber ku ew qaîdeyên ku dihêle hûn seyrûseferê berbi mîkroxizmetan vebikin, pelên YAML yên derveyî koda karûbarê bikar bînin. Em di heman demê de nexşeya bicîhkirina Kanarya jî dinirxînin. Bonûsa Sersalê - 10 dersên înteraktîf li ser Istio


Beşa duyemîn, di demek nêzîk de, dê ji we re vebêje:

  • Çawa Istio Pool Ejection bi hev re bi Circuit Breaker re bicîh tîne û dê nîşan bide ka Istio çawa dihêle hûn podek mirî an bi performansa kêm ji çerxa hevsengiyê derxînin.
  • Em ê ji posta yekem ve jî li mijara Circuit Breaker binêrin da ku bibînin ka Istio çawa dikare li vir were bikar anîn. Em ê nîşanî we bidin ka meriv çawa bi karanîna pelên veavakirina YAML û fermanên termînalê bêyî ku di koda karûbarê de guheztinek piçûktir bike, xeletiyên torê rêve bibe û rêve bibe.

Beşa sêyem:

  • Çîrokek li ser şopandin û şopandinê, ku jixwe hatî çêkirin an bi hêsanî li Istio hatî zêdekirin. Em ê nîşanî we bidin ka meriv çawa amûrên mîna Prometheus, Jaeger, û Grafana bi hev re bi pîvana OpenShift-ê re bikar tîne da ku mîmarên mîkroxizmetê bi hêsanî birêve bibe.
  • Em ji şopandin û birêvebirina xeletiyan berbi danasîna wan di pergalê de bi mebest diçin. Bi gotinek din, em fêr dibin ka meriv çawa derzîlêdana xeletiyê bêyî guheztina koda çavkaniyê, ku ji hêla ceribandinê ve pir girîng e - ji ber ku heke hûn kodê bixwe ji bo vê yekê biguhezînin, xetera danasîna xeletiyên zêde heye.

Di dawiyê de, di posta paşîn de li ser Istio Service Mesh:

  • Werin em herin Aliyê Tarî. Zêdetir, em ê fêr bibin ku nexşeya Destpêka Dark bikar bînin, dema ku kod rasterast li ser daneyên hilberînê tête danîn û ceribandin, lê bi tu awayî bandorê li xebata pergalê nake. Li vir kapasîteya Istio ya dabeşkirina seyrûseferê bi kêr tê. Û şiyana ceribandina li ser daneyên hilberîna zindî bêyî ku bi ti awayî bandorê li operasyona pergala şer bike, rêbaza verastkirinê ya herî pêbawer e.
  • Li ser Destpêkirina Dark ava dibe, em ê nîşanî we bidin ka meriv çawa modela Dabeşkirina Canary bikar tîne da ku xetereyê kêm bike û hêsantir bike ku koda nû têxe hilberînê. Danasîna Canary bixwe ji nû ve dûr e, lê Istio dihêle hûn vê nexşeyê tenê bi pelên YAML yên hêsan bicîh bikin.
  • Di dawiyê de, em ê nîşanî we bidin ka meriv çawa Istio Egress bikar tîne da ku bigihîje karûbaran ji bo kesên ku li derveyî komên we ne da ku dema ku bi Înternetê re dixebitin kapasîteyên Istio bikar bînin.

Ji ber vê yekê, em herin ...

Amûrên çavdêrîkirin û rêvebirinê Istio - her tiştê ku hûn hewce ne ku mîkroxizmetên di tevnek karûbarê de saz bikin tevna xizmetê.

Istio Service Mesh çi ye

Meshek karûbar fonksiyonên wekî çavdêriya trafîkê, kontrolkirina gihîştinê, vedîtin, ewlehî, tolerasyona xeletiyê û tiştên din ên kêrhatî ji bo komek karûbar pêk tîne. Istio dihêle hûn van hemîyan bêyî guheztinên piçûktir di koda karûbaran de bixwe bikin. Sira sêrbaziyê çi ye? Istio di forma konteynirek kêlekê de bi her karûbarekê re proxyek xwe ve girêdide (sidecar seyrûseferek motorsîkletê ye), piştî ku hemî seyrûsefera vê karûbarê di nav proxy re derbas dibe, ya ku, bi rêberiya polîtîkayên diyarkirî, biryar dide ka ev seyrûsefer çawa, kengê û gelo divê bigihêje xizmeta hemû. Istio di heman demê de pêkanîna teknolojiyên pêşkeftî yên DevOps-ê yên wekî bicihkirina canary, şkestinên çerxerê, derzîlêdana xeletiyê û gelekên din jî gengaz dike.

Çawa Istio bi konteyneran û Kubernetes re dixebite

Tevna karûbarê Istio cîbicîkirina her tiştê ku ji bo afirandina û rêvebirina mîkroservisan hewce dike ye: şopandin, şopandin, şkestin, rêkirin, hevsengkirina barkirinê, derzîlêdana xeletiyê, ji nû ve ceribandin, demdirêjî, neynikê, kontrola gihîştinê, sînorkirina rêjeyê û hêj bêtir. Her çend îro tonek pirtûkxane hene ku van fonksiyonan rasterast di kodê de bicîh bikin, bi Istio hûn dikarin hemî heman tiştan bistînin bêyî ku tiştek di koda xwe de biguhezînin.

Li gorî modela sidecar, Istio di konteynerek Linux-ê de, ku di yek de ye, dimeşe Kubernetes-pod bi karûbarek kontrolkirî ve û li gorî veavakirina hatî dayîn fonksiyon û agahdariyan derzî û derdixe. Em tekez dikin ku ev veavakirina we bixwe ye, û ew li derveyî koda we dijî. Ji ber vê yekê, kod pir hêsan û kurttir dibe.

Di heman demê de ya girîng ev e ku hêmana xebitandinê ya mîkroxizmetan bi tu awayî bi kodê re têkildar nabe, ku tê vê wateyê ku operasyona wan dikare bi ewlehî ji pisporên IT re were veguheztin. Bi rastî, çima pêdivî ye ku pêşdebir berpirsiyarê şkestin û derzîlêdana xeletiyê be? Reaksiyonê bikin, erê, lê wan pêvajoyê bikin û wan biafirînin? Ger hûn van hemî ji kodê derxînin, bernamenûs dê karibin bi tevahî li ser fonksiyona serîlêdanê bisekinin. Û kod bi xwe dê kurttir û sadetir bibe.

Mesh xizmetê

Istio, ku fonksiyonên ji bo birêvebirina mîkroxizmetên li derveyî koda wan bicîh tîne, têgeha Meshek Karûbarê ye. Bi gotineke din, ew komek hevrêz e ku ji yek an çend binaryan pêk tê ku tevnek fonksiyonên torê pêk tîne.

Çawa Istio bi microservices re dixebite

Ya ku karê konteynerên kêlekê bi hev re xuya dike ev e Kubernetes и Minishift Dîtina çavê çûkan: mînakek Minishift bidin destpêkirin, ji bo Istio projeyek biafirînin (ka em jê re bibêjin "istio-pergal"), hemî pêkhateyên girêdayî Istio saz bikin û bimeşînin. Dûv re, gava ku hûn proje û podokan diafirînin, hûn agahdariya vesazkirinê li cîhên xwe zêde dikin, û podên we dest bi karanîna Istio dikin. Diagramek hêsankirî wiha xuya dike:

Rêzikek ji postên li ser Istio Service Mesh

Naha hûn dikarin mîhengên Istio biguhezînin da ku, mînakî, organîzekirina derzîlêdana xeletiyê, piştgirî Bicihkirina Kanarya an taybetmendiyên din ên Istio - û ev hemî bêyî ku dest bi koda serîlêdanan bixwe bikin. Ka em bibêjin ku hûn dixwazin hemî seyrûsefera malperê ji bikarhênerên muwekîlê xweya herî mezin (Foo Corporation) berbi guhertoyek nû ya malperê vegerînin. Ji bo kirina vê, bi tenê qaîdeyek rêveçûna Istio biafirîne ku dê di nasnameya bikarhêner de li @foocorporation.com bigere û li gorî wê beralî bike. Ji bo hemî bikarhênerên din, tiştek nayê guhertin. Di vê navberê de, hûn ê bi aramî guhertoya nû ya malperê biceribînin. Û not bikin, hûn ne hewce ne ku ji bo vê yekê ji bo pêşdebiran tevlê bibin.

Û hûn ê neçar in ku ji bo wê giran bidin?

Qet. Istio pir zû ye û tê nivîsandin Go û serê xwe pir hindik diafirîne. Digel vê yekê, windabûna gengaz a di hilberîna serhêl de ji hêla zêdebûna hilberîna pêşdebir ve tê derxistin. Bi kêmanî di teoriyê de: ji bîr nekin ku dema pêşdebiran hêja ye. Ji bo lêçûnên nermalavê, Istio nermalava çavkaniya vekirî ye, ji ber vê yekê hûn dikarin wê belaş bistînin û bikar bînin.

Mamoste ew bixwe

Tîma Ezmûna Pêşdebir a Red Hat destekek kûr pêşxistiye birêvebirî ji aliyê Istio (bi Îngilîzî). Ew li Linux, MacOS û Windows-ê dixebite, û kod di Java û Node.js de heye.

10 dersên înteraktîf li ser Istio

Block 1 - Ji bo Destpêk

Nasîna Îstio
Minutes 30
Werin em bi Karûbarê Mesh re nas bikin, fêr bibin ka meriv çawa Istio di komek OpenShift Kubernetes de saz dike.
Ji bo destpêkê

Bicihkirina mîkroxizmetên li Istio
Minutes 30
Em Istio bikar tînin da ku bi Spring Boot û Vert.x re sê mîkroservisan bicîh bikin.
Ji bo destpêkê

Block 2 - asta navîn

Şopandin û şopandin li Îstio
Minutes 60
Em ê bi Prometheus û Grafana ve amûrên çavdêriyê yên çêkirî yên Istio, metrîkên xwerû, û OpenTracing bigerin.
Ji bo destpêkê

Rêwîtiya hêsan li Istio
Minutes 60
Fêr bibin ka meriv çawa rêvekirinê li Istio bi karanîna qaîdeyên hêsan birêve dibe.
Ji bo destpêkê

qaîdeyên rêveçûna pêşketî
Minutes 60
Werin em nihêrînek li rêveçûna biaqil a Istio, kontrolkirina gihîştinê, hevsengkirina barkirinê û sînorkirina rêjeyê bidin.
Ji bo destpêkê

Block 3 - bikarhênerek pêşkeftî

Injection Fault li Istio
Minutes 60
Em senaryoyên hilgirtina têkçûnê di serîlêdanên belavbûyî de dixwînin, xeletiyên HTTP û derengiyên torê diafirînin, û fêr dibin ku endezyariya kaosê bikar bînin da ku jîngehê sererast bikin.
Ji bo destpêkê

Circuit Breaker li Istio
Minutes 30
Em Siege ji bo malperên ceribandina stresê saz dikin û fêr dibin ka meriv çawa tolerasyona xeletiya paşîn bi karanîna dubarekirin, şikestin û derxistina hewzê piştrast dike.
Ji bo destpêkê

Egress û Îstio
Minutes 10
Em rêyên Egress bikar tînin da ku rêgezên ji bo danûstendina karûbarên hundurîn bi API û karûbarên derveyî re biafirînin.
Ji bo destpêkê

Îstio û Kialî
Minutes 15
Fêr bibin ku Kiali bikar bînin da ku nêrînek tevna karûbarê bistînin û daxwaz û herikîna daneyan bigerin.
Ji bo destpêkê

TLS hevbeş li Istio
Minutes 15
Em Istio Gateway û VirtualService diafirînin, dûv re em TLS (mTLS) û mîhengên wê bi hûrgulî dixwînin.
Ji bo destpêkê

Block 3.1 - Deep Dive: Ji bo Microservices Mesh Karûbarê Istio

Rêzikek ji postên li ser Istio Service Mesh
Pirtûk li ser çi ye:

  • Mesh xizmetê çi ye?
  • Pergala Istio û rola wê di mîmariya mîkroxizmetê de.
  • Bikaranîna Istio ji bo çareserkirina pirsgirêkên jêrîn:
    • Fault tolerance;
    • Routing;
    • Testkirina kaosê;
    • Ewlehî;
    • Komkirina Telemetry bi karanîna şop, metrîk û Grafana.

Pirtûkek dakêşin

Rêze gotarên li ser mêşên karûbarê û Istio

Xwe biceribînin

Ev rêze postan ne mebest e ku di cîhana Istio de kûrahiyek kûr peyda bike. Em tenê dixwazin têgehê we bidin nasîn û dibe ku we teşwîq bike ku hûn ji xwe re Istio biceribînin. Kirinê bi tevahî belaş e, û Red Hat hemî amûrên ku hûn hewce ne ku hûn bi OpenShift, Kubernetes, konteynerên Linux, û Istio dest pê bikin peyda dike, di nav de: Platforma Pêşkêşkera Red Hat OpenShift Konteyner, rêberê me Îstio û çavkaniyên din ên li ser me mîkro-malpera li ser Service Mesh. Dereng nemînin, îro dest pê bikin!

Rêgezên rêveçûna Istio: rêvekirina daxwazên karûbarê ku ew hewce ne ku biçin

openshift и Kubernetes karekî hêja yê navnîşan bikin microservices ber bi pêlên pêwîst ve hatî rêkirin. Ev yek ji sedemên hebûna Kubernetes - rêvekirin û hevsengkirina barkirinê ye. Lê heke hûn hewceyê rêwîtiyek naziktir û sofîstîke bin çi bikin? Mînakî, du guhertoyên mîkroxizmetê bi hevdemî bikar bînin. Meriv çawa rêgezên Istio Route dikare li vir alîkariyê bike?

Rêgezên rêwîtiyê ew qaîdeyên ku bi rastî bijartina rêyê diyar dikin. Bêyî asta tevliheviya pergalê, prensîba xebitandina gelemperî ya van qaîdeyan hêsan dimîne: daxwaz li ser hin pîvan û nirxên sernavê HTTP têne rêve kirin.
Ka em li mînakan binêrin:

Kubernetes standard: "50/50" piçûk

Di mînaka xwe de, em ê destnîşan bikin ka meriv çawa du guhertoyên mîkroxizmetek di OpenShift-ê de hevdem bikar tîne, em ji wan re v1 û v2 bi nav bikin. Her guhertoyek di Kubernetes-a xweya pod de dimeşe, û ji hêla xwerû ve ew rêgezek dorhêl a hevseng dimeşîne. Her pod li gorî hejmarên mîkroxizmeta xwe, bi gotinek din, replica, para xwe ya daxwazên xwe distîne. Istio dihêle hûn vê hevsengiyê bi destan biguhezînin.

Ka em bibêjin me du guhertoyên karûbarê pêşniyara xwe li ser OpenShift, pêşniyar-v1 û pêşniyar-v2 bi cih kir.
Di Fig. Xiflteya 1 nîşan dide ku dema ku her karûbar di yek nimûneyê de tê temsîl kirin, daxwazî ​​di navbera wan de wekhev cih digirin: 1-2-1-2-... Bi vî rengî rêveçûna Kubernetes ji hêla xwerû ve dixebite:

Rêzikek ji postên li ser Istio Service Mesh

Dabeşkirina giran di navbera guhertoyan de

Di Fig. Xiflteya 2 nîşan dide ka çi diqewime ger hûn hejmara kopiyên karûbarê v2 ji yekê berbi duyan zêde bikin (ev bi pîvana oc-replicas=2 veqetandin/pêşniyar-fermana v2 pêk tê). Wekî ku hûn dibînin, daxwazên di navbera v1 û v2 de naha di rêjeyek yek-sê de têne dabeş kirin: 1-2-2-1-2-2-…:

Rêzikek ji postên li ser Istio Service Mesh

Guhertoya ku Istio bikar tîne paşguh bike

Istio guhertina belavkirina daxwazan bi awayê ku em hewce dike hêsan dike. Mînakî, hemî seyrûsefera tenê ji pêşniyara-v1 re bi karanîna pelê yaml ya Istio ya jêrîn bişînin:

Rêzikek ji postên li ser Istio Service Mesh

Li vir hûn hewce ne ku bala xwe bidin vê: çîp li gorî etîketan têne hilbijartin. Mînaka me nîşana v1 bikar tîne. Parametreya "giran: 100" tê vê wateyê ku 100% seyrûseferê dê berbi hemî polên karûbarê ku xwedan etîketa v1 in ve were rêve kirin.

Dabeşkirina dîrektîfê di navbera guhertoyan de (Canary Deployment)

Dûv re, bi karanîna pîvana giraniyê, hûn dikarin seyrûseferê berbi her du potan ve bişopînin, jimara bûyerên mîkroxizmetê yên ku di her yek ji wan de têne xebitandin paşguh bikin. Mînakî, li vir em 90% seyrûseferê ber bi v1 û 10% ber bi v2 ve rêve dikin:

Rêzikek ji postên li ser Istio Service Mesh

Rêvekirina veqetandî ji bo bikarhênerên mobîl

Di encamê de, em ê destnîşan bikin ka meriv çawa zorê dide seyrûsefera bikarhênerê mobîl ku berbi karûbarê v2 ve were rêve kirin, û her kesê din jî ji v1 re were rêve kirin. Ji bo vê yekê, em îfadeyên birêkûpêk bikar tînin da ku nirxa bikarhêner-agent di sernavê daxwazê ​​de analîz bikin:

Rêzikek ji postên li ser Istio Service Mesh

Niha tu

Mînaka bi îfadeyên birêkûpêk ji bo parkirina sernivîsan divê we motîve bike ku hûn karanîna xwe yên qaîdeyên rêvekirina Istio bibînin. Wekî din, îmkanên li vir pir berfireh in, ji ber ku nirxên sernavê dikarin di koda çavkaniya serîlêdanê de bêne çêkirin.

Û ji bîr mekin ku Ops, ne Dev

Her tiştê ku me di mînakên li jor de destnîşan kir bêyî guheztinek piçûktir di koda çavkaniyê de tê kirin, baş e, ji bilî wan rewşan ku pêdivî ye ku sernavên daxwaziya taybetî çêbikin. Istio dê hem ji pêşdebiran re, yên ku, mînakî, dê karibin wê di qonaxa ceribandinê de bikar bînin, hem jî ji pisporên xebitandina pergalên IT-ê re bikêr be, ji bo ku ew ê di hilberînê de pir alîkar be.

Ji ber vê yekê em leîtmotîfa vê rêze nivîsan dubare bikin: hûn ne hewce ne ku di koda xwe de tiştek biguherînin. Ne hewce ye ku wêneyên nû ava bikin an konteynerên nû bidin destpêkirin. Ev hemî li derveyî kodê têne bicîh kirin.

Xeyalê xwe bikar bînin

Tenê îmkanên analîza sernavê bi karanîna bêjeyên rêkûpêk bifikirin. Dixwazin xerîdarên xwe yên herî mezin ber bi guhertoyek taybetî ya xwe ve vegerînin microservices? Bi hêsanî! Ji bo geroka Chrome guhertoyek cûda hewce ye? Bê pirsgirêkê! Hûn dikarin trafîkê li gorî hema hema her taybetmendiyê rêve bikin.

Xwe biceribînin

Xwendina li ser Istio, Kubernetes û OpenShift yek tişt e, lê çima hûn bi xwe dest nedin her tiştî? Kom Bernameya Pêşdebirê Red Hat rêbernameyek hûrgulî (bi îngilîzî) amade kiriye ku dê ji we re bibe alîkar ku hûn bi zûtirîn dem van teknolojiyên serdest bikin. Manual di heman demê de 100% çavkaniya vekirî ye, ji ber vê yekê ew di qada gelemperî de tê şandin. Pelê li ser macOS, Linux û Windows-ê dixebite, û koda çavkaniyê di guhertoyên Java û node.js de heye (guhertoyên bi zimanên din di demek nêzîk de). Tenê di geroka xwe de depoya git ya têkildar vekin Demo Developer Red Hat.

Di nivîsa paşîn de: em pirsgirêkan bi xweşikî kar dikin

Îro we dît ku qaîdeyên rêveçûna Istio dikarin çi bikin. Naha heman tiştî bifikire, lê tenê di derbarê birêvebirina xeletiyê de. Tiştê ku em ê di nivîsa paşîn de li ser biaxivin ev e.

Source: www.habr.com

Add a comment