Andian-dahatsoratra momba ny Istio Service Mesh

Manomboka andian-dahatsoratra mampiseho ny sasany amin'ireo fahaiza-manao maro an'ny Istio Service Mesh izahay rehefa atambatra amin'ny Red Hat OpenShift sy Kubernetes.

Andian-dahatsoratra momba ny Istio Service Mesh

Fizarana voalohany, androany:

  • Andao hazavainay ny foto-kevitry ny kaontenera fiarakodia Kubernetes ary hamolavola ny leitmotif an'ity andian-dahatsoratra ity: "tsy mila manova na inona na inona ao amin'ny codeo ianao".
  • Andao hampahafantatra ny zava-dehibe amin'ny Istio - fitsipi-dàlana. Ny endri-javatra Istio hafa rehetra dia miorina amin'izy ireo, satria io no fitsipika mamela anao hitarika ny fifamoivoizana amin'ny microservices, mampiasa rakitra YAML ivelan'ny code service. Eo ihany koa ny fandinihana ny rafitra fametrahana Canary Deployment. Bonus amin'ny taom-baovao - lesona 10 interactive amin'ny Istio


Ny fizarana faharoa, ho avy tsy ho ela, dia hilaza aminao:

  • Ny fomba ampiharan'i Istio ny Pool Ejection miaraka amin'ny Circuit Breaker ary hampiseho ny fomba ahafahan'i Istio manala ny pod maty na tsy mahomby amin'ny fizaran-tany mampifandanja.
  • Hojerentsika ihany koa ny lohahevitry ny Circuit Breaker avy amin'ny lahatsoratra voalohany hahitana ny fomba fampiasana Istio eto. Hasehonay anao ny fomba fampandehanana ny fifamoivoizana sy ny fiatrehana ny hadisoana amin'ny tambajotra amin'ny alàlan'ny fisie YAML sy ny baikon'ny terminal tsy misy fiovana kely amin'ny code service.

Fizarana fahatelo:

  • Tantara momba ny fanaraha-maso sy ny fanaraha-maso, izay efa namboarina na mora ampiana amin'ny Istio. Hasehonay anao ny fomba fampiasana fitaovana toa an'i Prometheus, Jaeger, ary Grafana miaraka amin'ny scaling OpenShift mba hitantanana mora foana ny maritrano microservice.
  • Mifindra avy amin'ny fanaraha-maso sy ny fikarakarana ny lesoka mankany amin'ny fampidirana azy ireo amin'ny rafitra iniana. Raha lazaina amin'ny teny hafa, mianatra ny fomba fanaovana tsindrona fahadisoana isika nefa tsy manova ny kaody loharano, izay tena zava-dehibe amin'ny fomba fijery fitsapana - satria raha manova ny kaody ho an'izany ianao, dia mety hampidi-doza fanampiny.

Farany, ao amin'ny lahatsoratra farany amin'ny Istio Service Mesh:

  • Andao ho any amin'ny Lafiny maizina. Raha ny marimarina kokoa, dia hianatra hampiasa ny rafitra Dark Launch isika, rehefa apetraka sy andrana mivantana amin'ny angon-drakitra famokarana ny kaody, fa tsy misy fiantraikany amin'ny fiasan'ny rafitra amin'ny fomba rehetra. Eto no misy ny fahaizan'i Istio mampisaraka ny fifamoivoizana. Ary ny fahafahana mitsapa ny angon-drakitra famokarana mivantana tsy misy fiantraikany amin'ny fiasan'ny rafitra miady amin'ny fomba rehetra no fomba fanamarinana indrindra.
  • Miorina amin'ny Dark Launch, hasehonay anao ny fomba fampiasana ny modely Canary Deployment mba hampihenana ny risika ary hanamora ny fampidirana kaody vaovao amin'ny famokarana. Ny Canary Deployment dia tsy vaovao, fa i Istio dia mamela anao hampihatra io tetika io amin'ny rakitra YAML tsotra fotsiny.
  • Farany, hasehonay anao ny fomba fampiasana Istio Egress hanomezana fidirana amin'ny serivisy ho an'ireo izay any ivelan'ny clusters mba hampiasana ny fahaizan'i Istio rehefa miasa amin'ny Internet.

Noho izany, andeha isika...

Fitaovana fanaraha-maso sy fitantanam-pitantanana Istio - ny zavatra rehetra ilainao mba handrindrana ny microservices ao anaty harato serivisy harato serivisy.

Inona no atao hoe Istio Service Mesh

Ny harato serivisy dia manatanteraka asa toy ny fanaraha-maso ny fifamoivoizana, ny fanaraha-maso ny fidirana, ny fahitana, ny fiarovana, ny fandeferana ny fahadisoana ary ny zavatra mahasoa hafa ho an'ny vondrona serivisy. Istio dia mamela anao hanao izany rehetra izany tsy misy fiovana kely amin'ny fehezan-dalànan'ny serivisy. Inona no tsiambaratelon'ny ody? Istio dia mametraka ny proxy ho an'ny serivisy tsirairay amin'ny endrika kaontenera sidecar (sidecar dia sidecar môtô), ary avy eo ny fifamoivoizana rehetra mankany amin'ity serivisy ity dia mandeha amin'ny proxy, izay, tarihin'ny politika voafaritra, manapa-kevitra hoe ahoana, rahoviana ary raha ity fifamoivoizana ity. tokony hahatratra ny serivisy mihitsy. Istio ihany koa dia ahafahan'ny fampiharana ireo teknika DevOps mandroso toy ny fametrahana canary, fiatoana amin'ny faritra, tsindrona fahadisoana ary ny maro hafa.

Ny fomba fiasan'i Istio amin'ny kaontenera sy Kubernetes

Ny harato serivisy Istio dia fampiharana sidecar amin'ny zava-drehetra ilaina amin'ny famoronana sy fitantanana ny microservices: fanaraha-maso, fanaraha-maso, fiatoana amin'ny faritra, zotra, fifandanjana entana, fanindronana diso, famerenana indray, fe-potoana, fitaratra, fanaraha-maso ny fidirana, famerana ny tahan'ny ary maro hafa. Ary na dia amin'izao fotoana izao aza dia misy trano famakiam-boky marobe hampihatra ireo fiasa ireo mivantana amin'ny kaody, miaraka amin'i Istio dia afaka mahazo zavatra mitovy daholo ianao nefa tsy manova na inona na inona ao amin'ny codeo.

Araka ny modely sidecar, Istio dia mihazakazaka ao anaty container Linux, izay hita ao anaty iray Kubernetes-pod miaraka amin'ny serivisy voafehy ary manindrona sy maka ny fiasa sy fampahalalana araka ny fanamafisana nomena. Antitranterinay fa io no tefitranonao manokana, ary miaina ivelan'ny code-nao. Noho izany, lasa tsotra sy fohy kokoa ny code.

Ny zava-dehibe ihany koa dia ny hoe tsy misy ifandraisany amin'ny fehezan-dalàna mihitsy ny singa miasa amin'ny microservices, izay midika fa azo afindra soa aman-tsara any amin'ireo manam-pahaizana momba ny IT ny fiasan'izy ireo. Eny tokoa, nahoana no tokony ho tompon'andraikitra amin'ny fiatoan'ny faritra sy ny fanindronana diso ny mpamorona? Mihetsika, eny, fa alamino sy mamorona azy ireo? Raha esorinao amin'ny kaody izany rehetra izany, dia ho afaka hifantoka tanteraka amin'ny fampiasa fampiharana ny programmer. Ary ny kaody mihitsy dia ho fohy sy tsotra kokoa.

Mesh serivisy

Istio, izay manatanteraka asa amin'ny fitantanana microservices ivelan'ny kaody, dia ny foto-kevitry ny Service Mesh. Raha lazaina amin'ny teny hafa dia vondrona mirindra amin'ny binary iray na maromaro izy io izay mamorona tambajotran'ny tambajotra.

Ahoana ny fiasan'i Istio amin'ny microservices

Toy izany ny fiasan'ny kaontenera sidecar miaraka Kubernetes и Minishift mason'ny vorona: manomboka ohatra ny Minishift, mamorona tetikasa ho an'ny Istio (aleo atao hoe “istio-système”), apetraho ary amboary ny singa rehetra mifandraika amin'ny Istio. Avy eo, rehefa mamorona tetikasa sy pods ianao, dia manampy fampahalalana momba ny fanamafisana amin'ny fametrahanao, ary manomboka mampiasa Istio ny pods. Toy izao ny kisary notsorina:

Andian-dahatsoratra momba ny Istio Service Mesh

Ankehitriny ianao dia afaka manova ny toe-javatra Istio araka ny filaharany, ohatra, mba handamina tsindrona fahadisoana, fanohanana Fampielezana Canary na endri-javatra Istio hafa - ary izany rehetra izany tsy mikasika ny kaody an'ny rindranasa mihitsy. Andeha hatao hoe te hamindra ny fifamoivoizana amin'ny Internet rehetra avy amin'ireo mpampiasa ny mpanjifanao lehibe indrindra ianao (Foo Corporation) mankany amin'ny dikan-tranonkala vaovao. Mba hanaovana izany, mamorona fitsipika zotra Istio izay hitady @foocorporation.com ao amin'ny ID mpampiasa ary avereno araka izany. Ho an'ny mpampiasa hafa rehetra dia tsy hisy fiovana. Mandritra izany fotoana izany dia hizaha toetra amim-pahatoniana ny kinova vaovao amin'ny tranokala ianao. Ary mariho fa tsy mila mampiditra mpamorona mihitsy ianao amin'izany.

Ary tsy maintsy handoa lafo ve ianao amin'izany?

Tsia mihitsy. Istio dia tena haingana ary voasoratra ao Go ary mamorona overhead kely dia kely. Ankoatr'izay, ny mety ho fatiantoka amin'ny famokarana an-tserasera dia entin'ny fitomboan'ny famokarana. Farafaharatsiny amin'ny teoria: aza adino fa ny fotoanan'ny mpamorona dia sarobidy. Raha ny vidin'ny rindrambaiko, Istio dia rindrambaiko open source, ka azonao atao ny mahazo sy mampiasa azy maimaim-poana.

Mahafehy izany ny tenanao

Ny ekipan'ny Red Hat Developer Experience dia namolavola tanana lalina mpitarika by Istio (amin'ny teny anglisy). Izy io dia mandeha amin'ny Linux, MacOS ary Windows, ary ny code dia hita amin'ny Java sy Node.js.

Lesona ifanakalozan-kevitra 10 momba ny Istio

Block 1 - Ho an'ny vao manomboka

Introduction to Istio
30 minitra
Andao isika hifankahalala amin'ny Service Mesh, ianaro ny fomba fametrahana Istio amin'ny cluster OpenShift Kubernetes.
Manomboka

Mampiasa microservices ao Istio
30 minitra
Mampiasa Istio izahay mba hametraka microservice telo miaraka amin'ny Spring Boot sy Vert.x.
Manomboka

Block 2 - ambaratonga antonony

Fanaraha-maso sy fanaraha-maso ao Istio
60 minitra
Hojerentsika ny fitaovana fanaraha-maso an'i Istio, ny metrika manokana ary ny OpenTracing amin'ny alàlan'ny Prometheus sy Grafana.
Manomboka

Fandalovana tsotra ao Istio
60 minitra
Ianaro ny fomba fitantanana ny zotra amin'ny Istio amin'ny fampiasana fitsipika tsotra.
Manomboka

Fitsipika lalana mandroso
60 minitra
Andeha hojerentsika ny lalana marani-tsaina an'i Istio, fanaraha-maso ny fidirana, fifandanjana entana ary famerana ny tahan'ny.
Manomboka

Block 3 - mpampiasa efa mandroso

Fault Injection in Istio
60 minitra
Mandalina trangan-javatra momba ny tsy fahombiazana amin'ny rindranasa zaraina izahay, mamorona lesoka HTTP sy fahatarana amin'ny tambajotra, ary mianatra mampiasa injeniera korontana hamerenana ny tontolo iainana.
Manomboka

Circuit Breaker ao Istio
30 minitra
Mametraka Siege ho an'ny tranokalam-pitsapana adin-tsaina izahay ary mianatra ny fomba hiantohana ny fandeferana amin'ny backend amin'ny alàlan'ny famerenam-peo, fiatoana fitetezana ary fandroahana dobo.
Manomboka

Egress sy Istio
10 minitra
Mampiasa lalana Egress izahay mba hamoronana fitsipika momba ny fifandraisan'ny serivisy anatiny miaraka amin'ny API sy serivisy ivelany.
Manomboka

Istio sy Kiali
15 minitra
Mianara mampiasa Kiali mba hahazoana topimaso momba ny harato serivisy ary hijery ny fangatahana sy ny fikorianan'ny angona.
Manomboka

TLS mifamaly ao Istio
15 minitra
Mamorona Istio Gateway sy VirtualService izahay, avy eo dia mandalina ny TLS (mTLS) sy ny filaharany amin'ny antsipiriany.
Manomboka

Block 3.1 - Dive lalina: Istio Service Mesh for Microservices

Andian-dahatsoratra momba ny Istio Service Mesh
Inona ny boky:

  • Inona no atao hoe mesh serivisy?
  • Ny rafitra Istio sy ny anjara asany amin'ny maritrano microservice.
  • Mampiasa Istio hamahana ireto olana manaraka ireto:
    • Fandeferana diso;
    • Routing;
    • Fitsapana korontana;
    • fiarovana;
    • Famoriam-bola telemetry mampiasa dian, metrika ary Grafana.

Hampidina boky

Andian-dahatsoratra momba ny serivisy meshes sy Istio

Andramo izany

Ity andian-dahatsoratra ity dia tsy natao hanitrika lalina ny tontolon'ny Istio. Te hampahafantatra anao ny foto-kevitra fotsiny izahay ary mety hanentana anao hanandrana an'i Istio ho anao. Maimaimpoana tanteraka izany, ary ny Red Hat dia manome ny fitaovana rehetra ilainao hanombohana amin'ny OpenShift, Kubernetes, container Linux ary Istio, ao anatin'izany: Red Hat Developer OpenShift Container Platform, mpitari-dalana anay mankany Istio sy loharano hafa ao aminay microsite amin'ny Service Mesh. Aza tara fa manomboka anio!

Fitsipi-dalana Istio: mitantana ny fangatahana serivisy amin'izay tokony halehany

openshift и Kubernetes manao asa tsara amin'ny firesahana microservices alefa any amin'ireo pods ilaina. Izany no iray amin'ireo antony ny fisian'ny Kubernetes - routing sy ny fampifandanjana entana. Ahoana anefa raha mila zotra an-kolaka sy be pitsiny kokoa ianao? Ohatra, mampiasa dikan-teny roa amin'ny microservice miaraka. Ahoana no ahafahan'ny Istio Route Rules manampy eto?

Ny fitsipiky ny lalana dia ny fitsipika izay tena mamaritra ny safidy ny lalana. Na inona na inona haavon'ny fahasarotan'ny rafitra, ny fitsipiky ny fampandehanana ankapoben'ireo fitsipika ireo dia mijanona ho tsotra: ny fangatahana dia alefa mifototra amin'ny mari-pamantarana sasany sy ny soatoavin'ny lohatenin'ny HTTP.
Andeha hojerentsika ohatra:

Kubernetes default: tsy misy dikany "50/50"

Amin'ny ohatra asehontsika dia hasehontsika ny fomba fampiasana ny dikan-teny roa amin'ny microservice amin'ny OpenShift, andao hiantso azy ireo v1 sy v2. Ny dikan-teny tsirairay dia mandeha ao amin'ny pod Kubernetes azy manokana, ary amin'ny alàlan'ny default dia mandeha amin'ny làlan'ny round robin mifandanja tsara. Ny pod tsirairay dia mandray ny ampahany amin'ny fangatahana mifototra amin'ny isan'ny tranga microservice, amin'ny teny hafa, kopia. Istio dia mamela anao hanova io fifandanjana io amin'ny tanana.

Andao atao hoe nametraka dikan-teny roa amin'ny serivisy fanolorana anay izahay amin'ny OpenShift, recommendation-v1 ary recommendation-v2.
Ao amin'ny Fig. Ny sary 1 dia mampiseho fa rehefa aseho amin'ny tranga iray ny serivisy tsirairay dia mifandimby mifanelanelana ny fangatahana: 1-2-1-2-... Toy izao ny fomba fiasan'ny zotra Kubernetes amin'ny alàlan'ny default:

Andian-dahatsoratra momba ny Istio Service Mesh

Fizarana mavesatra eo amin'ny dikan-teny

Ao amin'ny Fig. Ny sary 2 dia mampiseho ny zava-mitranga raha ampitomboinao ho roa ny isan'ny serivisy v2 (izany dia atao amin'ny oc scale —replicas=2 deployment/recommendation-v2 command). Araka ny hitanao, ny fangatahana eo anelanelan'ny v1 sy v2 dia mizara amin'ny tahan'ny iray amin'ny telo: 1-2-2-1-2-2-…:

Andian-dahatsoratra momba ny Istio Service Mesh

Aza miraharaha ny dikan-teny mampiasa Istio

Istio dia manamora ny fanovana ny fizarana fangatahana amin'ny fomba ilaintsika. Ohatra, alefaso any amin'ny recommendation-v1 ihany ny fifamoivoizana rehetra amin'ny fampiasana ity rakitra Istio yaml manaraka ity:

Andian-dahatsoratra momba ny Istio Service Mesh

Eto ianao dia mila mandinika izany: ny pods dia voafidy araka ny etikety. Ny ohatra ataontsika dia mampiasa marika v1. Ny mari-pamantarana "lanja: 100" dia midika fa ny 100% amin'ny fifamoivoizana dia halefa any amin'ny pod serivisy rehetra manana ny marika v1.

Fizarana torolalana eo amin'ny dikan-teny (Canary Deployment)

Avy eo, amin'ny fampiasana ny mari-pamantarana lanja, azonao atao ny mitarika ny fifamoivoizana amin'ny pods roa, tsy miraharaha ny isan'ny microservice mandeha amin'ny tsirairay amin'izy ireo. Ohatra, eto izahay dia mitarika ny 90% amin'ny fifamoivoizana mankany v1 ary 10% mankany v2:

Andian-dahatsoratra momba ny Istio Service Mesh

Lalana misaraka ho an'ny mpampiasa finday

Ho fehin-kevitra, hasehontsika ny fomba hanerena ny fifamoivoizana amin'ny mpampiasa finday halefa mankany amin'ny serivisy v2, ary ny hafa rehetra mankany amin'ny v1. Mba hanaovana izany dia mampiasa fomba fiteny mahazatra izahay hamakafaka ny sandan'ny mpampiasa-agent amin'ny lohatenin'ny fangatahana:

Andian-dahatsoratra momba ny Istio Service Mesh

Anjaranao izao

Ny ohatra miaraka amin'ny fomba fiteny mahazatra ho an'ny lohatenin'ny fanapariahana dia tokony hanosika anao hitady ny fampiasanao manokana ny fitsipiky ny lalana Istio. Ankoatr'izay, be dia be ny fahafaha-manao eto, satria ny soatoavin'ny lohapejy dia azo amboarina ao amin'ny code source application.

Ary tadidio fa Ops fa tsy Dev

Ny zavatra rehetra nasehonay tamin'ny ohatra etsy ambony dia vita tsy misy fiovana kely amin'ny kaody loharano, afa-tsy ireo tranga izay ilaina ny mamorona lohapejy fangatahana manokana. Istio dia mahasoa ho an'ny mpamorona, izay, ohatra, dia ho afaka hampiasa azy io amin'ny dingana fitsapana, ary ho an'ny manam-pahaizana manokana amin'ny fampandehanana ny rafitra IT, izay hanampy azy amin'ny famokarana.

Andeha ary avereno ny leitmotif amin'ity andian-dahatsoratra ity: tsy mila manova na inona na inona amin'ny code-nao ianao. Tsy ilaina ny manangana sary vaovao na manangana kaontenera vaovao. Izany rehetra izany dia ampiharina ivelan'ny code.

Ampiasao ny eritreritrao

Alaivo sary an-tsaina fotsiny ny mety hisian'ny famakafakana lohapejy mampiasa fomba fiteny mahazatra. Te hamindra ny mpanjifanao lehibe indrindra amin'ny kinova manokana an'ny anao microservices? Mora! Mila kinova mitokana ho an'ny navigateur Chrome? Tsisy olana! Azonao atao ny mampandeha ny fifamoivoizana araka ny saika toetra rehetra.

Andramo izany

Ny famakiana momba ny Istio, Kubernetes ary OpenShift dia zavatra iray, fa maninona raha hikasika ny zava-drehetra ianao? Ekipa Programa mpamorona Red Hat dia nanomana torolàlana amin'ny antsipiriany (amin'ny teny anglisy) izay hanampy anao hifehy haingana ireo teknolojia ireo. Loharanom-baovao misokatra 100% ihany koa ilay boky, ka apetraka amin'ny sehatra ho an'ny daholobe. Ny rakitra dia miasa amin'ny macOS, Linux ary Windows, ary ny kaody loharano dia misy amin'ny dikan-teny Java sy node.js (ho avy tsy ho ela ny dikan-teny amin'ny fiteny hafa). Sokafy fotsiny ny tahiry git mifandraika amin'ny navigateur Demo Developer Red Hat.

Amin'ny lahatsoratra manaraka: mamaha olana tsara izahay

Hitanao androany ny zavatra azon'ny fitsipika zotra Istio atao. Alao sary an-tsaina ny zavatra mitovy amin'izany, fa mifandraika amin'ny fikarakarana fahadisoana ihany. Izany indrindra no horesahina amin'ny lahatsoratra manaraka.

Source: www.habr.com

Add a comment