Beth yw GitOps?

Nodyn. traws.: Ar ol cyhoeddiad diweddar deunydd ynghylch dulliau tynnu a gwthio yn GitOps, gwelsom ddiddordeb yn y model hwn yn gyffredinol, ond ychydig iawn o gyhoeddiadau yn yr iaith Rwsieg oedd ar y pwnc hwn (yn syml, nid oes dim ar Habré). Felly, mae’n bleser gennym gynnig cyfieithiad o erthygl arall i’ch sylw – er bron i flwyddyn yn ôl! — o Weaveworks, y bathodd ei bennaeth y term “GitOps.” Mae'r testun yn egluro hanfod y dull gweithredu a'r gwahaniaethau allweddol o'r rhai presennol.

Flwyddyn yn ôl fe wnaethom gyhoeddi cyflwyniad i GitOps. Yn ôl wedyn, fe wnaethom rannu sut y lansiodd tîm Weaveworks SaaS yn gyfan gwbl yn seiliedig ar Kubernetes a datblygu set o arferion gorau rhagnodol ar gyfer lleoli, rheoli a monitro mewn amgylchedd cwmwl brodorol.

Trodd yr erthygl allan i fod yn boblogaidd. Dechreuodd pobl eraill siarad am GitOps a dechrau cyhoeddi offer newydd ar gyfer gwthio git, datblygu, cyfrinachau, swyddogaethau, integreiddio parhaus ac yn y blaen. Wedi ymddangos ar ein gwefan nifer fawr cyhoeddiadau ac achosion defnydd GitOps. Ond mae gan rai pobl gwestiynau o hyd. Sut mae'r model yn wahanol i'r un traddodiadol? isadeiledd fel cod a danfoniad parhaus (cyflwyno'n barhaus)? A oes angen defnyddio Kubernetes?

Buan iawn y sylweddolom fod angen disgrifiad newydd, yn cynnig:

  1. Nifer fawr o enghreifftiau a straeon;
  2. Diffiniad penodol o GitOps;
  3. Cymhariaeth â darpariaeth barhaus draddodiadol.

Yn yr erthygl hon rydym wedi ceisio ymdrin â'r holl bynciau hyn. Mae'n rhoi cyflwyniad wedi'i ddiweddaru i GitOps a phersbectif datblygwr a CI/CD. Rydym yn canolbwyntio'n bennaf ar Kubernetes, er y gellir cyffredinoli'r model.

Cwrdd â GitOps

Dychmygwch Alice. Mae hi'n rhedeg Yswiriant Teulu, sy'n cynnig yswiriant iechyd, ceir, cartref, a theithio i bobl sy'n rhy brysur i ddarganfod manylion contractau eu hunain. Dechreuodd ei busnes fel prosiect ochr pan oedd Alice yn gweithio mewn banc fel gwyddonydd data. Un diwrnod sylweddolodd y gallai ddefnyddio algorithmau cyfrifiadurol uwch i ddadansoddi data yn fwy effeithiol a llunio pecynnau yswiriant. Buddsoddwyr a ariannodd y prosiect, a nawr mae ei chwmni yn dod â mwy na $20 miliwn y flwyddyn i mewn ac yn tyfu'n gyflym. Ar hyn o bryd, mae'n cyflogi 180 o bobl mewn gwahanol swyddi. Mae hyn yn cynnwys tîm technoleg sy'n datblygu, cynnal y wefan, cronfa ddata, a dadansoddi'r sylfaen cwsmeriaid. Arweinir y tîm o 60 o bobl gan Bob, cyfarwyddwr technegol y cwmni.

Mae tîm Bob yn defnyddio systemau cynhyrchu yn y cwmwl. Mae eu cymwysiadau craidd yn rhedeg ar GKE, gan fanteisio ar Kubernetes ar Google Cloud. Yn ogystal, defnyddiant amrywiol offer data a dadansoddeg yn eu gwaith.

Nid oedd Family Insurance yn bwriadu defnyddio cynwysyddion, ond cafodd ei ddal i fyny ym mrwdfrydedd y Docker. Yn fuan darganfu'r cwmni fod GKE yn ei gwneud hi'n hawdd defnyddio clystyrau i brofi nodweddion newydd. Ychwanegwyd Jenkins ar gyfer CI a Quay i drefnu'r gofrestr cynwysyddion, ysgrifennwyd sgriptiau ar gyfer Jenkins a oedd yn gwthio cynwysyddion a chyfluniadau newydd i GKE.

Mae peth amser wedi mynd heibio. Roedd Alice a Bob yn siomedig gyda pherfformiad eu dewis ddull a'i effaith ar y busnes. Ni wnaeth cyflwyno cynwysyddion wella cynhyrchiant cymaint ag yr oedd y tîm wedi'i obeithio. Weithiau byddai gosodiadau'n torri, ac nid oedd yn glir ai newidiadau cod oedd ar fai. Roedd hefyd yn anodd olrhain newidiadau ffurfweddu. Yn aml roedd angen creu clwstwr newydd a symud cymwysiadau iddo, gan mai dyma'r ffordd hawsaf i ddileu'r llanast yr oedd y system wedi dod. Roedd Alice yn ofni y byddai'r sefyllfa'n gwaethygu wrth i'r cais ddatblygu (yn ogystal, roedd prosiect newydd yn seiliedig ar ddysgu peirianyddol yn bragu). Roedd Bob wedi awtomeiddio'r rhan fwyaf o'r gwaith ac nid oedd yn deall pam fod y biblinell yn dal yn ansefydlog, nad oedd yn graddio'n dda, ac angen ymyrraeth â llaw o bryd i'w gilydd?

Yna dysgon nhw am GitOps. Daeth y penderfyniad hwn yn union yr hyn yr oedd ei angen arnynt i symud ymlaen yn hyderus.

Mae Alice a Bob wedi bod yn clywed am Git, DevOps, a seilwaith fel llifoedd gwaith cod ers blynyddoedd. Yr hyn sy'n unigryw am GitOps yw ei fod yn dod â set o arferion gorau - diffiniol a normadol - ar gyfer gweithredu'r syniadau hyn yng nghyd-destun Kubernetes. Y thema hon cododd dro ar ôl tro, gan gynnwys mewn Blog Weaveworks.

Mae Family Insurance yn penderfynu gweithredu GitOps. Bellach mae gan y cwmni fodel gweithredu awtomataidd sy'n gydnaws â Kubernetes ac yn cyfuno cyflymder gyda sefydlogrwyddoherwydd eu bod yn:

  • canfod bod cynhyrchiant y tîm wedi dyblu heb i neb fynd yn wallgof;
  • rhoi'r gorau i weini sgriptiau. Yn lle hynny, gallant nawr ganolbwyntio ar nodweddion newydd a gwella dulliau peirianneg - er enghraifft, cyflwyno caneri a gwella profion;
  • rydym wedi gwella'r broses leoli fel mai anaml y bydd yn torri i lawr;
  • cael y cyfle i adfer gosodiadau ar ôl methiannau rhannol heb ymyrraeth â llaw;
  • prynu a ddefnyddirоMwy o hyder mewn systemau cyflenwi. Darganfu Alice a Bob y gallent rannu'r tîm yn dimau microwasanaeth yn gweithio ochr yn ochr;
  • yn gallu gwneud 30-50 o newidiadau i'r prosiect bob dydd trwy ymdrechion pob grŵp a rhoi cynnig ar dechnegau newydd;
  • mae'n hawdd denu datblygwyr newydd i'r prosiect, sy'n cael y cyfle i gyflwyno diweddariadau i gynhyrchu gan ddefnyddio ceisiadau tynnu o fewn ychydig oriau;
  • pasio archwiliad yn hawdd o fewn fframwaith SOC2 (ar gyfer cydymffurfiaeth darparwyr gwasanaeth â gofynion ar gyfer rheoli data yn ddiogel; darllenwch fwy, er enghraifft, yma - tua. cyfieithu.).

Beth ddigwyddodd?

Mae GitOps yn ddau beth:

  1. Model gweithredol ar gyfer Kubernetes a brodor o'r cwmwl. Mae'n darparu set o arferion gorau ar gyfer lleoli, rheoli a monitro clystyrau a chymwysiadau cynhwysydd. Diffiniad cain yn y ffurf un llith o Luis Faceeira:
  2. Y llwybr i greu amgylchedd rheoli cymwysiadau sy'n canolbwyntio ar y datblygwr. Rydym yn cymhwyso llif gwaith Git i weithrediadau a datblygiad. Sylwch nad yw hyn yn ymwneud â gwthio Git yn unig, ond yn ymwneud â threfnu'r set gyfan o offer CI/CD ac UI/UX.

Ychydig eiriau am Git

Os nad ydych yn gyfarwydd â systemau rheoli fersiynau a llif gwaith seiliedig ar Git, rydym yn argymell yn gryf eich bod yn dysgu amdanynt. Gall gweithio gyda changhennau a cheisiadau tynnu ymddangos fel hud du ar y dechrau, ond mae'r buddion yn werth yr ymdrech. Yma erthygl dda i ddechrau.

Sut mae Kubernetes yn gweithio

Yn ein stori ni, trodd Alice a Bob at GitOps ar ôl gweithio gyda Kubernetes am gyfnod. Yn wir, mae GitOps yn perthyn yn agos i Kubernetes - mae'n fodel gweithredol ar gyfer seilwaith a chymwysiadau yn seiliedig ar Kubernetes.

Beth mae Kubernetes yn ei roi i ddefnyddwyr?

Dyma rai o'r prif nodweddion:

  1. Yn y model Kubernetes, gellir disgrifio popeth mewn ffurf ddatganiadol.
  2. Mae gweinydd Kubernetes API yn cymryd y datganiad hwn fel mewnbwn ac yna'n ceisio dod â'r clwstwr i'r cyflwr a ddisgrifir yn y datganiad yn barhaus.
  3. Mae datganiadau yn ddigonol i ddisgrifio a rheoli amrywiaeth eang o lwythi gwaith—“ceisiadau.”
  4. O ganlyniad, mae newidiadau i'r cais a'r clwstwr yn digwydd oherwydd:
    • newidiadau mewn delweddau cynhwysydd;
    • newidiadau i'r fanyleb ddatganiadol;
    • gwallau yn yr amgylchedd - er enghraifft, damweiniau cynhwysydd.

Galluoedd Cydgyfeirio Gwych Kubernetes

Pan fydd gweinyddwr yn gwneud newidiadau cyfluniad, bydd cerddorfa Kubernetes yn eu cymhwyso i'r clwstwr cyhyd â'i gyflwr ni fydd yn dod yn agos at y ffurfweddiad newydd. Mae'r model hwn yn gweithio ar gyfer unrhyw adnodd Kubernetes ac mae'n estynadwy gyda Diffiniadau Adnoddau Personol (CRDs). Felly, mae gan leoliadau Kubernetes y priodweddau gwych canlynol:

  • Awtomeiddio: Mae diweddariadau Kubernetes yn darparu mecanwaith i awtomeiddio'r broses o gymhwyso newidiadau yn osgeiddig ac mewn modd amserol.
  • Cydgyfeiriant: Bydd Kubernetes yn parhau i geisio diweddariadau nes eu bod yn llwyddiannus.
  • Analluedd: Mae ceisiadau ailadroddus o gydgyfeirio yn arwain at yr un canlyniad.
  • penderfyniaeth: Pan fo adnoddau'n ddigonol, mae cyflwr y clwstwr wedi'i ddiweddaru yn dibynnu ar y cyflwr dymunol yn unig.

Sut mae GitOps yn gweithio

Rydyn ni wedi dysgu digon am Kubernetes i esbonio sut mae GitOps yn gweithio.

Dewch i ni ddychwelyd at dimau microwasanaethau Yswiriant Teulu. Beth sydd ganddynt i'w wneud fel arfer? Edrychwch ar y rhestr isod (os yw unrhyw eitemau ynddi yn ymddangos yn rhyfedd neu'n anghyfarwydd, arhoswch â beirniadu ac arhoswch gyda ni). Enghreifftiau yn unig yw'r rhain o lifau gwaith yn seiliedig ar Jenkins. Mae yna lawer o brosesau eraill wrth weithio gydag offer eraill.

Y prif beth yw ein bod yn gweld bod pob diweddariad yn dod i ben gyda newidiadau i'r ffeiliau ffurfweddu a storfeydd Git. Mae'r newidiadau hyn i Git yn achosi i'r "gweithredwr GitOps" ddiweddaru'r clwstwr:

Proses 1.Working:"Jenkins adeiladu - cangen meistr'.
Rhestr tasgau:

  • Jenkins yn gwthio delweddau wedi'u tagio i Quay;
  • Jenkins yn gwthio siartiau config a Helm i'r prif fwced storio;
  • Mae'r swyddogaeth cwmwl yn copïo'r ffurfwedd a'r siartiau o'r prif fwced storio i'r brif storfa Git;
  • Mae gweithredwr GitOps yn diweddaru'r clwstwr.

2. Jenkins adeiladu - rhyddhau neu hotfix cangen:

  • Jenkins yn gwthio delweddau heb eu tagio i Quay;
  • Jenkins yn gwthio siartiau config a Helm i'r bwced storio llwyfannu;
  • Mae'r swyddogaeth cwmwl yn copïo'r ffurfwedd a'r siartiau o'r bwced storio llwyfannu i'r ystorfa Git llwyfannu;
  • Mae gweithredwr GitOps yn diweddaru'r clwstwr.

3. Jenkins adeiladu - cangen datblygu neu nodwedd:

  • Jenkins yn gwthio delweddau heb eu tagio i Quay;
  • Jenkins yn gwthio siartiau ffurfweddu a Helm i'r bwced storio datblygu;
  • Mae'r swyddogaeth cwmwl yn copïo'r ffurfwedd a'r siartiau o'r bwced storio datblygu i'r storfa Git sy'n datblygu;
  • Mae gweithredwr GitOps yn diweddaru'r clwstwr.

4. Ychwanegu cleient newydd:

  • Mae'r rheolwr neu weinyddwr (LCM/ops) yn galw Gradle i ddechrau defnyddio a ffurfweddu balanswyr llwyth rhwydwaith (NLBs);
  • Mae LCM/ops yn ymrwymo ffurfwedd newydd i baratoi'r defnydd ar gyfer diweddariadau;
  • Mae gweithredwr GitOps yn diweddaru'r clwstwr.

Disgrifiad byr o GitOps....

  1. Disgrifiwch gyflwr dymunol y system gyfan gan ddefnyddio manylebau datganiadol ar gyfer pob amgylchedd (yn ein stori, mae tîm Bob yn diffinio cyfluniad system gyfan yn Git).
    • Ystorfa Git yw'r ffynhonnell unigol o wirionedd ynghylch cyflwr dymunol y system gyfan.
    • Gwneir pob newid i'r cyflwr dymunol trwy ymrwymiadau yn Git.
    • Mae'r holl baramedrau clwstwr dymunol hefyd i'w gweld yn y clwstwr ei hun. Yn y modd hwn gallwn benderfynu a ydynt yn cyd-daro (cydgyfeirio, cydgyfeirio) neu'n wahanol (gwahanu, dargyfeirio) cyflyrau dymunol ac arsylwi.
  2. Os yw'r cyflyrau dymunol ac a arsylwyd yn wahanol, yna:
    • Mae yna fecanwaith cydgyfeirio sy'n cydamseru'r targed a'r cyflyrau a arsylwyd yn awtomatig yn hwyr neu'n hwyrach. Y tu mewn i'r clwstwr, mae Kubernetes yn gwneud hyn.
    • Mae'r broses yn dechrau ar unwaith gyda rhybudd “ymrwymiad i newid”.
    • Ar ôl peth cyfnod o amser y gellir ei ffurfweddu, gellir anfon rhybudd "gwahan" os yw'r cyflyrau'n wahanol.
  3. Fel hyn, mae'r cyfan yn ymrwymo yn Git achosi diweddariadau gwiriadwy ac analluog i'r clwstwr.
    • Dychweliad yw cydgyfeirio i gyflwr a ddymunir yn flaenorol.
  4. Mae'r cydgyfeiriant yn derfynol. Mae ei ddigwyddiad yn cael ei nodi gan:
    • Dim rhybuddion diff am gyfnod penodol o amser.
    • rhybudd "cydgyfeiriol" (ee webhook, digwyddiad ysgrifennu Git).

Beth yw dargyfeirio?

Gadewch i ni ailadrodd eto: rhaid i bob eiddo clwstwr dymunol fod yn weladwy yn y clwstwr ei hun.

Rhai enghreifftiau o wahaniaeth:

  • Newid yn y ffeil ffurfweddu oherwydd uno canghennau yn Git.
  • Newid yn y ffeil ffurfweddu oherwydd ymrwymiad Git a wnaed gan y cleient GUI.
  • Newidiadau lluosog i'r cyflwr dymunol oherwydd PR yn Git ac yna adeiladu delwedd y cynhwysydd a newidiadau ffurfweddu.
  • Newid yng nghyflwr y clwstwr oherwydd gwall, gwrthdaro adnoddau yn arwain at "ymddygiad gwael", neu wyriad ar hap o'r cyflwr gwreiddiol yn unig.

Beth yw'r mecanwaith cydgyfeirio?

Dyma rai enghreifftiau:

  • Ar gyfer cynwysyddion a chlystyrau, darperir y mecanwaith cydgyfeirio gan Kubernetes.
  • Gellir defnyddio'r un mecanwaith i reoli cymwysiadau a dyluniadau sy'n seiliedig ar Kubernetes (fel Istio a Kubeflow).
  • Mae mecanwaith ar gyfer rheoli'r rhyngweithio gweithredol rhwng Kubernetes, ystorfeydd delwedd a Git yn darparu Gweithredwr GitOps Weave Flux, sy'n rhan Cwmwl Gwehyddu.
  • Ar gyfer peiriannau sylfaen, rhaid i'r mecanwaith cydgyfeirio fod yn ddatganiadol ac yn annibynnol. O'n profiad ein hunain gallwn ddweud hynny Terraform agosaf at y diffiniad hwn, ond mae angen rheolaeth ddynol o hyd. Yn yr ystyr hwn, mae GitOps yn ymestyn y traddodiad o Seilwaith fel Cod.

Mae GitOps yn cyfuno Git â pheiriant cydgyfeirio rhagorol Kubernetes i ddarparu model ar gyfer ecsbloetio.

Mae GitOps yn ein galluogi i ddweud: Dim ond y systemau hynny y gellir eu disgrifio a'u harsylwi y gellir eu hawtomeiddio a'u rheoli.

Mae GitOps wedi'i fwriadu ar gyfer pentwr brodorol y cwmwl cyfan (er enghraifft, Terraform, ac ati)

Nid Kubernetes yn unig yw GitOps. Rydym am i'r system gyfan gael ei gyrru'n ddatganiadol a defnyddio cydgyfeiriant. Wrth y system gyfan rydym yn golygu casgliad o amgylcheddau sy'n gweithio gyda Kubernetes - er enghraifft, “dev clwstwr 1”, “cynhyrchu”, ac ati Mae pob amgylchedd yn cynnwys peiriannau, clystyrau, cymwysiadau, yn ogystal â rhyngwynebau ar gyfer gwasanaethau allanol sy'n darparu data, monitro ac ati.

Sylwch pa mor bwysig yw Terraform i'r broblem strapio cychwyn yn yr achos hwn. Mae'n rhaid i Kubernetes gael ei ddefnyddio yn rhywle, ac mae defnyddio Terraform yn golygu y gallwn gymhwyso'r un llifoedd gwaith GitOps i greu'r haen reoli sy'n sail i Kubernetes a chymwysiadau. Mae hwn yn arfer gorau defnyddiol.

Mae ffocws cryf ar gymhwyso cysyniadau GitOps i haenau ar ben Kubernetes. Ar hyn o bryd, mae yna atebion tebyg i GitOps ar gyfer Istio, Helm, Ksonnet, OpenFaaS a Kubeflow, yn ogystal ag, er enghraifft, ar gyfer Pulumi, sy'n creu haen ar gyfer datblygu cymwysiadau ar gyfer cymylau brodorol.

Kubernetes CI/CD: cymharu GitOps â dulliau eraill

Fel y dywedwyd, mae GitOps yn ddau beth:

  1. Y model gweithredu ar gyfer Kubernetes a brodor cwmwl a ddisgrifir uchod.
  2. Y llwybr i amgylchedd rheoli cymwysiadau sy'n canolbwyntio ar y datblygwr.

I lawer, mae GitOps yn bennaf yn lif gwaith sy'n seiliedig ar wthio Git. Rydyn ni'n ei hoffi hefyd. Ond nid dyna'r cyfan: gadewch i ni nawr edrych ar biblinellau CI/CD.

Mae GitOps yn galluogi defnydd parhaus (CD) ar gyfer Kubernetes

Mae GitOps yn cynnig mecanwaith lleoli parhaus sy'n dileu'r angen am “systemau rheoli lleoli” ar wahân. Mae Kubernetes yn gwneud yr holl waith i chi.

  • Mae angen diweddaru'r rhaglen yn Git. Mae hwn yn ddiweddariad trafodaethol i'r cyflwr dymunol. Yna gwneir "Deployment" o fewn y clwstwr gan Kubernetes ei hun yn seiliedig ar y disgrifiad wedi'i ddiweddaru.
  • Oherwydd natur y ffordd y mae Kubernetes yn gweithio, mae'r diweddariadau hyn yn gydgyfeiriol. Mae hyn yn darparu mecanwaith ar gyfer defnydd parhaus lle mae'r holl ddiweddariadau yn atomig.
  • Nodyn: Cwmwl Gwehyddu yn cynnig gweithredwr GitOps sy'n integreiddio Git a Kubernetes ac yn caniatáu i CD gael ei berfformio trwy gysoni cyflwr dymunol a chyfredol y clwstwr.

Heb kubectl a sgriptiau

Dylech osgoi defnyddio Kubectl i ddiweddaru'ch clwstwr, ac yn enwedig osgoi defnyddio sgriptiau i grwpio gorchmynion kubectl. Yn lle hynny, gyda phiblinell GitOps, gall defnyddiwr ddiweddaru eu clwstwr Kubernetes trwy Git.

Mae buddion yn cynnwys:

  1. Iawn. Gellir cymhwyso grŵp o ddiweddariadau, eu cydgyfeirio a'u dilysu'n derfynol, gan ddod â ni'n agosach at y nod o leoli atomig. Mewn cyferbyniad, nid yw defnyddio sgriptiau yn rhoi unrhyw warant o gydgyfeirio (mwy am hyn isod).
  2. diogelwch. Gan ddyfynnu Kelsey Hightower: “Cyfyngu mynediad i'ch clwstwr Kubernetes i offer awtomeiddio a gweinyddwyr sy'n gyfrifol am ei ddadfygio neu ei gynnal.” Gweld hefyd fy nghyhoeddiad ynghylch diogelwch a chydymffurfio â manylebau technegol, yn ogystal â erthygl am hacio Homebrew trwy ddwyn tystlythyrau o sgript Jenkins a ysgrifennwyd yn ddiofal.
  3. Profiad y Defnyddiwr. Mae Kubectl yn datgelu mecaneg y model gwrthrych Kubernetes, sy'n eithaf cymhleth. Yn ddelfrydol, dylai defnyddwyr ryngweithio â'r system ar lefel uwch o dynnu. Yma byddaf eto'n cyfeirio at Kelsey ac yn argymell gwylio crynodeb o'r fath.

Gwahaniaeth rhwng CI a CD

Mae GitOps yn gwella modelau CI/CD presennol.

Offeryn cerddorfaol yw gweinydd CI modern. Yn benodol, mae'n offeryn ar gyfer trefnu piblinellau CI. Mae'r rhain yn cynnwys adeiladu, profi, uno â chefnffyrdd, ac ati. Mae gweinyddwyr CI yn awtomeiddio rheolaeth piblinellau aml-gam cymhleth. Temtasiwn gyffredin yw sgriptio set o ddiweddariadau Kubernetes a'i redeg fel rhan o biblinell i wthio newidiadau i'r clwstwr. Yn wir, dyma beth mae llawer o arbenigwyr yn ei wneud. Fodd bynnag, nid yw hyn yn optimaidd, a dyma pam.

Dylid defnyddio CI i wthio diweddariadau i'r gefnffordd, a dylai clwstwr Kubernetes newid ei hun yn seiliedig ar y diweddariadau hynny i reoli'r CD yn fewnol. Rydyn ni'n ei alw model tynnu ar gyfer CD, yn wahanol i'r model gwthio CI. CD yn rhan offeryniaeth amser rhedeg.

Pam na ddylai Gweinyddwyr CI Wneud CDs trwy Ddiweddariadau Uniongyrchol yn Kubernetes

Peidiwch â defnyddio gweinydd CI i drefnu diweddariadau uniongyrchol i Kubernetes fel set o swyddi CI. Dyma'r gwrth-batrwm rydyn ni'n sôn amdano wedi dweud yn barod ar eich blog.

Gadewch i ni fynd yn ôl at Alice a Bob.

Pa broblemau oedden nhw'n eu hwynebu? Mae gweinydd CI Bob yn cymhwyso'r newidiadau i'r clwstwr, ond os bydd yn damwain yn y broses, ni fydd Bob yn gwybod ym mha gyflwr y mae (neu y dylai) y clwstwr fod na sut i'w drwsio. Mae'r un peth yn wir rhag ofn y bydd llwyddiant.

Gadewch i ni dybio bod tîm Bob wedi adeiladu delwedd newydd ac yna wedi clytio eu gosodiadau i ddefnyddio'r ddelwedd (i gyd o'r biblinell CI).

Os yw'r ddelwedd yn adeiladu'n normal, ond bod y biblinell yn methu, bydd yn rhaid i'r tîm ddarganfod:

  • A yw'r diweddariad wedi'i gyflwyno?
  • A ydym yn lansio adeilad newydd? A fydd hyn yn arwain at sgîl-effeithiau diangen - gyda'r posibilrwydd o gael dau adeiladwaith o'r un ddelwedd ddigyfnewid?
  • A ddylem aros am y diweddariad nesaf cyn rhedeg yr adeiladu?
  • Beth yn union aeth o'i le? Pa gamau sydd angen eu hailadrodd (a pha rai sy'n ddiogel i'w hailadrodd)?

Nid yw sefydlu llif gwaith seiliedig ar Git yn gwarantu na fydd tîm Bob yn dod ar draws y problemau hyn. Gallant wneud camgymeriad o hyd gyda'r gwthio ymrwymo, y tag, neu ryw baramedr arall; fodd bynnag, mae'r dull hwn yn dal i fod yn llawer agosach at ddull gweithredu popeth-neu-ddim amlwg.

I grynhoi, dyma pam na ddylai gweinyddwyr CI ddelio â CD:

  • Nid yw sgriptiau diweddaru bob amser yn benderfynol; Mae'n hawdd gwneud camgymeriadau ynddynt.
  • Nid yw gweinyddwyr CI yn cydgyfeirio i'r model clwstwr datganiadol.
  • Mae'n anodd gwarantu analluedd. Rhaid i ddefnyddwyr ddeall semanteg dwfn y system.
  • Mae'n anoddach gwella o fethiant rhannol.

Nodyn am Helm: Os ydych chi am ddefnyddio Helm, rydym yn argymell ei gyfuno â gweithredwr GitOps fel Fflwcs-Helm. Bydd hyn yn helpu i sicrhau cydgyfeiriant. Nid yw Helm ei hun yn benderfynol nac yn atomig.

GitOps fel y ffordd orau o weithredu Cyflenwi Parhaus ar gyfer Kubernetes

Mae tîm Alice a Bob yn gweithredu GitOps ac yn darganfod ei bod wedi dod yn llawer haws gweithio gyda chynhyrchion meddalwedd, cynnal perfformiad uchel a sefydlogrwydd. Gadewch i ni orffen yr erthygl hon gyda darlun yn dangos sut olwg sydd ar eu dull newydd. Cofiwch mai am gymwysiadau a gwasanaethau yr ydym yn siarad yn bennaf, ond gellir defnyddio GitOps i reoli platfform cyfan.

Model gweithredu ar gyfer Kubernetes

Edrychwch ar y diagram canlynol. Mae’n cyflwyno Git a’r ystorfa delweddau cynhwysydd fel adnoddau a rennir ar gyfer dau gylch bywyd cerddorfaol:

  • Piblinell integreiddio barhaus sy'n darllen ac yn ysgrifennu ffeiliau i Git ac sy'n gallu diweddaru ystorfa o ddelweddau cynhwysydd.
  • Piblinell Runtime GitOps sy'n cyfuno defnydd â rheolaeth ac arsylwi. Mae'n darllen ac yn ysgrifennu ffeiliau i Git a gall lawrlwytho delweddau cynhwysydd.

Beth yw'r prif ganfyddiadau?

  1. Gwahanu pryderon: Sylwch mai dim ond trwy ddiweddaru Git neu'r ystorfa ddelwedd y gall y ddwy biblinell gyfathrebu. Mewn geiriau eraill, mae wal dân rhwng CI a'r amgylchedd amser rhedeg. Rydyn ni'n ei alw'n "wal dân ansymudedd" (wal dân ansymudedd), gan fod pob diweddariad ystorfa yn creu fersiynau newydd. I gael rhagor o wybodaeth am y pwnc hwn, cyfeiriwch at sleidiau 72-87 y cyflwyniad hwn.
  2. Gallwch ddefnyddio unrhyw weinydd CI a Git: Mae GitOps yn gweithio gydag unrhyw gydran. Gallwch barhau i ddefnyddio'ch hoff weinyddion CI a Git, storfeydd delweddau, a switiau prawf. Mae angen eu gweinydd CI/Git neu ystorfa ddelweddau eu hunain ar bron pob offeryn Cyflwyno Parhaus arall ar y farchnad. Gall hyn ddod yn ffactor sy'n cyfyngu ar ddatblygiad brodor y cwmwl. Gyda GitOps, gallwch ddefnyddio offer cyfarwydd.
  3. Digwyddiadau fel offeryn integreiddio: Cyn gynted ag y bydd data yn Git yn cael ei ddiweddaru, mae Weave Flux (neu weithredwr Weave Cloud) yn hysbysu amser rhedeg. Pryd bynnag y bydd Kubernetes yn derbyn set newid, mae Git yn cael ei ddiweddaru. Mae hyn yn darparu model integreiddio syml ar gyfer trefnu llifoedd gwaith ar gyfer GitOps, fel y dangosir isod.

Casgliad

Mae GitOps yn darparu'r gwarantau diweddaru cryf sy'n ofynnol gan unrhyw offeryn CI / CD modern:

  • awtomeiddio;
  • cydgyfeiriant;
  • analluedd;
  • penderfyniaeth.

Mae hyn yn bwysig oherwydd ei fod yn cynnig model gweithredol ar gyfer datblygwyr brodorol cwmwl.

  • Mae offer traddodiadol ar gyfer rheoli a monitro systemau yn gysylltiedig â thimau gweithrediadau sy'n gweithredu o fewn llyfr rhedeg (set o weithdrefnau a gweithrediadau arferol - tua. transl.), yn gysylltiedig â defnydd penodol.
  • Mewn rheolaeth frodorol cwmwl, offer arsylwi yw'r ffordd orau o fesur canlyniadau gosodiadau fel y gall y tîm datblygu ymateb yn gyflym.

Dychmygwch lawer o glystyrau wedi'u gwasgaru ar draws gwahanol gymylau a llawer o wasanaethau gyda'u timau a'u cynlluniau defnyddio eu hunain. Mae GitOps yn cynnig model amrywiad ar raddfa ar gyfer rheoli'r holl helaethrwydd hwn.

PS gan y cyfieithydd

Darllenwch hefyd ar ein blog:

Dim ond defnyddwyr cofrestredig all gymryd rhan yn yr arolwg. Mewngofnodios gwelwch yn dda.

Oeddech chi'n gwybod am GitOps cyn i'r ddau gyfieithiad hyn ymddangos ar Habré?

  • Do, roeddwn i'n gwybod popeth

  • Dim ond yn arwynebol

  • Dim

Pleidleisiodd 35 o ddefnyddwyr. Ataliodd 10 o ddefnyddwyr.

Ffynhonnell: hab.com

Ychwanegu sylw