GitOps yog dab tsi?

Nco tseg. txhais.: Tom qab kev tshaj tawm tsis ntev los no khoom hais txog kev rub thiab thawb txoj hauv kev hauv GitOps, peb pom kev txaus siab rau tus qauv no feem ntau, tab sis muaj tsawg heev Lavxias-lus tshaj tawm rau cov ncauj lus no (tsis muaj ib qho ntawm HabrΓ©). Yog li ntawd, peb txaus siab muab rau koj mloog ib qho kev txhais ntawm lwm tsab xov xwm - txawm tias yuav luag ib xyoos dhau los! - los ntawm Weaveworks, lub taub hau uas tau sau lo lus "GitOps." Cov ntawv piav qhia qhov tseem ceeb ntawm txoj hauv kev thiab qhov sib txawv tseem ceeb ntawm cov uas twb muaj lawm.

Ib xyoo dhau los peb luam tawm kev taw qhia rau GitOps. Tom qab ntawd, peb tau sib qhia yuav ua li cas pab pawg Weaveworks tau pib SaaS tag nrho raws li Kubernetes thiab tsim cov txheej txheem kev coj ua zoo tshaj plaws rau kev siv, tswj, thiab saib xyuas hauv huab cua ib puag ncig.

Zaj lus tau muab los ua neeg nyiam. Lwm tus neeg pib tham txog GitOps thiab pib tshaj tawm cov cuab yeej tshiab rau git laub, kev loj hlob, zais cia, zog, kev koom ua ke tsis tu ncua thiab lwm yam. tshwm sim ntawm peb lub vev xaib ib tug xov tooj loj Cov ntawv tshaj tawm thiab GitOps siv rooj plaub. Tab sis qee cov neeg tseem muaj lus nug. Tus qauv txawv li cas los ntawm ib txwm? infrastructure raws li code thiab kev xa khoom tas mus li (nruam tus me nyuam)? Puas tsim nyog siv Kubernetes?

Tsis ntev peb pom tau hais tias yuav tsum muaj ib qho kev piav qhia tshiab, muab:

  1. Ntau tus piv txwv thiab zaj dab neeg;
  2. Cov ntsiab lus tshwj xeeb ntawm GitOps;
  3. Kev sib piv nrog kev xa khoom tas li.

Hauv tsab xov xwm no peb tau sim los npog tag nrho cov ncauj lus no. Nws muab cov lus qhia tshiab rau GitOps thiab tus tsim tawm thiab CI / CD kev xav. Peb feem ntau tsom rau Kubernetes, txawm hais tias tus qauv tuaj yeem ua tau dav dav.

Ntsib GitOps

Xav txog Alice. Nws tuav Family Insurance, uas muaj kev noj qab haus huv, tsheb, tsheb, tsev, thiab kev pov hwm mus ncig rau cov neeg uas tsis khoom ntau dhau los txiav txim siab txog qhov kev cog lus ntawm lawv tus kheej. Nws txoj kev lag luam pib ua haujlwm sab nraud thaum Alice ua haujlwm ntawm lub txhab nyiaj ua tus kws tshawb fawb cov ntaub ntawv. Muaj ib hnub nws pom tau hais tias nws tuaj yeem siv lub tshuab computer algorithms los txheeb xyuas cov ntaub ntawv zoo dua thiab tsim cov pob ntawv pov hwm. Cov neeg ua lag luam tau nyiaj txiag rau qhov project, thiab tam sim no nws lub tuam txhab coj ntau dua $ 20 lab ib xyoos thiab loj hlob sai. Tam sim no, nws ntiav 180 tus neeg hauv ntau txoj haujlwm. Qhov no suav nrog pab pawg thev naus laus zis uas tsim kho, tswj hwm lub vev xaib, database, thiab tshuaj xyuas cov neeg siv khoom. Pab neeg ntawm 60 tus neeg yog coj los ntawm Bob, tus thawj coj ntawm lub tuam txhab.

Bob pab neeg siv cov tshuab tsim khoom hauv huab. Lawv cov ntawv thov tseem ceeb khiav ntawm GKE, ua kom zoo dua Kubernetes ntawm Google Huab. Tsis tas li ntawd, lawv siv ntau yam ntaub ntawv thiab cov cuab yeej tshuaj ntsuam xyuas hauv lawv txoj haujlwm.

Tsev Neeg Insurance tsis tau npaj siv cov thawv ntim khoom, tab sis tau ntes tau hauv Docker txaus siab. Lub tuam txhab tau tshawb pom sai sai tias GKE tau ua kom yooj yim rau kev xa cov pawg los sim cov yam ntxwv tshiab. Jenkins rau CI thiab Quay tau ntxiv los txhim kho lub thawv rau npe, cov ntawv sau rau Jenkins uas thawb cov thawv tshiab thiab teeb tsa rau GKE.

Qee lub sij hawm dhau lawm. Alice thiab Bob tau poob siab rau qhov kev ua tau zoo ntawm lawv txoj kev xaiv thiab nws cuam tshuam rau kev lag luam. Kev taw qhia ntawm cov thawv tsis txhim kho cov khoom tsim tau ntau npaum li pab pawg tau cia siab. Qee zaum kev xa tawm yuav tawg, thiab nws tsis paub meej tias qhov kev hloov pauv yuav raug liam. Nws kuj tau dhau los ua qhov nyuaj rau taug qab cov kev hloov pauv. Feem ntau nws yog tsim nyog los tsim ib pawg tshiab thiab txav daim ntawv thov mus rau nws, vim qhov no yog txoj hauv kev yooj yim tshaj plaws los tshem tawm cov kev ntxhov siab uas lub kaw lus tau dhau los. Alice ntshai tias qhov xwm txheej yuav hnyav dua li daim ntawv thov tsim (ntxiv rau, ib txoj haujlwm tshiab raws li kev kawm tshuab tau brewing). Bob tau automated feem ntau ntawm cov hauj lwm thiab tsis to taub yog vim li cas lub pipeline tseem tsis ruaj tsis khov, tsis scale zoo, thiab yuav tsum tau phau ntawv kev cuam tshuam lub sij hawm?

Tom qab ntawd lawv kawm txog GitOps. Qhov kev txiav txim siab no tau ua raws nraim qhov lawv xav tau kom muaj kev ntseeg siab mus tom ntej.

Alice thiab Bob tau hnov ​​​​txog Git, DevOps, thiab kev tsim kho vaj tse raws li cov cai ua haujlwm tau ntau xyoo. Dab tsi yog qhov tshwj xeeb ntawm GitOps yog tias nws coj cov kev coj ua zoo tshaj plaws - ob qho tib si meej thiab cov cai - rau kev siv cov tswv yim no hauv cov ntsiab lus ntawm Kubernetes. Lub ntsiab lus no sawv ntau zaus, suav nrog hauv Weaveworks blog.

Family Insurance txiav txim siab los siv GitOps. Lub tuam txhab tam sim no muaj cov qauv kev ua haujlwm tsis siv neeg uas sib xws nrog Kubernetes thiab ua ke ceev nrog ruaj khovvim lawv:

  • pom tias pab neeg tsim khoom tau nce ob npaug yam tsis muaj leej twg mus vwm;
  • tso tseg cov ntawv sau. Hloov chaw, tam sim no lawv tuaj yeem tsom mus rau cov yam ntxwv tshiab thiab txhim kho cov txheej txheem engineering - piv txwv li, qhia txog canary rollouts thiab txhim kho kev sim;
  • peb tau txhim kho cov txheej txheem xa tawm kom nws tsis tshua tawg;
  • tau txais lub sijhawm los rov ua haujlwm rov qab ua haujlwm tom qab ib feem tsis ua haujlwm yam tsis muaj kev cuam tshuam los ntawm phau ntawv;
  • khoom sivΠΎKev ntseeg siab ntau dua hauv kev xa khoom. Alice thiab Bob nrhiav pom tias lawv tuaj yeem faib cov pab pawg mus rau hauv pab pawg microservice ua haujlwm sib luag;
  • tuaj yeem ua 30-50 kev hloov pauv rau qhov project txhua hnub los ntawm kev siv zog ntawm txhua pab pawg thiab sim cov tswv yim tshiab;
  • nws yog ib qho yooj yim los nyiam cov neeg tsim khoom tshiab rau qhov project, uas muaj lub sijhawm los dov tawm tshiab rau kev tsim khoom siv rub cov lus thov tsis pub dhau ob peb teev;
  • yooj yim dhau kev tshuaj xyuas nyob rau hauv lub moj khaum ntawm SOC2 (rau kev ua raws li cov chaw muab kev pabcuam nrog cov kev cai rau kev tswj cov ntaub ntawv ruaj ntseg; nyeem ntxiv, piv txwv li, no - kwv yees. txhais.).

Dab tsi tshwm sim?

GitOps yog ob yam:

  1. Cov qauv ua haujlwm rau Kubernetes thiab huab ib txwm muaj. Nws muab cov txheej txheem kev coj ua zoo tshaj plaws rau kev xa tawm, tswj, thiab saib xyuas cov ntim ntim thiab cov ntawv thov. Elegant txhais hauv daim ntawv ib swb los ntawm Luis Faceira:
  2. Txoj hauv kev los tsim kom muaj tus tsim tawm-centric daim ntawv thov kev tswj hwm ib puag ncig. Peb siv Git workflow rau ob qho tib si kev khiav hauj lwm thiab kev loj hlob. Thov nco ntsoov tias qhov no tsis yog hais txog Git thawb, tab sis hais txog kev teeb tsa tag nrho cov txheej txheem CI / CD thiab UI / UX cov cuab yeej.

Ob peb lo lus hais txog Git

Yog tias koj tsis paub txog kev tswj hwm version thiab Git-based workflow, peb xav kom kawm txog lawv. Ua haujlwm nrog cov ceg ntoo thiab rub cov lus thov yuav zoo li cov khawv koob dub thaum xub thawj, tab sis cov txiaj ntsig tsim nyog rau kev siv zog. Ntawm no zoo tsab xov xwm pib.

Kubernetes ua haujlwm li cas

Hauv peb zaj dab neeg, Alice thiab Bob tig mus rau GitOps tom qab ua haujlwm nrog Kubernetes ib ntus. Tseeb, GitOps yog ze ze rau Kubernetes - nws yog tus qauv ua haujlwm rau kev tsim kho vaj tse thiab kev siv raws li Kubernetes.

Kubernetes muab dab tsi rau cov neeg siv?

Nov yog qee qhov tseem ceeb nta:

  1. Hauv tus qauv Kubernetes, txhua yam tuaj yeem piav qhia hauv daim ntawv tshaj tawm.
  2. Kubernetes API server siv cov lus tshaj tawm no ua cov tswv yim thiab tom qab ntawd txuas ntxiv sim coj cov pawg mus rau hauv lub xeev tau piav qhia hauv cov lus tshaj tawm.
  3. Cov lus tshaj tawm txaus los piav qhia thiab tswj ntau yam ntawm cov haujlwm ua haujlwm - "cov ntawv thov."
  4. Yog li ntawd, kev hloov pauv rau daim ntawv thov thiab pawg tshwm sim vim:
    • hloov pauv hauv cov duab thawv;
    • hloov mus rau cov lus qhia tshwj xeeb;
    • yuam kev nyob rau hauv ib puag ncig - piv txwv li, lub thawv sib tsoo.

Kubernetes 'Great Convergence Capabilities

Thaum tus thawj tswj hwm ua qhov kev hloov pauv, Kubernetes orchestrator yuav siv lawv rau pawg ntev npaum li nws lub xeev yuav tsis los ze rau qhov tshiab configuration. Cov qauv no ua haujlwm rau txhua qhov kev pabcuam Kubernetes thiab txuas ntxiv tau nrog Kev Cai Cov Lus Txhais (CRDs). Yog li ntawd, Kev xa tawm Kubernetes muaj cov khoom zoo hauv qab no:

  • Automation: Kubernetes hloov tshiab muab ib lub tswv yim los ua kom cov txheej txheem ntawm kev siv cov kev hloov pauv tau zoo thiab raws sijhawm.
  • Convergence: Kubernetes yuav txuas ntxiv sim hloov tshiab kom txog thaum ua tiav.
  • Idempotency: Kev thov rov ua dua ntawm kev sib koom ua ke ua rau tib qhov tshwm sim.
  • Kev txiav txim siab: Thaum cov peev txheej txaus, lub xeev ntawm pawg kho tshiab tsuas yog nyob ntawm lub xeev xav tau.

GitOps ua haujlwm li cas

Peb tau kawm txaus txog Kubernetes los piav qhia seb GitOps ua haujlwm li cas.

Cia peb rov qab mus rau Family Insurance's microservices teams. Lawv feem ntau yuav tsum ua dab tsi? Saib cov npe hauv qab no (yog tias muaj tej yam hauv nws zoo li coj txawv txawv lossis tsis paub, thov tuav pov hwm thiab nyob nrog peb). Cov no tsuas yog piv txwv ntawm Jenkins raws li kev ua haujlwm. Muaj ntau lwm cov txheej txheem thaum ua haujlwm nrog lwm cov cuab yeej.

Qhov loj tshaj plaws yog tias peb pom tias txhua qhov hloov tshiab xaus nrog kev hloov pauv rau cov ntaub ntawv teeb tsa thiab Git repositories. Cov kev hloov pauv no rau Git ua rau "GitOps tus neeg teb xov tooj" hloov tshiab pawg:

1. Cov txheej txheem ua haujlwm: "Jenkins tsim - tus tswv ceg".
Daim ntawv ua haujlwm:

  • Jenkins thawb tagged duab rau Quay;
  • Jenkins thawb config thiab Helm kab kos rau tus tswv lub thoob;
  • Cov huab muaj nuj nqi luam cov config thiab kab kos los ntawm tus tswv lub thoob rau tus tswv Git repository;
  • Tus neeg teb xov tooj GitOps hloov kho cov pawg.

2. Jenkins tsim - tso tawm lossis kho qhov chaw kho mob:

  • Jenkins thawb cov dluab untagged rau Quay;
  • Jenkins thawb config thiab Helm kab kos mus rau staging cia thoob;
  • Cov huab muaj nuj nqi luam cov config thiab kab kos los ntawm staging cia thoob mus rau staging Git repository;
  • Tus neeg teb xov tooj GitOps hloov kho cov pawg.

3. Jenkins tsim - txhim kho lossis ua haujlwm ceg:

  • Jenkins thawb cov dluab untagged rau Quay;
  • Jenkins thawb config thiab Helm kab kos rau hauv kev tsim lub thoob;
  • Cov huab ua haujlwm luam theej cov teeb tsa thiab cov kab kos los ntawm kev txhim kho lub thoob rau qhov tsim Git chaw cia khoom;
  • Tus neeg teb xov tooj GitOps hloov kho cov pawg.

4. Ntxiv tus neeg siv khoom tshiab:

  • Tus thawj coj lossis tus thawj tswj hwm (LCM/ops) hu Gradle los pib siv thiab teeb tsa network load balancers (NLBs);
  • LCM/ops cog lus rau kev teeb tsa tshiab los npaj kev xa mus rau kev hloov tshiab;
  • Tus neeg teb xov tooj GitOps hloov kho cov pawg.

Cov lus piav qhia luv luv ntawm GitOps

  1. Piav qhia txog lub xeev xav tau ntawm tag nrho cov kab ke siv cov lus qhia tshwj xeeb rau txhua qhov chaw (hauv peb zaj dab neeg, Bob pab neeg txhais tag nrho cov txheej txheem teeb tsa hauv Git).
    • Git repository yog ib qho ntawm qhov tseeb hais txog lub xeev xav tau ntawm tag nrho cov kab ke.
    • Txhua qhov kev hloov pauv rau lub xeev xav tau yog ua los ntawm kev cog lus hauv Git.
    • Tag nrho cov kev xav tau ntawm pawg kuj tseem pom tau hauv pawg nws tus kheej. Nyob rau hauv no txoj kev peb yuav txiav txim seb lawv coincide (converge, ntxeev siab) los yog txawv (diverge, sib txawv) xav tau thiab pom lub xeev.
  2. Yog tias lub xeev xav tau thiab pom qhov txawv, ces:
    • Nws muaj ib tug convergence mechanism uas sai los yog tom qab cia li synchronizes lub hom phiaj thiab soj ntsuam lub xeev. Hauv pawg, Kubernetes ua qhov no.
    • Cov txheej txheem pib tam sim ntawd nrog kev ceeb toom "hloov pauv".
    • Tom qab qee lub sij hawm configurable, ib qho kev ceeb toom "diff" tuaj yeem xa tau yog tias lub xeev txawv.
  3. Txoj kev no, txhua qhov kev cog lus hauv Git ua rau muaj tseeb thiab tsis muaj peev xwm hloov tshiab rau pawg.
    • Rollback yog convergence rau lub xeev xav tau yav tas los.
  4. Kev sib koom ua ke yog qhov kawg. Nws qhov tshwm sim yog qhia los ntawm:
    • Tsis muaj kev ceeb toom txawv rau qee lub sijhawm.
    • "converged" ceeb toom (xws li webhook, Git writeback tshwm sim).

Dab tsi yog divergence?

Cia peb rov hais dua: tag nrho cov khoom uas xav tau pawg yuav tsum tau pom nyob rau hauv pawg nws tus kheej.

Qee qhov piv txwv ntawm kev sib txawv:

  • Hloov hauv cov ntaub ntawv teeb tsa vim kev sib koom ua ke hauv Git.
  • Kev hloov pauv hauv cov ntaub ntawv teeb tsa vim yog Git kev cog lus los ntawm GUI tus neeg siv khoom.
  • Ntau qhov kev hloov pauv rau lub xeev xav tau vim yog PR hauv Git ua raws li kev tsim lub thawv duab thiab kev hloov pauv.
  • Ib qho kev hloov hauv lub xeev ntawm pawg vim yog qhov yuam kev, kev tsis sib haum xeeb uas ua rau "tus cwj pwm tsis zoo", lossis tsuas yog qhov sib txawv ntawm qhov qub.

Lub mechanism ntawm convergence yog dab tsi?

Ib co piv txwv:

  • Rau cov thawv ntim khoom thiab pawg, cov txheej txheem sib dhos yog muab los ntawm Kubernetes.
  • Tib lub tshuab tuaj yeem siv los tswj cov ntawv thov thiab tsim Kubernetes (xws li Istio thiab Kubeflow).
  • Ib lub tswv yim rau kev tswj hwm kev ua haujlwm ntawm Kubernetes, duab repositories thiab Git muab GitOps tus neeg teb xov tooj Weave Flux, uas yog ib feem Weave Huab.
  • Rau lub hauv paus tshuab, lub convergence mechanism yuav tsum tshaj tawm thiab autonomous. Los ntawm peb tus kheej kev paub peb tuaj yeem hais li ntawd Terraform ze tshaj rau qhov kev txhais no, tab sis tseem yuav tsum muaj kev tswj hwm tib neeg. Hauv qhov kev nkag siab no, GitOps txuas ntxiv cov kab ke ntawm Infrastructure li Code.

GitOps ua ke Git nrog lub cav sib xyaw ua ke zoo heev ntawm Kubernetes los muab tus qauv rau kev siv.

GitOps tso cai rau peb hais tias: Tsuas yog cov tshuab uas tuaj yeem piav qhia thiab pom tau tuaj yeem ua haujlwm thiab tswj tau.

GitOps yog npaj rau tag nrho cov huab ib txwm pawg (piv txwv li, Terraform, thiab lwm yam)

GitOps tsis yog Kubernetes xwb. Peb xav kom tag nrho cov system yuav tsum tau tsav declaratively thiab siv convergence. Los ntawm tag nrho cov txheej txheem peb txhais tau tias ib qho kev sau ntawm ib puag ncig ua haujlwm nrog Kubernetes - piv txwv li, "dev pawg 1", "tsim", thiab lwm yam. Txhua qhov chaw muaj xws li tshuab, pawg, kev siv, nrog rau kev sib cuam tshuam rau cov kev pabcuam sab nraud uas muab cov ntaub ntawv, saib xyuas. thiab lwm yam.

Daim ntawv ceeb toom tias Terraform tseem ceeb npaum li cas rau qhov teeb meem bootstrapping hauv qhov no. Kubernetes yuav tsum tau xa mus rau qhov chaw, thiab siv Terraform txhais tau hais tias peb tuaj yeem siv tib lub GitOps workflows los tsim cov txheej txheem tswj uas underpins Kubernetes thiab cov ntawv thov. Qhov no yog qhov kev coj ua zoo tshaj plaws.

Muaj kev tsom ntsoov rau kev siv GitOps cov ntsiab lus rau cov khaubncaws sab nraud povtseg ntawm Kubernetes. Tam sim no, muaj GitOps-hom kev daws teeb meem rau Istio, Helm, Ksonnet, OpenFaaS thiab Kubeflow, nrog rau, piv txwv li, rau Pulumi, uas tsim txheej txheej rau kev tsim cov ntawv thov rau huab huab.

Kubernetes CI/CD: piv GitOps nrog rau lwm txoj hauv kev

Raws li tau hais, GitOps yog ob yam:

  1. Cov qauv kev khiav hauj lwm rau Kubernetes thiab huab ib txwm tau piav qhia saum toj no.
  2. Txoj kev mus rau tus tsim tawm-centric daim ntawv thov kev tswj hwm ib puag ncig.

Rau ntau, GitOps feem ntau yog kev ua haujlwm raws li Git thawb. Peb nyiam nws thiab. Tab sis qhov tsis yog tag nrho: cia peb saib CI / CD cov kav dej.

GitOps tso cai rau kev xa mus tas li (CD) rau Kubernetes

GitOps muab cov txheej txheem xa mus tas li uas tshem tawm qhov xav tau rau "kev tswj hwm kev xa tawm." Kubernetes ua txhua yam haujlwm rau koj.

  • Kev hloov kho daim ntawv thov yuav tsum hloov kho hauv Git. Qhov no yog kev hloov pauv hloov pauv mus rau lub xeev xav tau. "Kev xa tawm" yog tom qab ntawd ua tiav hauv pawg los ntawm Kubernetes nws tus kheej raws li cov lus piav qhia tshiab.
  • Vim yog qhov xwm txheej ntawm Kubernetes ua haujlwm li cas, cov kev hloov tshiab no tau sib koom ua ke. Qhov no muab cov txheej txheem rau kev xa mus tas li uas txhua qhov hloov tshiab yog atomic.
  • Nco ntsoov: Weave Huab muab GitOps tus neeg teb xov tooj uas sib koom ua ke Git thiab Kubernetes thiab tso cai rau CD ua los ntawm kev sib koom ua ke qhov xav tau thiab lub xeev tam sim no ntawm pawg.

Tsis muaj kubectl thiab scripts

Koj yuav tsum tsis txhob siv Kubectl los hloov kho koj pawg, thiab tshwj xeeb tshaj yog tsis txhob siv cov ntawv rau pawg kubectl cov lus txib. Hloov chaw, nrog GitOps pipeline, tus neeg siv tuaj yeem hloov kho lawv cov Kubernetes pawg ntawm Git.

Cov txiaj ntsig muaj xws li:

  1. Txoj cai. Ib pawg ntawm cov kev hloov tshiab tuaj yeem siv tau, sib koom ua ke thiab thaum kawg tau lees paub, coj peb los ze zog rau lub hom phiaj ntawm kev xa tawm atomic. Hauv qhov sib piv, siv cov ntawv sau tsis muaj kev lees paub ntawm kev sib koom ua ke (ntxiv rau qhov no hauv qab no).
  2. Kev ruaj ntseg. Hais lus Kelsey Hightower: "Txwv tsis pub nkag mus rau koj lub Kubernetes pawg rau automation cov cuab yeej thiab cov thawj coj uas yog lub luag haujlwm rau kev debugging lossis tswj nws." saib thiab kuv qhov kev tshaj tawm hais txog kev nyab xeeb thiab ua raws li kev qhia tshwj xeeb, nrog rau tsab xov xwm hais txog hacking Homebrew los ntawm kev nyiag daim ntawv pov thawj los ntawm daim ntawv sau tsis tu ncua Jenkins.
  3. Kev paub siv. Kubectl nthuav tawm cov tshuab ntawm Kubernetes cov qauv khoom, uas yog qhov nyuaj heev. Qhov zoo tshaj plaws, cov neeg siv yuav tsum cuam tshuam nrog qhov system ntawm qib siab dua ntawm kev xav. Ntawm no kuv yuav rov hais dua rau Kelsey thiab pom zoo saib xws li daim ntawv qhia ua haujlwm.

Qhov sib txawv ntawm CI thiab CD

GitOps txhim kho CI / CD qauv uas twb muaj lawm.

Niaj hnub nimno CI server yog ib qho cuab yeej orchestration. Tshwj xeeb, nws yog ib qho cuab yeej rau orchestrating CI pipelines. Cov no suav nrog kev tsim, sim, sib koom ua ke rau lub cev, thiab lwm yam. CI servers automate txoj kev tswj cov kav dej ntau kauj ruam. Ib qho kev sim siab yog los sau ib txheej ntawm Kubernetes hloov tshiab thiab khiav nws ua ib feem ntawm cov kav dej txhawm rau thawb cov kev hloov pauv rau pawg. Qhov tseeb, qhov no yog qhov ntau tus kws tshaj lij ua. Txawm li cas los xij, qhov no tsis zoo, thiab ntawm no yog vim li cas.

CI yuav tsum tau siv los thawb hloov tshiab rau lub cev, thiab Kubernetes pawg yuav tsum hloov nws tus kheej raws li cov kev hloov tshiab no los tswj CD sab hauv. Peb hu nws rub qauv rau CD, tsis zoo li CI thawb qauv. CD yog ib feem runtime orchestration.

Vim li cas CI Servers yuav tsum tsis txhob ua CDs ntawm Direct Updates hauv Kubernetes

Tsis txhob siv CI neeg rau zaub mov los orchestrate ncaj qha hloov tshiab rau Kubernetes raws li ib txheej ntawm CI txoj hauj lwm. Nov yog qhov kev tawm tsam peb tab tom tham txog xa hais ntawm koj qhov blog.

Wb rov qab mus rau Alice thiab Bob.

Lawv ntsib teeb meem dab tsi? Bob's CI server siv cov kev hloov pauv rau pawg, tab sis yog tias nws poob rau hauv cov txheej txheem, Bob yuav tsis paub tias lub xeev cov pawg yog dab tsi (lossis yuav tsum yog) hauv lossis yuav kho li cas. Tib yam muaj tseeb nyob rau hauv rooj plaub ntawm kev vam meej.

Cia peb xav tias Bob pab pawg tau tsim cov duab tshiab thiab tom qab ntawd patched lawv cov kev xa mus rau xa cov duab (tag nrho los ntawm CI pipeline).

Yog tias daim duab tsim ib txwm, tab sis cov kav dej tsis ua haujlwm, pab pawg yuav tau txiav txim siab:

  • Puas yog qhov hloov tshiab tau nthuav tawm?
  • Puas yog peb pib tsim ib lub tsev tshiab? Qhov no puas yuav ua rau muaj kev phiv tsis tsim nyog - nrog rau muaj peev xwm muaj ob qho kev tsim ntawm tib daim duab tsis hloov?
  • Peb puas yuav tsum tau tos rau qhov hloov tshiab tom ntej ua ntej ua haujlwm tsim?
  • Dab tsi ua tsis ncaj ncees lawm? Cov kauj ruam twg yuav tsum tau rov ua dua (thiab qhov twg muaj kev nyab xeeb rov ua dua)?

Tsim kom muaj Git-based workflow tsis lav tias Bob pab neeg yuav tsis ntsib cov teeb meem no. Lawv tseem tuaj yeem ua yuam kev nrog rau kev ua yuam kev, lub cim npe, lossis qee qhov kev txwv; Txawm li cas los xij, txoj hauv kev no tseem nyob ze dua rau qhov qhia meej txog txhua yam lossis tsis muaj dab tsi.

Los xaus, ntawm no yog vim li cas CI servers yuav tsum tsis txhob cuam tshuam nrog CD:

  • Cov ntawv hloov tshiab tsis tas yuav txiav txim siab; Nws yog ib qho yooj yim ua yuam kev hauv lawv.
  • CI servers tsis converge rau cov qauv tshaj tawm pawg.
  • Nws yog ib qho nyuaj rau lav idempotency. Cov neeg siv yuav tsum nkag siab qhov sib sib zog nqus semantics ntawm lub system.
  • Nws yog qhov nyuaj dua kom rov qab los ntawm ib feem tsis ua haujlwm.

Nco ntsoov txog Helm: Yog tias koj xav siv Helm, peb pom zoo kom muab nws nrog GitOps tus neeg teb xov tooj xws li Flux-Helm. Qhov no yuav pab kom muaj kev sib koom ua ke. Helm nws tus kheej tsis yog kev txiav txim siab lossis atomic.

GitOps yog txoj hauv kev zoo tshaj plaws los siv Kev xa mus tas li rau Kubernetes

Alice thiab Bob pab neeg siv GitOps thiab pom tias nws tau dhau los ua haujlwm yooj yim dua nrog cov khoom siv software, tswj kev ua haujlwm siab thiab ruaj khov. Cia peb xaus tsab xov xwm no nrog ib qho piv txwv uas qhia tias lawv txoj hauv kev tshiab zoo li cas. Nco ntsoov tias peb feem ntau tham txog cov ntawv thov thiab cov kev pabcuam, tab sis GitOps tuaj yeem siv los tswj tag nrho lub platform.

Tus qauv ua haujlwm rau Kubernetes

Saib ntawm daim duab hauv qab no. Nws nthuav tawm Git thiab lub thawv ntim cov duab khaws cia ua cov peev txheej sib koom ua ke rau ob txoj kev ua neej nyob:

  • Ib qho txuas txuas txuas txuas ntxiv uas nyeem thiab sau cov ntaub ntawv rau Git thiab tuaj yeem hloov kho qhov chaw khaws cia ntawm cov duab ntim.
  • Runtime GitOps cov kav dej uas sib txuas ua ke nrog kev tswj hwm thiab kev saib xyuas. Nws nyeem thiab sau cov ntaub ntawv rau Git thiab tuaj yeem rub tawm cov duab ntim.

Cov txiaj ntsig tseem ceeb yog dab tsi?

  1. Kev sib cais ntawm kev txhawj xeeb: Thov nco ntsoov tias ob lub kav dej tsuas tuaj yeem sib txuas lus los ntawm kev hloov kho Git lossis cov duab tso cia. Hauv lwm lo lus, muaj firewall nruab nrab ntawm CI thiab lub sijhawm ua haujlwm. Peb hu nws "immutability firewall" (immutability firewall), txij li tag nrho cov repository hloov tshiab tsim tshiab versions. Yog xav paub ntxiv txog lub ncauj lus no, mus saib cov slides 72-87 qhov kev nthuav qhia no.
  2. Koj tuaj yeem siv CI thiab Git server: GitOps ua haujlwm nrog txhua yam. Koj tuaj yeem txuas ntxiv siv koj nyiam CI thiab Git servers, duab repositories, thiab sim suites. Yuav luag tag nrho lwm cov cuab yeej xa khoom tas mus li ntawm kev ua lag luam xav tau lawv tus kheej CI / Git server lossis duab repository. Qhov no yuav dhau los ua qhov txwv tsis pub muaj nyob rau hauv kev loj hlob ntawm huab haiv neeg. Nrog GitOps, koj tuaj yeem siv cov cuab yeej paub.
  3. Cov xwm txheej ua ib qho cuab yeej kev koom ua ke: Thaum cov ntaub ntawv hauv Git hloov kho, Weave Flux (lossis Weave Cloud tus neeg teb xov tooj) ceeb toom rau lub sijhawm ua haujlwm. Thaum twg Kubernetes lees txais qhov hloov pauv, Git tau hloov kho. Qhov no muab cov qauv kev sib koom ua ke yooj yim rau kev teeb tsa kev ua haujlwm rau GitOps, raws li qhia hauv qab no.

xaus

GitOps muab lub zog hloov tshiab lav yuav tsum tau los ntawm cov cuab yeej CI / CD niaj hnub no:

  • automation;
  • kev sib koom ua ke;
  • tsis muaj zog;
  • kev txiav txim siab.

Qhov no yog qhov tseem ceeb vim tias nws muaj cov qauv ua haujlwm rau cov neeg tsim khoom huab.

  • Cov cuab yeej siv niaj hnub rau kev tswj hwm thiab kev saib xyuas yog cuam tshuam nrog pab pawg ua haujlwm ua haujlwm hauv phau ntawv sau (ib txheej ntawm cov txheej txheem niaj hnub thiab kev ua haujlwm - kwv yees li.), khi rau ib qho kev xa tawm tshwj xeeb.
  • Hauv kev tswj hwm huab huab, cov cuab yeej saib xyuas yog txoj hauv kev zoo tshaj plaws los ntsuas cov txiaj ntsig ntawm kev xa tawm kom pab pawg txhim kho tuaj yeem teb sai.

Xav txog ntau pawg uas tau tawg mus thoob plaws huab sib txawv thiab ntau qhov kev pabcuam nrog lawv tus kheej pab pawg thiab cov phiaj xwm xa tawm. GitOps muaj cov qauv ntsuas-tsis sib xws rau kev tswj hwm txhua qhov kev nplua nuj no.

PS los ntawm tus txhais lus

Nyeem kuj ntawm peb blog:

Tsuas yog cov neeg siv sau npe tuaj yeem koom nrog hauv daim ntawv ntsuam xyuas. Kos npe rau hauvthov.

Koj puas paub txog GitOps ua ntej ob qhov kev txhais lus no tshwm sim ntawm Habre?

  • Yog lawm, kuv paub txhua yam

  • Tsuas yog superficially

  • Tsis

35 cov neeg siv pov npav. 10 cov neeg siv txwv tsis pub siv.

Tau qhov twg los: www.hab.com

Ntxiv ib saib