Zolemba zingapo pa Istio Service Mesh

Tikuyamba zolemba zingapo zomwe zikuwonetsa zina mwazinthu zambiri za Istio Service Mesh zikaphatikizidwa ndi Red Hat OpenShift ndi Kubernetes.

Zolemba zingapo pa Istio Service Mesh

Gawo loyamba, lero:

  • Tiyeni tifotokoze lingaliro la zotengera za Kubernetes sidecar ndikupanga leitmotif ya mndandanda wa zolemba izi: "simukuyenera kusintha chilichonse mu code yanu".
  • Tiyeni tidziwitse chinthu chofunikira cha Istio - malamulo oyendetsera. Zina zonse za Istio zimamangidwa pa iwo, popeza ndi malamulo omwe amakulolani kuwongolera magalimoto ku ma microservices, pogwiritsa ntchito mafayilo a YAML kunja kwa code code. Tikuganiziranso dongosolo la Canary Deployment deployment. Bonasi ya Chaka Chatsopano - Maphunziro 10 olumikizana pa Istio


Gawo lachiwiri, likubwera posachedwa, likuuzani:

  • Momwe Istio imagwiritsira ntchito Pool Ejection kuphatikiza ndi Circuit Breaker ndipo iwonetsa momwe Istio imakuthandizireni kuchotsa pod yakufa kapena yosachita bwino pagawo losanja.
  • Tiwonanso mutu wa Circuit Breaker kuchokera patsamba loyamba kuti tiwone momwe Istio ingagwiritsire ntchito pano. Tikuwonetsani momwe mungayendetsere kuchuluka kwa magalimoto ndi kuthana ndi zolakwika za netiweki pogwiritsa ntchito mafayilo osintha a YAML ndi malamulo a terminal popanda kusintha pang'ono pama code.

Gawo lachitatu:

  • Nkhani yokhudzana ndi kufufuza ndi kuyang'anira, zomwe zamangidwa kale kapena kuwonjezeredwa mosavuta ku Istio. Tikuwonetsani momwe mungagwiritsire ntchito zida monga Prometheus, Jaeger, ndi Grafana kuphatikiza ndi OpenShift makulitsidwe kuti muzitha kuyang'anira zomangamanga zazing'ono.
  • Timachoka pakuyang'anira ndi kusamalira zolakwika ndikuzilowetsa mudongosolo mwadala. Mwa kuyankhula kwina, timaphunzira momwe tingapangire jekeseni wolakwika popanda kusintha kachidindo kameneko, komwe kuli kofunikira kwambiri pakuwona kuyesa - popeza ngati mutasintha kachidindo kameneka, pali chiopsezo choyambitsa zolakwika zina.

Pomaliza, pomaliza pa Istio Service Mesh:

  • Tiyeni tipite Kumbali Yamdima. Zowonjezereka, tidzaphunzira kugwiritsa ntchito ndondomeko ya Dark Launch, pamene code imayikidwa ndikuyesedwa mwachindunji pa deta yopanga, koma sizimakhudza ntchito ya dongosololi mwanjira iliyonse. Apa ndi pamene mphamvu ya Istio yogawaniza magalimoto imabwera bwino. Ndipo kuthekera koyesa pazidziwitso zopanga zamoyo popanda kukhudza magwiridwe antchito ankhondo mwanjira iliyonse ndiyo njira yotsimikizika kwambiri yotsimikizira.
  • Kumanga pa Dark Launch, tikuwonetsani momwe mungagwiritsire ntchito mtundu wa Canary Deployment kuti muchepetse chiopsezo ndikupangitsa kuti zikhale zosavuta kupanga khodi yatsopano. Canary Deployment palokha siili yatsopano, koma Istio imakulolani kuti mugwiritse ntchito chiwembuchi ndi mafayilo osavuta a YAML.
  • Pomaliza, tikuwonetsani momwe mungagwiritsire ntchito Istio Egress kuti mupereke mwayi kwa omwe ali kunja kwa magulu anu kuti agwiritse ntchito mphamvu za Istio pogwira ntchito ndi intaneti.

Kotero, tiyeni tipite ...

Zida zowunikira ndi kuyang'anira Istio - chilichonse chomwe mungafune kuti mupange ma microservices mu mesh yautumiki utumiki mauna.

Kodi Istio Service Mesh ndi chiyani

Service mesh imagwiritsa ntchito zinthu monga kuyang'anira kuchuluka kwa magalimoto, kuwongolera mwayi wofikira, kuzindikira, chitetezo, kulekerera zolakwika ndi zinthu zina zothandiza pagulu lantchito. Istio imakulolani kuti muchite zonsezi popanda kusintha pang'ono ku code ya mautumiki okha. Kodi chinsinsi chamatsenga ndi chiyani? Istio imagwirizanitsa pulojekiti yake ku ntchito iliyonse mu mawonekedwe a chidebe cha sidecar (sidecar ndi njinga yamoto yam'mbali), pambuyo pake magalimoto onse opita kuntchitoyi amadutsa pa proxy, yomwe, motsogozedwa ndi ndondomeko zotchulidwa, imasankha momwe, liti komanso ngati ayenera kufikira utumiki konse. Istio imapangitsanso kugwiritsa ntchito njira zapamwamba za DevOps monga kutumizira ma canary, ophwanya ma circuit, jekeseni wolakwa ndi ena ambiri.

Momwe Istio imagwirira ntchito ndi zotengera ndi Kubernetes

Istio service mesh ndi kukhazikitsidwa kwapambali zonse zofunika kupanga ndi kuyang'anira ma microservices: kuyang'anira, kufufuza, maulendo oyendayenda, maulendo, kusanja katundu, jekeseni wolakwa, kuyesanso, nthawi, kuyang'ana, kuyang'anira, kuchepetsa mlingo ndi zina zambiri. Ndipo ngakhale lero pali matani owerengera kuti agwiritse ntchito izi mwachindunji mu code, ndi Istio mutha kupeza zinthu zomwezo osasintha chilichonse mu code yanu.

Malinga ndi mtundu wa sidecar, Istio imayenda mu chidebe cha Linux, chomwe chili m'modzi Kubernetes-pod yokhala ndi ntchito yoyendetsedwa ndikulowetsa ndikutulutsa magwiridwe antchito ndi chidziwitso molingana ndi kasinthidwe koperekedwa. Tikugogomezera kuti izi ndi zanu zokha, ndipo zimakhala kunja kwa khodi yanu. Choncho, code imakhala yophweka komanso yayifupi.

Chofunikiranso ndikuti gawo logwirira ntchito la ma microservices limakhala kuti silinagwirizane ndi code yokha, zomwe zikutanthauza kuti ntchito yawo ikhoza kusamutsidwa mosamala kwa akatswiri a IT. Zowonadi, chifukwa chiyani wopangayo akuyenera kukhala ndi udindo pa ophwanya madera ndi jakisoni wolakwika? Chitani, inde, koma zisintheni ndikuzipanga? Mukachotsa zonsezi pamakhodi, opanga mapulogalamu azitha kuyang'ana kwambiri magwiridwe antchito. Ndipo code yokha idzakhala yaifupi komanso yosavuta.

Service mauna

Istio, yomwe imagwiritsa ntchito ntchito zowongolera ma microservices kunja kwa ma code awo, ndiye lingaliro la Service Mesh. Mwa kuyankhula kwina, ndi gulu logwirizana la chimodzi kapena zingapo zomwe zimapanga mauna a ntchito za intaneti.

Momwe Istio imagwirira ntchito ndi ma microservices

Umu ndi momwe ntchito ya zotengera zam'mbali zimawonekera molumikizana Kubernetes ΠΈ Minishift diso la mbalame: yambitsani chitsanzo cha Minishift, pangani pulojekiti ya Istio (tiyeni tiyitcha "istio-system"), ikani ndikuyendetsa zigawo zonse zokhudzana ndi Istio. Kenako, mukamapanga mapulojekiti ndi ma pods, mumawonjezera zambiri zosinthira pazomwe mumatumizira, ndipo ma pod anu amayamba kugwiritsa ntchito Istio. Chithunzi chosavuta chikuwoneka motere:

Zolemba zingapo pa Istio Service Mesh

Tsopano mutha kusintha makonda a Istio kuti, mwachitsanzo, kukonza jekeseni wolakwa, kuthandizira Kutumiza kwa Canary kapena zina za Istio - ndipo zonsezi popanda kukhudza ma code a mapulogalamu okha. Tiyerekeze kuti mukufuna kuwongolera kuchuluka kwa anthu pa intaneti kuchokera kwa ogwiritsa ntchito kasitomala wanu wamkulu (Foo Corporation) kupita ku mtundu watsopano watsambalo. Kuti muchite izi, ingopangani lamulo la Istio routing lomwe limayang'ana @foocorporation.com mu ID ya wogwiritsa ndikuwongolera moyenerera. Kwa ogwiritsa ntchito ena onse, palibe chomwe chidzasinthe. Pakadali pano, muyesa modekha mtundu watsopano watsambalo. Ndipo dziwani kuti simukuyenera kuphatikizira omanga konse pa izi.

Ndipo kodi muyenera kulipira kwambiri?

Ayi konse. Istio ndiyofulumira kwambiri ndipo imalembedwa mkati Go ndipo imapanga malo ochepa kwambiri. Kuphatikiza apo, kutayika komwe kungatheke pakupanga pa intaneti kumathetsedwa ndi kuwonjezeka kwa zokolola zamapulogalamu. Osachepera m'malingaliro: musaiwale kuti nthawi ya omanga ndiyofunika. Ponena za ndalama zamapulogalamu, Istio ndi pulogalamu yotseguka, kotero mutha kuyipeza ndikuigwiritsa ntchito kwaulere.

Dziwani nokha

Gulu la Red Hat Developer Experience Team lapanga manja ozama kalozera lolemba Istio (mu Chingerezi). Imagwira pa Linux, MacOS ndi Windows, ndipo code ikupezeka mu Java ndi Node.js.

Maphunziro a 10 pa Istio

Block 1 - Kwa oyamba kumene

Chiyambi cha Istio
Mphindi 30
Tiyeni tidziwane ndi Service Mesh, phunzirani kukhazikitsa Istio mu gulu la OpenShift Kubernetes.
Yambirani

Kutumiza ma microservices ku Istio
Mphindi 30
Timagwiritsa ntchito Istio kutumiza ma microservices atatu ndi Spring Boot ndi Vert.x.
Yambirani

Block 2 - mlingo wapakatikati

Kuwunika ndi kutsata ku Istio
Mphindi 60
Tifufuza zida zowunikira zomwe zidapangidwa ndi Istio, ma metrics okhazikika, ndi OpenTracing kudzera pa Prometheus ndi Grafana.
Yambirani

Njira yosavuta ku Istio
Mphindi 60
Phunzirani momwe mungayendetsere maulendo ku Istio pogwiritsa ntchito malamulo osavuta.
Yambirani

Malamulo apanjira apamwamba
Mphindi 60
Tiyeni tiwone njira zanzeru za Istio, kuwongolera kolowera, kusanja katundu ndi kuchepetsa mitengo.
Yambirani

Block 3 - ogwiritsa ntchito apamwamba

Jakisoni Wolakwika ku Istio
Mphindi 60
Timaphunzira za kulephera kusamalira zochitika m'mapulogalamu omwe amagawidwa, kupanga zolakwika za HTTP ndi kuchedwa kwa maukonde, ndikuphunzira kugwiritsa ntchito uinjiniya wachisokonezo kuti abwezeretse chilengedwe.
Yambirani

Circuit Breaker ku Istio
Mphindi 30
Timayika Siege pamasamba oyesa kupsinjika ndikuphunzira momwe mungatsimikizire kulekerera zolakwika za backend pogwiritsa ntchito ma replay, ophwanya dera ndi ejection dziwe.
Yambirani

Egress ndi Istio
Mphindi 10
Timagwiritsa ntchito njira za Egress kupanga malamulo okhudzana ndi ntchito zamkati ndi ma API akunja ndi ntchito.
Yambirani

Istio and Kiali
Mphindi 15
Phunzirani kugwiritsa ntchito Kiali kuti muwone mwachidule za mesh yautumiki ndikuwunika zopempha ndikuyenda kwa data.
Yambirani

Mutual TLS ku Istio
Mphindi 15
Timapanga Istio Gateway ndi VirtualService, kenako timaphunzira TLS (mTLS) ndi makonda ake mwatsatanetsatane.
Yambirani

Block 3.1 - Dive Yakuya: Istio Service Mesh ya Microservices

Zolemba zingapo pa Istio Service Mesh
Kodi bukuli likunena za chiyani:

  • Kodi mauna a service ndi chiyani?
  • Dongosolo la Istio ndi gawo lake pakumanga kwa microservice.
  • Kugwiritsa ntchito Istio kuthetsa mavuto otsatirawa:
    • Kulekerera kwa zolakwika;
    • Njira;
    • Kuyesa kwachisokonezo;
    • Security;
    • Kusonkhanitsa ma telemetry pogwiritsa ntchito traces, metrics ndi Grafana.

Koperani buku

Mndandanda wazolemba pama meshes a utumiki ndi Istio

Yesani nokha

Mndandanda wa zolembazi sizinapangidwe kuti zipereke kuzama kwa dziko la Istio. Timangofuna kukudziwitsani za lingalirolo ndipo mwina kukulimbikitsani kuti muyese Istio nokha. Ndi zaulere kuchita, ndipo Red Hat imapereka zida zonse zomwe mungafune kuti muyambe ndi OpenShift, Kubernetes, zotengera za Linux, ndi Istio, kuphatikiza: Red Hat Developer OpenShift Container Platform, wotsogolera wathu ku Istio ndi zinthu zina pazathu microsite pa Service Mesh. Osachedwetsa, yambani lero!

Malamulo oyendetsera Istio: kuwongolera zopempha zautumiki komwe akuyenera kupita

openshift ΠΈ Kubernetes gwirani ntchito yabwino yolankhula microservices kutumizidwa ku zida zofunika. Ichi ndi chimodzi mwazifukwa za kukhalapo kwa Kubernetes - mayendedwe ndi kuwongolera katundu. Koma bwanji ngati mukufuna njira zobisika komanso zapamwamba? Mwachitsanzo, kugwiritsa ntchito nthawi imodzi mitundu iwiri ya microservice. Kodi Malamulo a Istio Route angathandize bwanji apa?

Malamulo amayendedwe ndi malamulo omwe amatsimikizira kusankha njira. Mosasamala kanthu za zovuta za dongosolo, mfundo yogwiritsira ntchito malamulowa imakhalabe yosavuta: zopempha zimayendetsedwa kutengera magawo ena ndi ma HTTP amutu.
Tiyeni tiwone zitsanzo:

Kubernetes kusakhazikika: zazing'ono "50/50"

Muchitsanzo chathu, tiwonetsa momwe tingagwiritsire ntchito nthawi imodzi mitundu iwiri ya microservice mu OpenShift, tiyeni tiziyitcha v1 ndi v2. Mtundu uliwonse umayenda mu Kubernetes pod, ndipo mwachisawawa umayenda mozungulira mozungulira mozungulira. Poda iliyonse imalandira gawo lake la zopempha kutengera kuchuluka kwa ma microservice, mwa kuyankhula kwina, zofananira. Istio imakulolani kuti musinthe izi pamanja.

Tiyerekeze kuti tapereka mitundu iwiri yaupangiri wathu pa OpenShift, malingaliro-v1 ndi malingaliro-v2.
Mku. Chithunzi 1 chikuwonetsa kuti ntchito iliyonse ikaimiridwa nthawi imodzi, imapempha kusinthana pakati pawo: 1-2-1-2-... Umu ndi momwe Kubernetes routing imagwirira ntchito mwachisawawa:

Zolemba zingapo pa Istio Service Mesh

Kugawidwa kolemera pakati pa mitundu

Mku. Chithunzi 2 chikuwonetsa zomwe zimachitika ngati muwonjezera chiwerengero cha mautumiki a v2 kuchokera ku chimodzi mpaka ziwiri (izi zimachitika ndi oc scale -replicas=2 deployment/recommendation-v2 command). Monga mukuonera, zopempha pakati pa v1 ndi v2 tsopano zagawidwa mu chiΕ΅erengero chimodzi-pa-tatu: 1-2-2-1-2-2-…:

Zolemba zingapo pa Istio Service Mesh

Musanyalanyaze mtundu pogwiritsa ntchito Istio

Istio imapangitsa kuti zikhale zosavuta kusintha kugawa zopempha momwe timafunira. Mwachitsanzo, tumizani magalimoto onse ku malingaliro-v1 pogwiritsa ntchito fayilo yotsatira ya Istio yaml:

Zolemba zingapo pa Istio Service Mesh

Apa muyenera kulabadira izi: pods amasankhidwa malinga ndi zolemba. Chitsanzo chathu chimagwiritsa ntchito zilembo v1. "Kulemera: 100" parameter kumatanthauza kuti 100% ya magalimoto idzatumizidwa ku ma pod onse omwe ali ndi chizindikiro cha v1.

Kugawa kwachilangizo pakati pa mitundu (Canary Deployment)

Kenako, pogwiritsa ntchito chizindikiro cholemetsa, mutha kuwongolera kuchuluka kwa ma pod onse, kunyalanyaza kuchuluka kwa ma microservice omwe akuyenda mu iliyonse yaiwo. Mwachitsanzo, apa tikuwongolera 90% yamagalimoto ku v1 ndi 10% mpaka v2:

Zolemba zingapo pa Istio Service Mesh

Mayendedwe osiyana a ogwiritsa ntchito mafoni

Pomaliza, tiwonetsa momwe tingakakamizire kuchuluka kwa ogwiritsa ntchito mafoni kuti atumizidwe ku v2, ndi wina aliyense ku v1. Kuti tichite izi, timagwiritsa ntchito mawu okhazikika kusanthula mtengo wa wogwiritsa ntchito pamutu wofunsira:

Zolemba zingapo pa Istio Service Mesh

Tsopano ndi nthawi yanu

Chitsanzo chokhala ndi mawu okhazikika pamitu yodulira mitu chikuyenera kukulimbikitsani kupeza momwe mungagwiritsire ntchito malamulo a Istio. Kuphatikiza apo, mwayi pano ndi wokulirapo, chifukwa mitu yamutu imatha kupangidwa mu code source source.

Ndipo kumbukirani kuti Ops, osati Dev

Chilichonse chomwe tidawonetsa m'zitsanzo pamwambapa chimapangidwa popanda kusintha pang'ono mu code source, chabwino, kupatula pazochitikazo pamene kuli kofunikira kupanga mitu yopempha yapadera. Istio idzakhala yothandiza kwa onse opanga, omwe, mwachitsanzo, adzatha kuigwiritsa ntchito poyesa, komanso kwa akatswiri pakugwiritsa ntchito machitidwe a IT, omwe angathandize kwambiri kupanga.

Kotero tiyeni tibwereze leitmotif ya mndandanda wa zolemba izi: simuyenera kusintha chilichonse mu code yanu. Palibe chifukwa chopanga zithunzi zatsopano kapena kuyambitsa zotengera zatsopano. Zonsezi zimayendetsedwa kunja kwa code.

Gwiritsani ntchito malingaliro anu

Tangoganizirani kuthekera kwa kusanthula mutu pogwiritsa ntchito mawu okhazikika. Mukufuna kuwongolera kasitomala wanu wamkulu ku mtundu wapadera wanu microservices? Mosavuta! Mukufuna mtundu wina wa msakatuli wa Chrome? Palibe vuto! Mutha kuyendetsa magalimoto molingana ndi chikhalidwe chilichonse.

Yesani nokha

Kuwerenga za Istio, Kubernetes ndi OpenShift ndi chinthu chimodzi, koma bwanji osakhudza chilichonse nokha? Gulu Pulogalamu ya Red Hat Developer wakonza kalozera watsatanetsatane (m'Chingerezi) yemwe angakuthandizeni kudziwa matekinolojewa mwachangu momwe mungathere. Bukuli lilinso 100% gwero lotseguka, kotero limayikidwa pagulu. Fayiloyi imagwira ntchito pa macOS, Linux ndi Windows, ndipo gwero likupezeka mu Java ndi node.js mitundu (mitundu ya zilankhulo zina ikubwera posachedwa). Ingotsegulani chosungira cha git mu msakatuli wanu Red Hat Developer Demo.

Mu positi yotsatira: timathetsa mavuto bwino

Lero mwawona zomwe malamulo a Istio routing angachite. Tsopano lingalirani chinthu chomwecho, koma pokhudzana ndi kukonza zolakwika. Izi ndi zomwe tidzakambirana mu positi yotsatira.

Source: www.habr.com

Kuwonjezera ndemanga