A jara ti awọn ifiweranṣẹ lori Istio Service Mesh

A n bẹrẹ lẹsẹsẹ awọn ifiweranṣẹ ti n ṣafihan diẹ ninu awọn agbara pupọ ti Mesh Service Istio nigba ti o darapọ pẹlu Red Hat OpenShift ati Kubernetes.

A jara ti awọn ifiweranṣẹ lori Istio Service Mesh

Apa kini, loni:

  • Jẹ ki a ṣe alaye imọran ti awọn apoti ẹgbẹ ẹgbẹ Kubernetes ati ṣe agbekalẹ leitmotif ti jara ti awọn ifiweranṣẹ yii: "O ko nilo lati yi ohunkohun pada ninu koodu rẹ".
  • Jẹ ki a ṣafihan nkan pataki ti Istio - awọn ofin ipa-ọna. Gbogbo awọn ẹya Istio miiran ni a kọ sori wọn, nitori o jẹ awọn ofin ti o gba ọ laaye lati ṣe itọsọna ijabọ si awọn iṣẹ microservices, lilo awọn faili YAML ita si koodu iṣẹ naa. A tun n gbero ero imuṣiṣẹ imuṣiṣẹ Canary. Ajeseku Ọdun Tuntun - Awọn ẹkọ ibanisọrọ 10 lori Istio


Apa keji, nbọ laipẹ, yoo sọ fun ọ:

  • Bawo ni Istio ṣe n ṣe imuse Pool ejection ni apapo pẹlu Circuit Breaker ati pe yoo ṣe afihan bii Istio ṣe gba ọ laaye lati yọ adarọ-ese ti o ku tabi ti ko ṣiṣẹ daradara kuro ninu iyika iwọntunwọnsi.
  • A yoo tun wo koko-ọrọ Circuit Breaker lati ifiweranṣẹ akọkọ lati rii bii o ṣe le lo Istio nibi. A yoo fi ọ han bi o ṣe le ṣe ipa ọna ati mu awọn aṣiṣe nẹtiwọọki mu ni lilo awọn faili iṣeto YAML ati awọn aṣẹ ebute laisi awọn ayipada diẹ ninu koodu iṣẹ naa.

Apa mẹta:

  • Itan kan nipa wiwa kakiri ati ibojuwo, eyiti a ṣe sinu tẹlẹ tabi ni irọrun ṣafikun si Istio. A yoo fi ọ han bi o ṣe le lo awọn irinṣẹ bii Prometheus, Jaeger, ati Grafana ni apapo pẹlu OpenShift igbelosoke lati ṣakoso lainidi lati ṣakoso awọn faaji microservice.
  • A gbe lati ibojuwo ati mimu awọn aṣiṣe lati ṣafihan wọn sinu eto imomose. Ni awọn ọrọ miiran, a kọ bi a ṣe le ṣe abẹrẹ aṣiṣe laisi yiyipada koodu orisun, eyiti o ṣe pataki pupọ lati oju wiwo idanwo - nitori ti o ba yi koodu naa funrararẹ fun eyi, eewu wa lati ṣafihan awọn aṣiṣe afikun.

Ni ipari, ni ifiweranṣẹ ikẹhin lori Mesh Iṣẹ Istio:

  • E je ka lo si Okunkun. Ni deede diẹ sii, a yoo kọ ẹkọ lati lo ero Ifilọlẹ Dudu, nigbati koodu ti gbejade ati idanwo taara lori data iṣelọpọ, ṣugbọn ko ni ipa lori iṣẹ ti eto naa ni eyikeyi ọna. Eyi ni ibi ti agbara Istio lati pin ijabọ wa ni ọwọ. Ati agbara lati ṣe idanwo lori data iṣelọpọ laaye laisi ni ipa lori iṣẹ ti eto ija ni eyikeyi ọna jẹ ọna idaniloju julọ ti ijerisi.
  • Ilé lori Ifilọlẹ Dudu, a yoo fihan ọ bi o ṣe le lo awoṣe Imuṣiṣẹ Canary lati dinku eewu ati jẹ ki o rọrun lati gba koodu tuntun sinu iṣelọpọ. Ifilọlẹ Canary funrararẹ jinna si tuntun, ṣugbọn Istio gba ọ laaye lati ṣe imuse ero yii pẹlu awọn faili YAML ti o rọrun.
  • Ni ipari, a yoo fihan ọ bi o ṣe le lo Istio Egress lati fun ni iraye si awọn iṣẹ si awọn ti o wa ni ita awọn iṣupọ rẹ lati le lo awọn agbara ti Istio nigbati o n ṣiṣẹ pẹlu Intanẹẹti.

Nitorina, nibi a lọ ...

Istio ibojuwo ati awọn irinṣẹ iṣakoso – ohun gbogbo ti o nilo lati ṣe orchestrate microservices ni apapo iṣẹ kan apapo iṣẹ.

Ohun ti o jẹ Istio Service Mesh

Asopọmọra iṣẹ kan n ṣe awọn iṣẹ bii ibojuwo ijabọ, iṣakoso wiwọle, wiwa, aabo, ifarada ẹbi ati awọn nkan iwulo miiran fun ẹgbẹ awọn iṣẹ kan. Istio gba ọ laaye lati ṣe gbogbo eyi laisi awọn ayipada diẹ si koodu ti awọn iṣẹ funrararẹ. Kini asiri idan? Istio so aṣoju ti ara rẹ si iṣẹ kọọkan ni irisi eiyan sidecar (sidecar jẹ ọkọ ayọkẹlẹ alupupu), lẹhin eyi gbogbo awọn ijabọ si iṣẹ yii lọ nipasẹ aṣoju, eyiti, ni itọsọna nipasẹ awọn eto imulo pato, pinnu bii, nigbawo ati boya ijabọ yii yẹ ki o de ọdọ iṣẹ naa rara. Istio tun jẹ ki o ṣee ṣe lati ṣe imuse awọn imuposi DevOps ti ilọsiwaju gẹgẹbi awọn imuṣiṣẹ canary, awọn fifọ Circuit, abẹrẹ aṣiṣe ati ọpọlọpọ awọn miiran.

Bawo ni Istio ṣiṣẹ pẹlu awọn apoti ati Kubernetes

Mesh iṣẹ Istio jẹ imuse ọkọ ayọkẹlẹ ti ohun gbogbo ti o nilo lati ṣẹda ati ṣakoso awọn iṣẹ microservices: ibojuwo, wiwapa, awọn fifọ Circuit, ipa-ọna, iwọntunwọnsi fifuye, abẹrẹ aṣiṣe, awọn atunwi, awọn akoko ipari, digi, iṣakoso iwọle, opin oṣuwọn ati pupọ diẹ sii. Ati pe botilẹjẹpe loni pupọ ti awọn ile-ikawe wa lati ṣe awọn iṣẹ wọnyi taara ni koodu, pẹlu Istio o le gba gbogbo awọn nkan kanna laisi iyipada ohunkohun ninu koodu rẹ.

Gẹgẹbi awoṣe sidecar, Istio nṣiṣẹ ninu eiyan Linux kan, eyiti o wa ninu ọkan Kubernetes-podu pẹlu iṣẹ iṣakoso ati awọn abẹrẹ ati awọn iṣẹ jade ati alaye ni ibamu si iṣeto ti a fun. A tenumo wipe yi ni ara rẹ iṣeto ni, ati awọn ti o ngbe ni ita ti koodu rẹ. Nitorinaa, koodu naa di irọrun pupọ ati kukuru.

Ohun ti o tun ṣe pataki ni pe paati iṣiṣẹ ti awọn microservices wa ni ọna ti ko ni asopọ pẹlu koodu funrararẹ, eyiti o tumọ si pe iṣẹ wọn le gbe lailewu si awọn alamọja IT. Nitootọ, kilode ti olupilẹṣẹ yoo jẹ iduro fun awọn fifọ iyika ati abẹrẹ ẹbi? Fesi, bẹẹni, ṣugbọn ṣe ilana wọn ki o ṣẹda wọn? Ti o ba yọ gbogbo eyi kuro ninu koodu naa, awọn pirogirama yoo ni anfani lati dojukọ ni kikun lori iṣẹ ṣiṣe ohun elo. Ati koodu funrararẹ yoo di kukuru ati rọrun.

Apapo iṣẹ

Istio, eyiti o ṣe awọn iṣẹ ṣiṣe fun iṣakoso awọn iṣẹ microservices ni ita koodu wọn, jẹ imọran ti Mesh Iṣẹ kan. Ni awọn ọrọ miiran, o jẹ ẹgbẹ iṣọpọ ti ọkan tabi diẹ ẹ sii awọn alakomeji ti o ṣe agbekalẹ apapo awọn iṣẹ nẹtiwọọki kan.

Bawo ni Istio ṣiṣẹ pẹlu awọn microservices

Eyi ni ohun ti iṣẹ ti awọn apoti ẹgbẹ ẹgbẹ dabi ni apapo pẹlu Kubernetes и Minishift wiwo oju eye: ṣe ifilọlẹ apẹẹrẹ ti Minishift, ṣẹda iṣẹ akanṣe kan fun Istio (jẹ ki a pe ni “eto-istio”), fi sori ẹrọ ati ṣiṣe gbogbo awọn paati ti o jọmọ Istio. Lẹhinna, bi o ṣe ṣẹda awọn iṣẹ akanṣe ati awọn adarọ-ese, o ṣafikun alaye atunto si awọn imuṣiṣẹ rẹ, ati awọn adarọ-ese rẹ bẹrẹ lilo Istio. Aworan ti o rọrun kan dabi eyi:

A jara ti awọn ifiweranṣẹ lori Istio Service Mesh

Bayi o le yi awọn eto Istio pada ni ibere, fun apẹẹrẹ, lati ṣeto abẹrẹ ẹbi, atilẹyin Canary imuṣiṣẹ tabi awọn ẹya Istio miiran - ati gbogbo eyi laisi fọwọkan koodu ti awọn ohun elo funrararẹ. Jẹ ki a sọ pe o fẹ lati darí gbogbo ijabọ wẹẹbu lati ọdọ awọn olumulo ti alabara ti o tobi julọ (Foo Corporation) si ẹya tuntun ti aaye naa. Lati ṣe eyi, nirọrun ṣẹda ofin ipa-ọna Istio kan ti yoo wa @foocorporation.com ninu ID olumulo ki o tun-dari ni ibamu. Fun gbogbo awọn olumulo miiran, ko si ohun ti yoo yipada. Lakoko, iwọ yoo farabalẹ ṣe idanwo ẹya tuntun ti aaye naa. Ati ṣe akiyesi pe o ko nilo lati kan awọn olupilẹṣẹ rara fun eyi.

Ati pe iwọ yoo ni lati sanwo pupọ fun rẹ?

Rara. Istio jẹ iyara pupọ ati pe a kọ sinu Go ati ki o ṣẹda gan kekere lori. Ni afikun, pipadanu ti o ṣeeṣe ni iṣelọpọ ori ayelujara jẹ aiṣedeede nipasẹ ilosoke ninu iṣelọpọ idagbasoke. O kere ju ni imọran: maṣe gbagbe pe akoko awọn olupilẹṣẹ jẹ niyelori. Bi fun awọn idiyele sọfitiwia, Istio jẹ sọfitiwia orisun ṣiṣi, nitorinaa o le gba ati lo fun ọfẹ.

Titunto si o funrararẹ

Ẹgbẹ Iriri Developer Hat Hat ti ni idagbasoke ọwọ-ijinle isakoso nipasẹ Istio (ni ede Gẹẹsi). O nṣiṣẹ lori Lainos, MacOS ati Windows, ati koodu ti o wa ni Java ati Node.js.

10 ibanisọrọ eko lori Istio

Àkọsílẹ 1 - Fun olubere

Ifihan to Istio
Awọn iṣẹju 30
Jẹ ki a faramọ pẹlu Mesh Iṣẹ, kọ ẹkọ bi o ṣe le fi Istio sori ẹrọ ni akojọpọ OpenShift Kubernetes kan.
Berè

Gbigbe awọn iṣẹ microservice ni Istio
Awọn iṣẹju 30
A lo Istio lati ran awọn iṣẹ microservices mẹta pẹlu Orisun omi Boot ati Vert.x.
Berè

Àkọsílẹ 2 - agbedemeji ipele

Abojuto ati wiwa ni Istio
Awọn iṣẹju 60
A yoo ṣawari awọn irinṣẹ ibojuwo ti Istio ti a ṣe sinu, awọn metiriki aṣa, ati OpenTracing nipasẹ Prometheus ati Grafana.
Berè

Rọrun afisona ni Istio
Awọn iṣẹju 60
Kọ ẹkọ bii o ṣe le ṣakoso ipa-ọna ni Istio ni lilo awọn ofin ti o rọrun.
Berè

Awọn ofin ipa-ọna ilọsiwaju
Awọn iṣẹju 60
Jẹ ki a wo ipa-ọna ọlọgbọn ti Istio, iṣakoso iwọle, iwọntunwọnsi fifuye ati aropin oṣuwọn.
Berè

Àkọsílẹ 3 - olumulo to ti ni ilọsiwaju

Abẹrẹ aṣiṣe ni Istio
Awọn iṣẹju 60
A ṣe iwadi awọn oju iṣẹlẹ mimu ikuna ni awọn ohun elo pinpin, ṣiṣẹda awọn aṣiṣe HTTP ati awọn idaduro nẹtiwọọki, ati kọ ẹkọ lati lo imọ-ẹrọ rudurudu lati mu agbegbe pada.
Berè

Circuit fifọ ni Istio
Awọn iṣẹju 30
A fi sori ẹrọ Siege fun awọn aaye idanwo wahala ati kọ ẹkọ bii o ṣe le rii daju ifarada ẹbi ẹhin nipa lilo awọn atunwi, fifọ iyika ati ijade adagun-odo.
Berè

Egress ati Istio
Awọn iṣẹju 10
A lo awọn ipa ọna Egress lati ṣẹda awọn ofin fun ibaraenisepo awọn iṣẹ inu pẹlu awọn API ati awọn iṣẹ ita.
Berè

Istio ati Kiali
Awọn iṣẹju 15
Kọ ẹkọ lati lo Kiali lati gba akopọ ti apapo iṣẹ ati ṣawari ibeere ati ṣiṣan data.
Berè

Ibaṣepọ TLS ni Istio
Awọn iṣẹju 15
A ṣẹda Istio Gateway ati VirtualService, lẹhinna a ṣe iwadi TLS (mTLS) ati awọn eto rẹ ni awọn alaye.
Berè

Àkọsílẹ 3.1 - Jin Dive: Istio Service Mesh fun Microservices

A jara ti awọn ifiweranṣẹ lori Istio Service Mesh
Kini iwe nipa:

  • Kini apapo iṣẹ kan?
  • Eto Istio ati ipa rẹ ninu faaji microservice.
  • Lilo Istio lati yanju awọn iṣoro wọnyi:
    • Ifarada aṣiṣe;
    • Ipa ọna;
    • Idanwo Idarudapọ;
    • Aabo;
    • Ikojọpọ telemetry ni lilo awọn itọpa, awọn metiriki ati Grafana.

Lati gba iwe lati ayelujara

Jara ti awọn nkan lori awọn meshes iṣẹ ati Istio

Gbiyanju o funrararẹ

Awọn jara ti awọn ifiweranṣẹ yii kii ṣe ipinnu lati pese besomi jin sinu agbaye ti Istio. A kan fẹ lati ṣafihan rẹ si imọran ati boya fun ọ ni iyanju lati gbiyanju Istio fun ararẹ. O jẹ ọfẹ ọfẹ lati ṣe, ati Red Hat pese gbogbo awọn irinṣẹ ti o nilo lati bẹrẹ pẹlu OpenShift, Kubernetes, awọn apoti Linux, ati Istio, pẹlu: Pupa Hat Olùgbéejáde OpenShift Apoti Platform, wa guide to Istio ati awọn ohun elo miiran lori wa microsite on Service Mesh. Maṣe ṣe idaduro, bẹrẹ loni!

Awọn ofin ipa-ọna Istio: awọn ibeere iṣẹ itọsọna ni ibiti wọn nilo lati lọ

Ṣiṣii Shift и Kubernetes ṣe iṣẹ ti o dara julọ lati koju microservices darí si awọn podu ti a beere. Eyi jẹ ọkan ninu awọn idi fun aye ti Kubernetes - ipa-ọna ati iwọntunwọnsi fifuye. Sugbon ohun ti o ba ti o ba nilo diẹ abele ati ki o fafa afisona? Fun apẹẹrẹ, lati lo awọn ẹya meji ti microservice nigbakanna. Bawo ni Awọn ofin ipa ọna Istio ṣe le ṣe iranlọwọ nibi?

Awọn ofin ipa ọna jẹ awọn ofin ti o pinnu gangan yiyan ti ipa-ọna. Laibikita ipele ti idiju eto, ilana iṣiṣẹ gbogbogbo ti awọn ofin wọnyi jẹ rọrun: awọn ibeere ti wa ni ipada lori awọn ayeraye kan ati awọn iye akọsori HTTP.
Jẹ ki a wo awọn apẹẹrẹ:

Kubernetes aiyipada: bintin "50/50"

Ninu apẹẹrẹ wa, a yoo ṣafihan bi o ṣe le lo awọn ẹya meji ti microservice ni igbakanna ni OpenShift, jẹ ki a pe wọn v1 ati v2. Ẹya kọọkan n ṣiṣẹ ni adarọ-ese Kubernetes tirẹ, ati nipasẹ aiyipada o nṣiṣẹ ni iwọntunwọnsi iwọntunwọnsi iyipo Robin. Podu kọọkan gba ipin ti awọn ibeere ti o da lori nọmba awọn iṣẹlẹ microservice rẹ, ni awọn ọrọ miiran, awọn ẹda. Istio gba ọ laaye lati yi iwọntunwọnsi yii pada pẹlu ọwọ.

Jẹ ki a sọ pe a ran awọn ẹya meji ti iṣẹ iṣeduro wa lori OpenShift, iṣeduro-v1 ati iṣeduro-v2.
Ninu Ọpọtọ. Nọmba 1 fihan pe nigbati iṣẹ kọọkan ba wa ni ipoduduro ni apẹẹrẹ kan, awọn ibeere miiran ni deede laarin wọn: 1-2-1-2-... Eyi ni bii ipa-ọna Kubernetes ṣe n ṣiṣẹ nipasẹ aiyipada:

A jara ti awọn ifiweranṣẹ lori Istio Service Mesh

Pipin iwuwo laarin awọn ẹya

Ninu Ọpọtọ. Nọmba 2 fihan ohun ti o ṣẹlẹ ti o ba pọ si nọmba awọn ẹda iṣẹ v2 lati ọkan si meji (eyi ni a ṣe pẹlu iwọn oc —replicas=2 imuṣiṣẹ/aṣẹ-v2 pipaṣẹ). Bi o ṣe le rii, awọn ibeere laarin v1 ati v2 ti pin si ni ipin ọkan-si-mẹta: 1-2-2-1-2-2-…:

A jara ti awọn ifiweranṣẹ lori Istio Service Mesh

Foju ẹya nipa lilo Istio

Istio jẹ ki o rọrun lati yi pinpin awọn ibeere pada ni ọna ti a nilo. Fun apẹẹrẹ, firanṣẹ gbogbo ijabọ nikan si iṣeduro-v1 ni lilo faili Istio yaml atẹle:

A jara ti awọn ifiweranṣẹ lori Istio Service Mesh

Nibi o nilo lati san ifojusi si eyi: awọn adarọ-ese ti yan ni ibamu si awọn aami. Apẹẹrẹ wa nlo aami v1. Awọn paramita “iwuwo: 100” tumọ si pe 100% ti ijabọ naa yoo ni ipalọlọ si gbogbo awọn adarọ-ese iṣẹ ti o ni aami v1.

Pinpin itọsọna laarin awọn ẹya (Ifiranṣẹ Canary)

Nigbamii, ni lilo paramita iwuwo, o le ṣe itọsọna ijabọ si awọn adarọ-ese mejeeji, ṣaibikita nọmba awọn iṣẹlẹ microservice ti n ṣiṣẹ ni ọkọọkan wọn. Fun apẹẹrẹ, nibi a ṣe itọsọna 90% ti ijabọ si v1 ati 10% si v2:

A jara ti awọn ifiweranṣẹ lori Istio Service Mesh

Itọnisọna lọtọ fun awọn olumulo alagbeka

Ni ipari, a yoo ṣafihan bi o ṣe le fi ipa mu ijabọ olumulo alagbeka lati dari si iṣẹ v2, ati gbogbo eniyan miiran si v1. Lati ṣe eyi, a lo awọn ikosile deede lati ṣe itupalẹ iye aṣoju olumulo ninu akọsori ibeere:

A jara ti awọn ifiweranṣẹ lori Istio Service Mesh

Bayi o jẹ akoko tirẹ

Apẹẹrẹ pẹlu awọn ikosile deede fun awọn akọsori sisọ yẹ ki o ru ọ lati wa awọn lilo tirẹ ti awọn ofin ipa-ọna Istio. Pẹlupẹlu, awọn aye ti o ṣeeṣe nibi jẹ lọpọlọpọ, nitori awọn iye akọsori le ṣe agbekalẹ ni koodu orisun ohun elo.

Ati ranti pe Ops, kii ṣe Dev

Ohun gbogbo ti a fihan ni awọn apẹẹrẹ loke ni a ṣe laisi awọn ayipada diẹ ninu koodu orisun, daradara, ayafi fun awọn ọran wọnyẹn nigbati o jẹ dandan lati ṣe agbekalẹ awọn akọle ibeere pataki. Istio yoo wulo mejeeji si awọn olupilẹṣẹ, ti, fun apẹẹrẹ, yoo ni anfani lati lo ni ipele idanwo, ati si awọn alamọja ni iṣẹ ti awọn eto IT, fun ẹniti yoo ṣe iranlọwọ pupọ ni iṣelọpọ.

Nitorinaa jẹ ki a tun leitmotif ti jara ti awọn ifiweranṣẹ yii: o ko nilo lati yi ohunkohun pada ninu koodu rẹ. Ko si iwulo lati kọ awọn aworan tuntun tabi ṣe ifilọlẹ awọn apoti tuntun. Gbogbo eyi ni imuse ni ita koodu.

Lo oju inu rẹ

O kan fojuinu awọn iṣeeṣe ti itupalẹ akọsori nipa lilo awọn ikosile deede. Fẹ lati darí alabara rẹ ti o tobi julọ si ẹya pataki ti tirẹ microservices? Ni irọrun! Ṣe o nilo ẹya lọtọ fun ẹrọ aṣawakiri Chrome bi? Kosi wahala! O le ṣe ipa ọna ijabọ ni ibamu si fere eyikeyi abuda.

Gbiyanju o funrararẹ

Kika nipa Istio, Kubernetes ati OpenShift jẹ ohun kan, ṣugbọn kilode ti o ko fi ọwọ kan ohun gbogbo funrararẹ? Egbe Red Hat Developer Program ti pese itọsọna alaye kan (ni Gẹẹsi) ti yoo ṣe iranlọwọ fun ọ lati ṣakoso awọn imọ-ẹrọ wọnyi ni yarayara bi o ti ṣee. Iwe afọwọkọ naa tun jẹ orisun ṣiṣi silẹ 100%, nitorinaa o ti firanṣẹ ni agbegbe gbangba. Faili naa ṣiṣẹ lori macOS, Lainos ati Windows, ati pe koodu orisun wa ni Java ati awọn ẹya node.js (awọn ẹya ni awọn ede miiran ti n bọ laipẹ). Kan ṣii ibi ipamọ git ti o baamu ni ẹrọ aṣawakiri rẹ Red Hat Developer Ririnkiri.

Ni ifiweranṣẹ atẹle: a ṣiṣẹ awọn iṣoro ni ẹwa

Loni o rii kini awọn ofin ipa ọna Istio le ṣe. Bayi fojuinu ohun kanna, ṣugbọn nikan ni ibatan si mimu aṣiṣe. Eyi ni deede ohun ti a yoo sọrọ nipa ni ifiweranṣẹ atẹle.

orisun: www.habr.com

Fi ọrọìwòye kun