X'inhu GitOps?

Nota. transl.: Wara pubblikazzjoni riċenti materjal dwar metodi ta 'ġibda u spinta f'GitOps, rajna interess f'dan il-mudell b'mod ġenerali, iżda kien hemm ftit ħafna pubblikazzjonijiet bil-lingwa Russa dwar dan is-suġġett (sempliċement m'hemm xejn fuq Habré). Għalhekk, bi pjaċir noffru għall-attenzjoni tiegħek traduzzjoni ta’ artiklu ieħor – għalkemm kważi sena ilu! — minn Weaveworks, li l-kap tiegħu ħoloq it-terminu "GitOps." It-test jispjega l-essenza tal-approċċ u d-differenzi ewlenin minn dawk eżistenti.

Sena ilu ppubblikajna introduzzjoni għal GitOps. Dakinhar, qsamna kif it-tim Weaveworks nieda SaaS kompletament ibbażat fuq Kubernetes u żviluppa sett ta 'aħjar prattiki preskrittivi għall-iskjerament, il-ġestjoni u l-monitoraġġ f'ambjent nattiv tal-cloud.

L-artiklu rriżulta li kien popolari. Nies oħra bdew jitkellmu dwar GitOps u bdew jippubblikaw għodod ġodda għal git push, żvilupp ta ', sigrieti, funzjonijiet, integrazzjoni kontinwa u l-bqija. Deher fuq il-websajt tagħna numru kbir pubblikazzjonijiet u każijiet ta’ użu ta’ GitOps. Iżda xi nies għad għandhom mistoqsijiet. Il-mudell kif ivarja minn dak tradizzjonali? infrastruttura bħala kodiċi u kunsinna kontinwa (Konsenja kontinwa)? Huwa meħtieġ li tuża Kubernetes?

Malajr indunajna li kienet meħtieġa deskrizzjoni ġdida, li toffri:

  1. Għadd kbir ta’ eżempji u stejjer;
  2. Definizzjoni speċifika ta' GitOps;
  3. Tqabbil mal-kunsinna kontinwa tradizzjonali.

F'dan l-artiklu ppruvajna nkopru dawn is-suġġetti kollha. Jipprovdi introduzzjoni aġġornata għal GitOps u perspettiva tal-iżviluppatur u CI/CD. Aħna niffukaw primarjament fuq Kubernetes, għalkemm il-mudell jista 'jiġi ġeneralizzat.

Iltaqa' ma' GitOps

Immaġina lil Alice. Hija tmexxi l-Assigurazzjoni tal-Familja, li toffri assigurazzjoni tas-saħħa, tal-karozzi, tad-dar u tal-ivvjaġġar lil nies li huma okkupati wisq biex jifhmu l-iżvantaġġi tal-kuntratti huma stess. In-negozju tagħha beda bħala proġett sekondarju meta Alice kienet taħdem f'bank bħala data scientist. Ġurnata minnhom induna li setgħet tuża algoritmi avvanzati tal-kompjuter biex tanalizza d-dejta b’mod aktar effettiv u tifformula pakketti ta’ assigurazzjoni. L-investituri ffinanzjaw il-proġett, u issa l-kumpanija tagħha ġġib aktar minn $20 miljun fis-sena u qed tikber malajr. Bħalissa, timpjega 180 persuna f’diversi pożizzjonijiet. Dan jinkludi tim tat-teknoloġija li jiżviluppa, iżomm il-websajt, id-database, u janalizza l-bażi tal-klijenti. It-tim ta’ 60 persuna huwa mmexxi minn Bob, id-direttur tekniku tal-kumpanija.

It-tim ta' Bob juża sistemi ta' produzzjoni fil-cloud. L-applikazzjonijiet ewlenin tagħhom jaħdmu fuq GKE, billi jieħdu vantaġġ minn Kubernetes fuq Google Cloud. Barra minn hekk, huma jużaw diversi għodod ta 'dejta u analitiċi fix-xogħol tagħhom.

L-Assigurazzjoni tal-Familja ma bdietx tuża kontenituri, iżda nqabdet fl-entużjażmu ta’ Docker. Il-kumpanija malajr skopriet li GKE għamilha faċli u mingħajr sforz biex tiskjera clusters biex tittestja karatteristiċi ġodda. Jenkins għal CI u Quay ġew miżjuda biex jorganizzaw ir-reġistru tal-kontejners, inkitbu skripts għal Jenkins li mbuttaw kontenituri u konfigurazzjonijiet ġodda għal GKE.

Għadda xi żmien. Alice u Bob kienu diżappuntati bil-prestazzjoni tal-approċċ magħżul tagħhom u l-impatt tiegħu fuq in-negozju. L-introduzzjoni tal-kontejners ma tejbitx il-produttività daqskemm it-tim kien ittama. Xi drabi l-iskjeramenti kienu jinkisru, u ma kienx ċar jekk it-tibdil fil-kodiċi kienx it-tort. Irriżulta wkoll li kien diffiċli biex issegwi l-bidliet tal-konfigurazzjoni. Ħafna drabi kien meħtieġ li jinħoloq raggruppament ġdid u li l-applikazzjonijiet jiġu mċaqalqa lejh, peress li dan kien l-eħfef mod biex jiġi eliminat it-taħsir li kienet saret is-sistema. Alice beżgħet li s-sitwazzjoni tmur għall-agħar hekk kif l-applikazzjoni żviluppat (barra minn hekk, kien qed jitħejja proġett ġdid ibbażat fuq it-tagħlim tal-magni). Bob kien awtomatizzat il-biċċa l-kbira tax-xogħol u ma fehemx għaliex il-pipeline kien għadu instabbli, ma kabbarx tajjeb, u kien jeħtieġ intervent manwali perjodikament?

Imbagħad tgħallmu dwar GitOps. Din id-deċiżjoni rriżultat li kienet eżattament dak li kellhom bżonn biex jimxu ‘l quddiem b’fiduċja.

Alice u Bob ilhom snin jisimgħu dwar Git, DevOps, u l-infrastruttura bħala flussi tax-xogħol tal-kodiċi. Dak li hu uniku dwar GitOps huwa li jġib sett ta 'l-aħjar prattiki—kemm definittivi kif ukoll normattivi—għall-implimentazzjoni ta' dawn l-ideat fil-kuntest ta 'Kubernetes. Din it-tema tela ripetutament, inkluż fi Weaveworks blog.

L-Assigurazzjoni tal-Familja tiddeċiedi li timplimenta GitOps. Il-kumpanija issa għandha mudell ta 'operazzjoni awtomatizzat li huwa kompatibbli ma' Kubernetes u jgħaqqad veloċità ma stabbiltàgħax huma:

  • sab li l-produttività tat-tim irduppjat ming[ajr [add ma ji;nun;
  • waqaf iservi skripts. Minflok, issa jistgħu jiffokaw fuq karatteristiċi ġodda u jtejbu l-metodi ta 'inġinerija - pereżempju, l-introduzzjoni ta' rollouts canary u t-titjib tal-ittestjar;
  • tjiebna l-proċess ta' skjerament sabiex rari jkisser;
  • kisbu l-opportunità li jirrestawraw skjeramenti wara fallimenti parzjali mingħajr intervent manwali;
  • mixtrija użataоKunfidenza akbar fis-sistemi tal-kunsinna. Alice u Bob skoprew li setgħu jaqsmu t-tim f'timijiet ta' mikroservizzi li jaħdmu b'mod parallel;
  • tista 'tagħmel 30-50 tibdil fil-proġett kuljum permezz tal-isforzi ta' kull grupp u tipprova tekniki ġodda;
  • huwa faċli li tattira żviluppaturi ġodda għall-proġett, li għandhom l-opportunità li joħorġu aġġornamenti għall-produzzjoni billi jużaw talbiet ta 'ġibda fi żmien ftit sigħat;
  • faċilment tgħaddi l-verifika fi ħdan il-qafas ta 'SOC2 (għall-konformità tal-fornituri tas-servizz mar-rekwiżiti għall-ġestjoni sigura tad-dejta; aqra aktar, pereżempju, hawn - madwar. trad.).

X'ġara?

GitOps huwa żewġ affarijiet:

  1. Mudell operattiv għal Kubernetes u cloud native. Jipprovdi sett tal-aħjar prattiki għall-iskjerament, il-ġestjoni, u l-monitoraġġ ta 'clusters u applikazzjonijiet f'kontejners. Definizzjoni eleganti fil-forma slide waħda minn Luis Faceira:
  2. It-triq għall-ħolqien ta 'ambjent ta' ġestjoni tal-applikazzjonijiet iċċentrat fuq l-iżviluppatur. Aħna napplikaw il-fluss tax-xogħol Git kemm għall-operazzjonijiet kif ukoll għall-iżvilupp. Jekk jogħġbok innota li dan mhux biss dwar Git push, iżda dwar l-organizzazzjoni tas-sett kollu ta 'għodod CI/CD u UI/UX.

Ftit kliem dwar Git

Jekk m'intix familjari mas-sistemi ta' kontroll tal-verżjoni u l-fluss tax-xogħol ibbażat fuq Git, nirrakkomandaw ħafna li titgħallem dwarhom. Il-ħidma ma 'fergħat u talbiet għall-ġibda tista' tidher bħala maġija sewda għall-ewwel, iżda l-benefiċċji jiswew l-isforz. Hawn artiklu tajjeb tibda.

Kif jaħdem Kubernetes

Fl-istorja tagħna, Alice u Bob daru lejn GitOps wara li ħadmu ma' Kubernetes għal xi żmien. Tabilħaqq, GitOps huwa relatat mill-qrib ma 'Kubernetes - huwa mudell operattiv għall-infrastruttura u applikazzjonijiet ibbażati fuq Kubernetes.

X'jagħti Kubernetes lill-utenti?

Hawn huma xi karatteristiċi ewlenin:

  1. Fil-mudell Kubernetes, kollox jista 'jiġi deskritt f'forma dikjarattiva.
  2. Is-server tal-API Kubernetes jieħu din id-dikjarazzjoni bħala input u mbagħad kontinwament jipprova jġib il-cluster fl-istat deskritt fid-dikjarazzjoni.
  3. Id-dikjarazzjonijiet huma biżżejjed biex jiddeskrivu u jimmaniġġjaw varjetà wiesgħa ta’ xogħolijiet—“applikazzjonijiet.”
  4. Bħala riżultat, il-bidliet fl-applikazzjoni u l-cluster iseħħu minħabba:
    • bidliet fl-immaġini tal-kontejners;
    • bidliet fl-ispeċifikazzjoni dikjarattiva;
    • żbalji fl-ambjent - pereżempju, ħabtiet tal-kontejners.

Kapaċitajiet ta' Konverġenza Kbira ta' Kubernetes

Meta amministratur jagħmel bidliet fil-konfigurazzjoni, l-orkestratur Kubernetes japplikahom għall-cluster sakemm l-istat tiegħu jkun mhux se jersaq qrib il-konfigurazzjoni l-ġdida. Dan il-mudell jaħdem għal kwalunkwe riżorsa ta' Kubernetes u huwa estensibbli b'Definizzjonijiet ta' Riżorsi Custom (CRDs). Għalhekk, l-iskjeramenti ta' Kubernetes għandhom il-proprjetajiet mill-isbaħ li ġejjin:

  • Awtomazzjoni: L-aġġornamenti tal-Kubernetes jipprovdu mekkaniżmu biex jiġi awtomatizzat il-proċess tal-applikazzjoni tal-bidliet b'mod grazzjuż u f'waqtu.
  • Konverġenza: Kubernetes se jkompli jipprova aġġornamenti sakemm jirnexxi.
  • Idempotenza: Applikazzjonijiet ripetuti ta' konverġenza jwasslu għall-istess riżultat.
  • Determiniżmu: Meta r-riżorsi jkunu biżżejjed, l-istat tal-cluster aġġornat jiddependi biss fuq l-istat mixtieq.

Kif jaħdem GitOps

Tgħallimna biżżejjed dwar Kubernetes biex nispjegaw kif jaħdem GitOps.

Ejja nerġgħu lura għat-timijiet tal-mikroservizzi tal-Assigurazzjoni tal-Familja. X'għandhom jagħmlu normalment? Ħares lejn il-lista t'hawn taħt (jekk xi oġġetti fiha jidhru strambi jew mhux familjari, jekk jogħġbok żomm il-kritika u żomm magħna). Dawn huma biss eżempji ta 'flussi tax-xogħol ibbażati fuq Jenkins. Hemm ħafna proċessi oħra meta taħdem ma 'għodod oħra.

Il-ħaġa prinċipali hija li naraw li kull aġġornament jispiċċa b'bidliet fil-fajls tal-konfigurazzjoni u r-repożitorji Git. Dawn il-bidliet għal Git jikkawżaw lill-"operatur GitOps" jaġġorna l-cluster:

1.Proċess ta 'ħidma: "Jenkins build - fergħa kaptan".
Lista tal-kompiti:

  • Jenkins imbotta immaġini mmarkati lejn Quay;
  • Jenkins jimbotta l-konfigurazzjoni u ċ-ċarts Helm lejn il-barmil tal-ħażna prinċipali;
  • Il-funzjoni tas-sħab tikkopja l-konfigurazzjoni u ċ-ċarts mill-barmil tal-ħażna prinċipali għar-repożitorju ewlieni tal-Git;
  • L-operatur GitOps jaġġorna l-cluster.

2. Jenkins build - fergħa rilaxx jew hotfix:

  • Jenkins jimbotta immaġini mhux tagged lejn Quay;
  • Jenkins pushes config u Helm charts għall-barmil ħażna staging;
  • Il-funzjoni tas-sħab tikkopja l-konfigurazzjoni u ċ-ċarts mill-barmil tal-ħażna tal-istaging għar-repożitorju Git tal-istaging;
  • L-operatur GitOps jaġġorna l-cluster.

3. Jenkins jibnu - jiżviluppaw jew karatteristika fergħa:

  • Jenkins jimbotta immaġini mhux tagged lejn Quay;
  • Jenkins pushes config u Helm charts fil-barmil tal-ħażna tal-iżvilupp;
  • Il-funzjoni tas-sħab tikkopja l-konfigurazzjoni u ċ-ċarts mill-barmil tal-ħażna tal-iżvilupp għar-repożitorju tal-iżvilupp tal-Git;
  • L-operatur GitOps jaġġorna l-cluster.

4. Żieda ta 'klijent ġdid:

  • Il-maniġer jew l-amministratur (LCM/ops) isejjaħ lil Gradle biex inizjalment juża u jikkonfigura bilanċjanti tat-tagħbija tan-netwerk (NLBs);
  • LCM/ops jimpenja konfigurazzjoni ġdida biex jipprepara l-iskjerament għall-aġġornamenti;
  • L-operatur GitOps jaġġorna l-cluster.

Deskrizzjoni qasira ta 'GitOps

  1. Iddeskrivi l-istat mixtieq tas-sistema kollha billi tuża speċifikazzjonijiet dikjarattivi għal kull ambjent (fl-istorja tagħna, it-tim ta 'Bob jiddefinixxi l-konfigurazzjoni tas-sistema kollha f'Git).
    • Ir-repożitorju Git huwa s-sors uniku tal-verità rigward l-istat mixtieq tas-sistema kollha.
    • Il-bidliet kollha għall-istat mixtieq isiru permezz ta 'commits f'Git.
    • Il-parametri kollha mixtieqa tal-cluster huma wkoll osservabbli fil-cluster innifsu. B'dan il-mod nistgħu niddeterminaw jekk jikkoinċidux (jikkonverġu, jikkonverġu) jew differenti (diverġenti, jiddiverġi) stati mixtieqa u osservati.
  2. Jekk l-istati mixtieqa u osservati huma differenti, allura:
    • Hemm mekkaniżmu ta 'konverġenza li illum jew għada awtomatikament jissinkronizza l-istati fil-mira u osservati. Ġewwa l-cluster, Kubernetes jagħmel dan.
    • Il-proċess jibda immedjatament b'twissija ta' "bidla kommessa".
    • Wara xi perjodu ta 'żmien konfigurabbli, twissija "diff" tista' tintbagħat jekk l-istati huma differenti.
  3. Dan il-mod, l-impenji kollha f'Git jikkawżaw aġġornamenti verifikabbli u idempotenti għall-cluster.
    • Rollback huwa konverġenza għal stat mixtieq qabel.
  4. Il-konverġenza hija finali. L-okkorrenza tagħha hija indikata minn:
    • Ebda twissijiet diff għal ċertu perjodu ta 'żmien.
    • twissija "konverġenti" (eż. webhook, avveniment ta' writeback Git).

X'inhi d-diverġenza?

Ejja nerġgħu nerġgħu: il-proprjetajiet kollha mixtieqa tal-cluster għandhom ikunu osservabbli fil-cluster innifsu.

Xi eżempji ta’ diverġenza:

  • Bidla fil-fajl tal-konfigurazzjoni minħabba l-għaqda tal-fergħat f'Git.
  • Bidla fil-fajl tal-konfigurazzjoni minħabba impenn Git magħmul mill-klijent GUI.
  • Bidliet multipli għall-istat mixtieq minħabba PR f'Git segwiti mill-bini tal-immaġni tal-kontenitur u bidliet fil-konfigurazzjoni.
  • Bidla fl-istat tal-cluster minħabba żball, kunflitt tar-riżorsi li jirriżulta f'"imġieba ħażina", jew sempliċiment devjazzjoni każwali mill-istat oriġinali.

X'inhu l-mekkaniżmu ta' konverġenza?

Ftit eżempji:

  • Għal kontenituri u clusters, il-mekkaniżmu ta 'konverġenza huwa pprovdut minn Kubernetes.
  • L-istess mekkaniżmu jista 'jintuża biex jimmaniġġja applikazzjonijiet u disinji bbażati fuq Kubernetes (bħal Istio u Kubeflow).
  • Mekkaniżmu għall-ġestjoni tal-interazzjoni operattiva bejn Kubernetes, repożitorji tal-immaġni u Git jipprovdi Operatur GitOps Weave Flux, li hija parti Weave Cloud.
  • Għal magni bażi, il-mekkaniżmu ta 'konverġenza għandu jkun dikjarattiv u awtonomu. Mill-esperjenza tagħna stess nistgħu ngħidu dan Terraform l-eqreb għal din id-definizzjoni, iżda xorta teħtieġ kontroll uman. F'dan is-sens, GitOps jestendi t-tradizzjoni tal-Infrastruttura bħala Kodiċi.

GitOps jgħaqqad Git mal-magna ta 'konverġenza eċċellenti ta' Kubernetes biex jipprovdi mudell għall-isfruttament.

GitOps jippermettilna ngħidu: Dawk is-sistemi biss li jistgħu jiġu deskritti u osservati jistgħu jiġu awtomatizzati u kkontrollati.

GitOps huwa maħsub għall-munzell nattiv kollu tas-sħab (per eżempju, Terraform, eċċ.)

GitOps mhux biss Kubernetes. Irridu li s-sistema kollha tkun immexxija b'mod dikjarattiv u tuża l-konverġenza. Bis-sistema kollha nifhmu ġabra ta' ambjenti li jaħdmu ma' Kubernetes - pereżempju, "dev cluster 1", "produzzjoni", eċċ. Kull ambjent jinkludi magni, clusters, applikazzjonijiet, kif ukoll interfaces għal servizzi esterni li jipprovdu data, monitoraġġ. u eċċ.

Innota kemm Terraform huwa importanti għall-problema tal-bootstrapping f'dan il-każ. Kubernetes irid jiġi skjerat x'imkien, u l-użu ta' Terraform ifisser li nistgħu napplikaw l-istess flussi tax-xogħol GitOps biex noħolqu s-saff ta 'kontroll li jsostni Kubernetes u l-applikazzjonijiet. Din hija l-aħjar prattika utli.

Hemm fokus qawwi fuq l-applikazzjoni tal-kunċetti GitOps għal saffi fuq Kubernetes. Bħalissa, hemm soluzzjonijiet tat-tip GitOps għal Istio, Helm, Ksonnet, OpenFaaS u Kubeflow, kif ukoll, pereżempju, għal Pulumi, li joħolqu saff għall-iżvilupp ta 'applikazzjonijiet għal cloud native.

Kubernetes CI/CD: tqabbel GitOps ma 'approċċi oħra

Kif intqal, GitOps huwa żewġ affarijiet:

  1. Il-mudell operattiv għal Kubernetes u cloud native deskritt hawn fuq.
  2. It-triq għal ambjent ta 'ġestjoni tal-applikazzjonijiet iċċentrat fuq l-iżviluppatur.

Għal ħafna, GitOps huwa primarjament fluss tax-xogħol ibbażat fuq pushes Git. Aħna nħobbuh ukoll. Iżda dan mhux kollox: ejja issa nħarsu lejn CI/CD pipelines.

GitOps jippermetti skjerament kontinwu (CD) għal Kubernetes

GitOps joffri mekkaniżmu ta’ skjerament kontinwu li jelimina l-ħtieġa għal “sistemi ta’ ġestjoni tal-iskjerament” separati. Kubernetes jagħmel ix-xogħol kollu għalik.

  • L-aġġornament tal-applikazzjoni jeħtieġ aġġornament f'Git. Dan huwa aġġornament transazzjonali għall-istat mixtieq. "Skjerament" imbagħad isir fi ħdan il-cluster minn Kubernetes innifsu abbażi tad-deskrizzjoni aġġornata.
  • Minħabba n-natura ta' kif jaħdem Kubernetes, dawn l-aġġornamenti huma konverġenti. Dan jipprovdi mekkaniżmu għal skjerament kontinwu li fih l-aġġornamenti kollha huma atomiċi.
  • Nota: Weave Cloud joffri operatur GitOps li jintegra Git u Kubernetes u jippermetti li jitwettaq CD billi jirrikonċilja l-istat mixtieq u attwali tal-cluster.

Mingħajr kubectl u skripts

Għandek tevita li tuża Kubectl biex taġġorna l-cluster tiegħek, u speċjalment tevita li tuża skripts biex tiġbor il-kmandi tal-kubectl. Minflok, bil-pipeline GitOps, utent jista 'jaġġorna l-cluster Kubernetes tiegħu permezz ta' Git.

Il-benefiċċji jinkludu:

  1. Dritt. Grupp ta 'aġġornamenti jistgħu jiġu applikati, konverġenti u finalment ivvalidati, li jġibna eqreb lejn l-għan tal-iskjerament atomiku. B'kuntrast, l-użu ta' skripts ma jipprovdi ebda garanzija ta' konverġenza (aktar dwar dan hawn taħt).
  2. sigurtà. Jikkwota Kelsey Hightower: "Irrestrinġi l-aċċess għall-cluster Kubernetes tiegħek għal għodod ta 'awtomazzjoni u amministraturi li huma responsabbli għad-debugging jew il-manutenzjoni tiegħu." ara ukoll il-pubblikazzjoni tiegħi dwar is-sikurezza u l-konformità mal-ispeċifikazzjonijiet tekniċi, kif ukoll artiklu dwar il-hacking tal-Homebrew billi serqet kredenzjali minn skript Jenkins miktub bi traskuraġni.
  3. Esperjenza tal-Utent. Kubectl jesponi l-mekkaniżmi tal-mudell tal-oġġett Kubernetes, li huma pjuttost kumplessi. Idealment, l-utenti għandhom jinteraġixxu mas-sistema f'livell ogħla ta 'estrazzjoni. Hawnhekk nerġa' nirreferi għal Kelsey u nirrakkomanda li nara tali jerġa.

Differenza bejn CI u CD

GitOps itejjeb mudelli CI/CD eżistenti.

Server CI modern huwa għodda ta 'orkestrazzjoni. B'mod partikolari, hija għodda għall-orkestrazzjoni tal-pipelines CI. Dawn jinkludu bini, ttestjar, jingħaqdu mat-trunk, eċċ. Is-servers CI awtomatizzaw il-ġestjoni ta 'pipelines kumplessi f'diversi stadji. Tentazzjoni komuni hija li tikteb sett ta 'aġġornamenti ta' Kubernetes u tħaddem bħala parti minn pipeline biex timbotta bidliet fil-cluster. Tabilħaqq, dan huwa dak li jagħmlu ħafna esperti. Madankollu, dan mhuwiex ottimali, u hawn għaliex.

CI għandu jintuża biex jimbotta aġġornamenti għat-trunk, u l-cluster Kubernetes għandu jinbidel innifsu abbażi ta 'dawk l-aġġornamenti biex jimmaniġġja s-CD internament. Aħna nsejħulha iġbed mudell għal CD, b'differenza mill-mudell CI push. CD hija parti orkestrazzjoni runtime.

Għaliex is-Servers CI M'għandhomx Jagħmlu CDs permezz ta 'Aġġornamenti Diretti f'Kubernetes

Tużax server CI biex orkestra aġġornamenti diretti għal Kubernetes bħala sett ta 'impjiegi CI. Dan huwa l-anti-mudell li qed nitkellmu diġà qal fuq il-blog tiegħek.

Ejja mmorru lura għal Alice u Bob.

Liema problemi ffaċċjaw? Is-server CI ta 'Bob japplika l-bidliet għall-cluster, iżda jekk jiġġarraf fil-proċess, Bob ma jkunx jaf f'liema stat huwa (jew għandu jkun) il-cluster jew kif jiffissah. L-istess jgħodd f'każ ta' suċċess.

Ejja nassumu li t-tim ta 'Bob bena immaġni ġdida u mbagħad patched l-iskjeramenti tagħhom biex tiskjera l-immaġni (kollha mill-pipeline CI).

Jekk l-immaġni tinbena b'mod normali, iżda l-pipeline ifalli, it-tim ikollu jifhem:

  • L-aġġornament ħareġ?
  • Qed inniedu bini ġdid? Dan se jwassal għal effetti sekondarji bla bżonn - bil-possibbiltà li jkun hemm żewġ builds tal-istess immaġini immutabbli?
  • Għandna nistennew l-aġġornament li jmiss qabel ma nħaddmu l-bini?
  • X'mar ħażin eżatt? Liema passi jeħtieġ li jiġu ripetuti (u liema huma sikuri biex jiġu ripetuti)?

L-istabbiliment ta 'fluss tax-xogħol ibbażat fuq Git ma jiggarantixxix li t-tim ta' Bob mhux se jiltaqa 'ma' dawn il-problemi. Xorta jistgħu jagħmlu żball bil-commit push, it-tikketta, jew xi parametru ieħor; madankollu, dan l-approċċ għadu ħafna eqreb ta' approċċ espliċitu ta' kollox jew xejn.

Fil-qosor, hawn għaliex is-servers CI m'għandhomx jittrattaw is-CD:

  • L-iskripts tal-aġġornament mhux dejjem huma deterministiċi; Huwa faċli li tagħmel żbalji fihom.
  • Is-servers CI ma jikkonverġux lejn il-mudell ta' cluster dikjarattiv.
  • Huwa diffiċli li tiggarantixxi l-idempotenza. L-utenti għandhom jifhmu s-semantika profonda tas-sistema.
  • Huwa aktar diffiċli li tirkupra minn falliment parzjali.

Nota dwar Helm: Jekk trid tuża Helm, nirrakkomandaw li tikkombinaha ma 'operatur GitOps bħal Fluss-Tmun. Dan jgħin biex tiġi żgurata l-konverġenza. Helm innifsu la huwa deterministiku u lanqas atomiku.

GitOps bħala l-aħjar mod biex timplimenta Kunsinna Kontinwa għal Kubernetes

It-tim ta 'Alice u Bob jimplimenta GitOps u jiskopri li sar ħafna aktar faċli li taħdem ma' prodotti ta 'softwer, iżżomm prestazzjoni għolja u stabbiltà. Ejja nagħtu dan l-artikolu b'illustrazzjoni li turi kif jidher l-approċċ il-ġdid tagħhom. Żomm f'moħħok li l-aktar qed nitkellmu dwar applikazzjonijiet u servizzi, iżda GitOps jista 'jintuża biex jimmaniġġja pjattaforma sħiħa.

Mudell operattiv għal Kubernetes

Ħares lejn id-dijagramma li ġejja. Jippreżenta Git u r-repożitorju tal-immaġni tal-kontenitur bħala riżorsi kondiviżi għal żewġ ċikli tal-ħajja orkestrati:

  • Pipeline ta 'integrazzjoni kontinwa li jaqra u jikteb fajls lil Git u jista' jaġġorna repożitorju ta 'immaġini ta' kontenitur.
  • Pipeline Runtime GitOps li jgħaqqad l-iskjerament mal-ġestjoni u l-osservabilità. Huwa jaqra u jikteb fajls fuq Git u jista' tniżżel immaġini tal-kontenituri.

X'inhuma s-sejbiet ewlenin?

  1. Separazzjoni ta' tħassib: Jekk jogħġbok innota li ż-żewġ pipelines jistgħu jikkomunikaw biss billi jaġġornaw Git jew ir-repożitorju tal-immaġni. Fi kliem ieħor, hemm firewall bejn CI u l-ambjent runtime. Aħna nsejħulu l-"firewall tal-immutabilità" (firewall tal-immutabilità), peress li l-aġġornamenti kollha tar-repożitorju joħolqu verżjonijiet ġodda. Għal aktar informazzjoni dwar dan is-suġġett, irreferi għall-pjastri 72-87 din il-preżentazzjoni.
  2. Tista 'tuża kwalunkwe server CI u Git: GitOps jaħdem bi kwalunkwe komponent. Tista 'tkompli tuża s-servers CI u Git favoriti tiegħek, repożitorji tal-immaġni, u suites tat-test. Kważi l-għodod l-oħra kollha ta’ Kunsinna Kontinwa fis-suq jeħtieġu s-server CI/Git jew ir-repożitorju tal-immaġni tagħhom stess. Dan jista 'jsir fattur li jillimita l-iżvilupp ta' cloud native. B'GitOps, tista' tuża għodod familjari.
  3. Avvenimenti bħala għodda ta' integrazzjoni: Hekk kif id-dejta f'Git tiġi aġġornata, Weave Flux (jew l-operatur Weave Cloud) jinnotifika runtime. Kull meta Kubernetes jaċċetta sett ta' tibdil, Git jiġi aġġornat. Dan jipprovdi mudell ta 'integrazzjoni sempliċi għall-organizzazzjoni tal-flussi tax-xogħol għal GitOps, kif muri hawn taħt.

Konklużjoni

GitOps jipprovdi l-garanziji ta' aġġornament b'saħħithom meħtieġa minn kwalunkwe għodda CI/CD moderna:

  • awtomazzjoni;
  • konverġenza;
  • idempotenza;
  • determiniżmu.

Dan huwa importanti għaliex joffri mudell operattiv għall-iżviluppaturi indiġeni tal-cloud.

  • Għodod tradizzjonali għall-ġestjoni u l-monitoraġġ tas-sistemi huma assoċjati ma 'timijiet tal-operazzjonijiet li joperaw fi ħdan runbook (sett ta' proċeduri u operazzjonijiet ta' rutina - madwar trad.), marbuta ma' skjerament speċifiku.
  • Fil-ġestjoni nattiva tal-cloud, l-għodod tal-osservabbiltà huma l-aħjar mod biex jitkejlu r-riżultati tal-iskjeramenti sabiex it-tim tal-iżvilupp ikun jista’ jirrispondi malajr.

Immaġina ħafna raggruppamenti mferrxa fuq sħab differenti u ħafna servizzi bit-timijiet u l-pjanijiet ta 'skjerament tagħhom stess. GitOps joffri mudell invarjanti fuq skala għall-ġestjoni ta 'din l-abbundanza kollha.

PS minn traduttur

Aqra wkoll fuq il-blog tagħna:

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

Kont taf dwar GitOps qabel ma dehru dawn iż-żewġ traduzzjonijiet fuq Habré?

  • Iva, kont naf kollox

  • Biss superfiċjalment

  • Nru

Ivvutaw 35 utent. 10 utenti astjenew.

Sors: www.habr.com

Żid kumment