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:
Għadd kbir ta’ eżempji u stejjer;
Definizzjoni speċifika ta' GitOps;
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:
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:
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:
Fil-mudell Kubernetes, kollox jista 'jiġi deskritt f'forma dikjarattiva.
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.
Id-dikjarazzjonijiet huma biżżejjed biex jiddeskrivu u jimmaniġġjaw varjetà wiesgħa ta’ xogħolijiet—“applikazzjonijiet.”
Bħala riżultat, il-bidliet fl-applikazzjoni u l-cluster iseħħu minħabba:
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-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
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.
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.
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.
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:
Il-mudell operattiv għal Kubernetes u cloud native deskritt hawn fuq.
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:
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).
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.
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?
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.
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.
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.