Peb tab tom pib ua ntau cov ntawv tshaj tawm qhia txog qee lub peev xwm ntawm Istio Service Mesh thaum ua ke nrog Red Hat OpenShift thiab Kubernetes.
Part XNUMX, hnub no:
Cia peb piav qhia lub tswv yim ntawm Kubernetes sidecar ntim thiab tsim cov leitmotif ntawm cov kab lus no: "koj tsis tas yuav hloov dab tsi hauv koj tus lej".
Cia peb qhia qhov tseem ceeb tshaj plaws ntawm Istio - txoj cai routing. Tag nrho lwm yam Istio nta tau tsim rau lawv, vim nws yog cov cai uas tso cai rau koj coj mus rau hauv microservices, siv YAML cov ntaub ntawv sab nraud rau cov kev pabcuam. Peb kuj tseem tab tom xav txog Canary Deployment scheme. Xyoo tshiab lawm β 10 kev sib tham sib tshooj ntawm Istio
Qhov thib ob, los sai sai no, yuav qhia rau koj:
Yuav ua li cas Istio siv Pool Ejection ua ke nrog Circuit Breaker thiab yuav ua kom pom tias Istio tso cai rau koj kom tshem tawm cov neeg tuag lossis ua tsis zoo ntawm lub ntsuas hluav taws xob.
Peb kuj tseem yuav saib lub ntsiab lus Circuit Breaker los ntawm thawj tus ncej kom pom tias Istio tuaj yeem siv li cas ntawm no. Peb yuav qhia koj yuav ua li cas rau kev khiav tsheb khiav thiab daws cov teeb meem hauv lub network siv YAML teeb tsa cov ntaub ntawv thiab cov lus txib davhlau ya nyob twg yam tsis muaj kev hloov pauv me ntsis hauv cov kev pabcuam.
Ntu peb:
Ib zaj dab neeg txog kev taug qab thiab saib xyuas, uas twb tau tsim los lossis yooj yim ntxiv rau Istio. Peb mam li qhia koj siv cov cuab yeej xws li Prometheus, Jaeger, thiab Grafana ua ke nrog OpenShift scaling los tswj microservice architectures.
Peb txav los ntawm kev saib xyuas thiab tuav qhov yuam kev los qhia lawv rau hauv qhov system txhob txwm ua. Hauv lwm lo lus, peb kawm yuav ua li cas ua txhaum kev txhaj tshuaj yam tsis hloov qhov chaws, uas yog ib qho tseem ceeb heev los ntawm qhov kev ntsuam xyuas pom - txij li yog tias koj hloov cov cai nws tus kheej rau qhov no, muaj kev pheej hmoo ntawm kev qhia qhov yuam kev ntxiv.
Thaum kawg, hauv tsab ntawv kawg ntawm Istio Service Mesh:
Wb mus rau qhov tsaus ntuj. Ntau qhov tseeb, peb yuav kawm siv Dark Launch scheme, thaum cov cai raug xa mus thiab sim ncaj qha rau ntawm cov ntaub ntawv tsim khoom, tab sis tsis cuam tshuam rau kev ua haujlwm ntawm lub system nyob rau hauv ib txoj kev. Qhov no yog qhov uas Istio lub peev xwm los faib cov tsheb thauj mus los tau yooj yim. Thiab lub peev xwm los ntsuas ntawm cov ntaub ntawv tsim tawm nyob tsis muaj kev cuam tshuam rau kev ua haujlwm ntawm kev sib ntaus sib tua hauv txhua txoj kev yog txoj kev ntseeg siab tshaj plaws ntawm kev txheeb xyuas.
Lub tsev ntawm Tsaus Launch, peb yuav qhia koj yuav ua li cas siv Canary Deployment qauv kom txo tau qhov kev pheej hmoo thiab ua kom yooj yim dua kom tau txais cov cai tshiab rau hauv ntau lawm. Canary Deployment nws tus kheej nyob deb ntawm qhov tshiab, tab sis Istio tso cai rau koj los siv cov tswv yim no nrog cov ntaub ntawv YAML yooj yim xwb.
Thaum kawg, peb yuav qhia koj yuav ua li cas siv Istio Egress muab kev pabcuam rau cov neeg uas nyob sab nraud koj pawg txhawm rau siv lub peev xwm ntawm Istio thaum ua haujlwm nrog Is Taws Nem.
OpenShift ΠΈ Kubernetes ua haujlwm zoo heev ntawm kev hais lus microservices tau xa mus rau qhov xav tau pods. Qhov no yog ib qho laj thawj rau lub hav zoov ntawm Kubernetes - routing thiab load ntsuas. Tab sis yuav ua li cas yog tias koj xav tau kev hloov maj mam thiab sophisticated routing? Piv txwv li, ib txhij siv ob versions ntawm microservice. Istio Route Rules pab tau li cas ntawm no?
Routing cov cai yog cov cai uas txiav txim siab txoj kev xaiv. Txawm hais tias theem ntawm cov txheej txheem tsis yooj yim, txoj hauv kev ua haujlwm dav dav ntawm cov cai no tseem yooj yim: kev thov raug xa mus raws li qee qhov kev txwv thiab HTTP header qhov tseem ceeb.
Cia peb saib cov piv txwv:
Kubernetes default: tsis tseem ceeb "50/50"
Hauv peb qhov piv txwv, peb yuav qhia yuav ua li cas ib txhij siv ob lub qauv ntawm microservice hauv OpenShift, cia peb hu lawv v1 thiab v2. Txhua lub version khiav hauv nws tus kheej Kubernetes pod, thiab los ntawm lub neej ntawd nws khiav sib npaug sib npaug puag ncig robin routing. Txhua lub pod tau txais nws qhov kev sib koom ntawm kev thov raws li tus naj npawb ntawm nws cov microservice zaus, hauv lwm lo lus, replicas. Istio tso cai rau koj hloov qhov nyiaj tshuav no manually.
Cia peb hais tias peb tau siv ob lub qauv ntawm peb qhov kev pom zoo ntawm OpenShift, kev pom zoo-v1 thiab kev pom zoo-v2.
Hauv daim duab. Daim duab 1 qhia tau hais tias thaum txhua qhov kev pabcuam raug sawv cev rau hauv ib qho piv txwv, thov hloov qhov sib npaug ntawm lawv: 1-2-1-2-... Qhov no yog li cas Kubernetes routing ua haujlwm los ntawm lub neej ntawd:
Weighted faib ntawm versions
Hauv daim duab. Daim duab 2 qhia tias yuav ua li cas yog tias koj nce tus naj npawb ntawm v2 kev pabcuam replicas los ntawm ib mus rau ob (qhov no ua tiav nrog oc scale βreplicas = 2 deployment/recommendation-v2 command). Raws li koj tuaj yeem pom, kev thov ntawm v1 thiab v2 tam sim no muab faib ua ib-rau-peb piv: 1-2-2-1-2-2- ...:
Tsis quav ntsej version siv Istio
Istio ua rau nws yooj yim los hloov qhov kev faib tawm ntawm kev thov raws li peb xav tau. Piv txwv li, xa tag nrho cov tsheb mus rau kev pom zoo-v1 siv Istio yaml cov ntaub ntawv hauv qab no:
Ntawm no koj yuav tsum tau xyuam xim rau qhov no: pods raug xaiv raws li cov ntawv sau. Peb qhov piv txwv siv daim ntawv lo v1. Qhov "qhov hnyav: 100" parameter txhais tau hais tias 100% ntawm cov tsheb yuav raug xa mus rau txhua qhov kev pabcuam pods uas muaj daim ntawv lo v1.
Kev faib tawm ntawm cov qauv (Canary Deployment)
Tom ntej no, siv qhov ntsuas qhov hnyav, koj tuaj yeem coj tsheb mus rau ob lub pods, tsis quav ntsej tus naj npawb ntawm microservice zaus khiav hauv ib qho ntawm lawv. Piv txwv li, ntawm no peb coj 90% ntawm kev khiav mus rau v1 thiab 10% rau v2:
Sib cais routing rau cov neeg siv mobile
Hauv kev xaus, peb yuav qhia yuav ua li cas yuam cov neeg siv mobile tsheb khiav mus rau kev pabcuam v2, thiab txhua tus neeg rau v1. Txhawm rau ua qhov no, peb siv cov lus qhia tsis tu ncua los txheeb xyuas tus nqi siv tus neeg sawv cev hauv daim ntawv thov header:
Tam sim no nws yog koj tig
Cov piv txwv nrog cov lus qhia tsis tu ncua rau kev txheeb xyuas cov ntsiab lus yuav tsum txhawb koj kom pom koj tus kheej siv Istio routing cov cai. Ntxiv mus, qhov muaj peev xwm ntawm no yog qhov dav heev, txij li header qhov tseem ceeb tuaj yeem tsim nyob rau hauv daim ntawv thov qhov chaws.
Thiab nco ntsoov tias Ops, tsis yog Dev
Txhua yam uas peb tau pom hauv cov piv txwv saum toj no yog ua tiav yam tsis muaj kev hloov pauv me ntsis hauv qhov chaws, zoo, tshwj tsis yog rau cov xwm txheej thaum nws tsim nyog los tsim cov ntawv thov tshwj xeeb. Istio yuav muaj txiaj ntsig zoo rau ob qho tib si rau cov neeg tsim khoom, uas, piv txwv li, yuav siv tau ntawm qhov kev sim, thiab rau cov kws tshaj lij hauv kev ua haujlwm ntawm IT systems, uas nws yuav pab tau zoo heev hauv kev tsim khoom.
Yog li cia peb rov hais dua cov leitmotif ntawm no series ntawm cov posts: koj tsis tas yuav hloov dab tsi hauv koj cov cai. Tsis tas yuav tsim cov duab tshiab lossis tso cov thawv tshiab. Tag nrho cov no yog siv sab nraum lub chaws.
Siv koj lub tswv yim
Tsuas yog xav txog qhov muaj peev xwm ntawm kev txheeb xyuas header siv cov lus hais tsis tu ncua. Xav redirect koj cov neeg siv khoom loj tshaj plaws rau qhov tshwj xeeb version ntawm koj microservices? Yooj yim! Xav tau ib qho txawv version rau Chrome browser? Tsis muaj teeb meem! Koj tuaj yeem taug kev mus los raws li yuav luag txhua tus yam ntxwv.
Sim nws tus kheej
Nyeem txog Istio, Kubernetes thiab OpenShift yog ib qho, tab sis vim li cas ho tsis kov txhua yam koj tus kheej? Pab neeg Red Hat Developer Program tau npaj cov lus qhia ntxaws ntxaws (ua lus Askiv) uas yuav pab koj paub cov thev naus laus zis sai li sai tau. Phau ntawv tseem yog 100% qhib qhov chaw, yog li nws tau muab tso rau hauv pej xeem sau. Cov ntaub ntawv ua haujlwm ntawm macOS, Linux thiab Windows, thiab qhov chaws muaj nyob hauv Java thiab node.js versions (versions hauv lwm hom lus yuav los sai sai). Tsuas yog qhib qhov sib txuas git repository hauv koj tus browser Red Hat Developer Demo.
Hauv cov ncej tom ntej: peb ua haujlwm tawm cov teeb meem zoo nkauj
Hnub no koj pom dab tsi Istio routing txoj cai yuav ua tau. Tam sim no xav txog qhov qub, tab sis tsuas yog cuam tshuam nrog kev ua yuam kev. Qhov no yog raws nraim qhov peb yuav tham txog hauv tsab xov xwm tom ntej.