Inona no atao hoe GitOps?

Fanamarihana. transl.: Taorian'ny famoahana vao haingana ara-nofo momba ny fomba fisintonana sy fanosehana ao amin'ny GitOps, hitanay ny fahalianana amin'ity maodely ity amin'ny ankapobeny, saingy vitsy dia vitsy ny famoahana amin'ny teny rosiana momba ity lohahevitra ity (tsy misy na iray aza ao amin'ny Habré). Noho izany, faly izahay manolotra ny sainao ny fandikana lahatsoratra iray hafa - na dia efa ho herintaona lasa izay aza! - avy amin'ny Weaveworks, ny lohany namorona ny teny hoe "GitOps." Ny lahatsoratra dia manazava ny fototry ny fomba fiasa sy ny fahasamihafana lehibe amin'ny efa misy.

Herintaona lasa izay dia namoaka izahay fampidirana ny GitOps. Tamin'izany fotoana izany, nizara ny fomba nananganan'ny ekipan'ny Weaveworks SaaS mifototra tanteraka amin'ny Kubernetes ary namolavola fomba fanao tsara indrindra amin'ny fametrahana, fitantanana ary fanaraha-maso amin'ny tontolo teratany rahona.

Nalaza ilay lahatsoratra. Nanomboka niresaka momba ny GitOps ny olona hafa ary nanomboka namoaka fitaovana vaovao ho an'ny git push, famolavolana, ZAVA-MIAFINA, asa, fampidirana mitohy sy ny sisa. Niseho tao amin'ny tranokalanay maro be publications sy ny tranga fampiasana GitOps. Mbola manana fanontaniana ihany anefa ny olona sasany. Inona no maha samy hafa ny modely amin'ny nentim-paharazana? fotodrafitrasa ho code ary fanaterana mitohy (fifampiresahana tsy tapaka)? Ilaina ve ny mampiasa Kubernetes?

Tsy ela izahay dia nahatsapa fa ilaina ny famaritana vaovao, manolotra:

  1. Ohatra sy tantara maro be;
  2. Famaritana manokana ny GitOps;
  3. Ampitahao amin'ny fanaterana mitohy mahazatra.

Ato amin'ity lahatsoratra ity dia nanandrana niresaka momba ireo lohahevitra rehetra ireo izahay. Izy io dia manome fampidiran-dresaka vaovao momba ny GitOps sy ny fomba fijery developer sy CI/CD. Kubernetes no tena ifantohanay, na dia azo atao ankapobeny aza ny modely.

Hihaona amin'ny GitOps

Alao sary an-tsaina i Alice. Izy no mitantana ny Fianakaviana, izay manome fiantohana ara-pahasalamana, fiara, trano ary fitsangatsanganana ho an'ny olona sahirana loatra ka tsy mahafantatra ny fidirana sy ny ivelan'ny fifanarahana. Nanomboka tetik'asa lafiny ny orinasany fony i Alice niasa tao amin'ny banky ho mpahay siansa momba ny data. Indray andro dia nahatsapa izy fa afaka mampiasa algorithm amin'ny ordinatera mandroso kokoa mba handinihana ny angon-drakitra sy handrafetana fonosana fiantohana. Mpampiasa vola no namatsy vola ny tetikasa, ary ankehitriny ny orinasany dia mitondra mihoatra ny 20 tapitrisa dolara isan-taona ary mitombo haingana. Amin'izao fotoana izao, mampiasa olona 180 amin'ny toerana samihafa. Tafiditra ao anatin'izany ny ekipa teknolojia izay mamolavola, mitazona ny tranokala, angon-drakitra ary manadihady ny fototry ny mpanjifa. Ny ekipa misy olona 60 dia tarihin'i Bob, tale teknikan'ny orinasa.

Ny ekipan'i Bob dia mametraka rafitra famokarana ao amin'ny rahona. Ny fampiharana fototra azy ireo dia mandeha amin'ny GKE, manararaotra ny Kubernetes amin'ny Google Cloud. Ankoatr'izay, mampiasa angon-drakitra sy fitaovana analyse isan-karazany amin'ny asany izy ireo.

Ny Fiantohana Fianakaviana dia tsy nikasa hampiasa kaontenera, fa tratran'ny hafanam-pon'ny Docker. Vetivety dia hitan'ny orinasa fa nanamora ny fametrahana cluster ny GKE mba hizaha toetra ireo endri-javatra vaovao. Nampiana ny Jenkins ho an'ny CI sy Quay mba handaminana ny rejisitry ny container, nosoratana ho an'i Jenkins ny scripts izay nanosika ireo kaontenera sy fanitsiana vaovao ho an'ny GKE.

Nisy fotoana lasa. Diso fanantenana i Alice sy i Bob tamin'ny fanatanterahana ny fomba nofidiny sy ny fiantraikany amin'ny orinasa. Tsy nanatsara ny vokatra araka ny nantenain'ny ekipa ny fampidirana kaontenera. Indraindray dia tapaka ny fametrahana, ary tsy fantatra raha ny fanovana code no tokony homen-tsiny. Sarotra ihany koa ny nanara-maso ny fiovan'ny config. Matetika dia nilaina ny namorona kluster vaovao ary mamindra ny rindranasa amin'izany, satria io no fomba mora indrindra hanafoanana ny korontana izay nahatonga ny rafitra. Natahotra i Alice sao hiharatsy ny toe-draharaha rehefa mivoatra ny fampiharana (ankoatra izany, misy tetikasa vaovao mifototra amin'ny fianarana milina). Nanao automatique ny ankamaroan'ny asa i Bob ary tsy azony hoe maninona no mbola tsy milamina ny fantsona, tsy mirefy tsara, ary mila fandraisana an-tanana tsindraindray?

Avy eo dia nianatra momba ny GitOps izy ireo. Io fanapahan-kevitra io no tena nilain'izy ireo mba handrosoana amim-pahatokiana.

Alice sy Bob dia nandre momba ny Git, DevOps, ary ny fotodrafitrasa ho toy ny code workflows nandritra ny taona maro. Ny mampiavaka an'i GitOps dia ny mitondra andiana fanao tsara indrindra—na voafaritra tsara na ara-dalàna—amin'ny fampiharana ireo hevitra ireo amin'ny tontolon'ny Kubernetes. Ity lohahevitra ity nitsangana imbetsaka, anisan'izany ny Weaveworks bilaogy.

Family Insurance dia manapa-kevitra ny hampihatra GitOps. Ny orinasa ankehitriny dia manana maodely fampandehanana mandeha ho azy izay mifanaraka amin'ny Kubernetes ary mitambatra hafainganam-pandeha amin'ny fahamarinan-toeranasatria izy ireo:

  • nahita fa nitombo avo roa heny ny vokatra azon'ny ekipa tsy nisy adala;
  • nijanona nanompo scripts. Fa kosa, afaka mifantoka amin'ny endri-javatra vaovao izy ireo izao ary manatsara ny fomba injeniera - ohatra, ny fampidirana ny famokarana canary sy ny fanatsarana ny fitsapana;
  • nohatsarainay ny fizotry ny fampielezana ka zara raha rava;
  • nahazo fahafahana hamerina ny fametrahana aorian'ny tsy fahombiazan'ny ampahany tsy misy fitsabahana amin'ny tanana;
  • novidina nampiasainaоFahatokiana bebe kokoa amin'ny rafitra fanaterana. Hitan'i Alice sy Bob fa afaka mizara ny ekipa ho ekipa microservice miasa mifanitsy izy ireo;
  • afaka manao fanovana 30-50 isan'andro amin'ny tetikasa amin'ny alàlan'ny ezaka ataon'ny vondrona tsirairay ary manandrana teknika vaovao;
  • mora ny misarika mpamorona vaovao amin'ny tetikasa, izay manana fahafahana hamoaka fanavaozana amin'ny famokarana amin'ny alàlan'ny fangatahana fisintonana ao anatin'ny ora vitsivitsy;
  • mandalo mora foana ny fanaraha-maso ao anatin'ny rafitry ny SOC2 (ho fanajana ny mpanome tolotra amin'ny fitakiana ny fitantanana angon-drakitra azo antoka; vakio bebe kokoa, ohatra, eto - eo ho eo. transl.).

Inona no nitranga?

GitOps dia zavatra roa:

  1. Modely miasa ho an'ny Kubernetes sy rahona teratany. Izy io dia manome fomba fanao tsara indrindra amin'ny fametrahana, fitantanana ary fanaraha-maso ny cluster sy ny fampiharana containerized. Famaritana kanto amin'ny endrika slide iray от Luis Faceira:
  2. Ny lalana mankany amin'ny famoronana tontolo fitantanana fampiharana mifototra amin'ny developer. Mampihatra ny workflow Git amin'ny asa sy ny fampandrosoana izahay. Mariho fa tsy momba ny Git push fotsiny izany, fa momba ny fandaminana ny fitaovana CI/CD sy UI/UX manontolo.

Teny vitsivitsy momba ny Git

Raha tsy zatra ny rafitra fanaraha-maso dikan-teny sy ny workflow mifototra amin'ny Git ianao, dia manoro hevitra izahay ny hianatra momba azy ireo. Ny fiasana amin'ny sampana sy ny fisintonana fangatahana dia mety ho toy ny majika mainty amin'ny voalohany, saingy mendrika ny ezaka ny tombony. Eto lahatsoratra tsara manomboka.

Ahoana ny fiasan'i Kubernetes

Ao amin'ny tantaranay, nitodika tany amin'ny GitOps i Alice sy i Bob rehefa niara-niasa tamin'i Kubernetes nandritra ny fotoana kelikely. Eny tokoa, ny GitOps dia mifandray akaiky amin'ny Kubernetes - maodely miasa ho an'ny fotodrafitrasa sy fampiharana mifototra amin'ny Kubernetes.

Inona no omen'i Kubernetes ho an'ny mpampiasa?

Ireto misy endri-javatra lehibe sasany:

  1. Ao amin'ny modely Kubernetes, ny zava-drehetra dia azo faritana amin'ny endrika fanambarana.
  2. Ny mpizara Kubernetes API dia mandray ity fanambarana ity ho fampidirana ary avy eo dia miezaka hatrany ny hampiditra ny cluster ho any amin'ny fanjakana voalaza ao amin'ny fanambarana.
  3. Ny fanambarana dia ampy hamaritana sy hitantana ireo enta-mavesatra isan-karazany—“applications”.
  4. Vokatr'izany dia misy fiovana amin'ny fampiharana sy ny cluster noho ny:
    • fiovana amin'ny sary fitoeran-javatra;
    • fiovana amin'ny famaritana fanambarana;
    • lesoka eo amin'ny tontolo iainana - ohatra, fianjeran'ny kaontenera.

Ny fahaiza-manaon'i Kubernetes lehibe amin'ny convergence

Rehefa misy administratera manao fanovana fanamafisam-peo, ny Kubernetes orkestra dia hampihatra azy ireo amin'ny kluster raha mbola eo ny toerany. tsy hanakaiky ny fanovana vaovao. Ity maodely ity dia miasa amin'ny loharano Kubernetes rehetra ary azo itarina miaraka amin'ny Custom Resource Definitions (CRDs). Noho izany, ny fametrahana Kubernetes dia manana ireto toetra mahafinaritra manaraka ireto:

  • automatique: Ny fanavaozam-baovao Kubernetes dia manome mekanika hanamarihana ny fizotran'ny fampiharana ny fanovana amin'ny fomba tsara sy ara-potoana.
  • Convergence: Hanohy hanandrana fanavaozana mandra-pahombiazana ny Kubernetes.
  • Idempotency: Mitondra vokatra mitovy ny fampiharana ny convergence miverimberina.
  • Determinisme: Rehefa ampy ny loharanon-karena dia miankina amin'ny fanjakana tiana ihany ny toetry ny kluster nohavaozina.

Ahoana ny fiasan'ny GitOps

Efa nianatra momba ny Kubernetes izahay mba hanazavana ny fomba fiasan'ny GitOps.

Andao hiverina any amin'ireo ekipa microservice an'ny Family Insurance. Inona matetika no tsy maintsy ataon'izy ireo? Jereo ity lisitra eto ambany ity (raha toa ka toa hafahafa na tsy mahazatra ny zavatra ao anatiny dia aza misalasala manakiana ary mijanòna miaraka aminay). Ohatra fotsiny amin'ny workflows mifototra amin'ny Jenkins ireo. Misy dingana maro hafa rehefa miasa amin'ny fitaovana hafa.

Ny zava-dehibe dia ny mahita isika fa ny fanavaozana tsirairay dia mifarana amin'ny fanovana ny rakitra fikirakirana sy ny tahiry Git. Ireo fiovana amin'ny Git ireo dia mahatonga ny "operateur GitOps" hanavao ny cluster:

1. Fomba fiasa: "Jenkins build - master branch".
Lisitry ny asa:

  • Jenkins dia nanosika sary voamarika ho any Quay;
  • Jenkins dia manosika ny config sy ny sarin'ny Helm mankany amin'ny siny fitahirizana master;
  • Ny asa rahona dia mandika ny config sy ny tabilao avy amin'ny siny fitahirizana master mankany amin'ny fitahirizana master Git;
  • Ny mpandraharaha GitOps dia manavao ny cluster.

2. Jenkins build - sampana famoahana na hotfix:

  • Jenkins dia manosika sary tsy voasokajy ho any Quay;
  • Jenkins dia manosika ny config sy ny sarin'ny Helm mankany amin'ny siny fitehirizana an-tsehatra;
  • Ny fiasan'ny rahona dia mandika ny config sy ny tabilao avy amin'ny siny fitahirizana an-tsehatra mankany amin'ny fitehirizam-bokatra Git;
  • Ny mpandraharaha GitOps dia manavao ny cluster.

3. Jenkins build - mivoatra na manasongadina sampana:

  • Jenkins dia manosika sary tsy voasokajy ho any Quay;
  • Jenkins dia manosika ny config sy ny sarin'ny Helm ao anaty siny fitehirizana fampandrosoana;
  • Ny asa rahona dia mandika ny config sy ny tabilao avy amin'ny siny fitehirizana fampandrosoana mankany amin'ny fitehirizam-bokatra Git;
  • Ny mpandraharaha GitOps dia manavao ny cluster.

4. Manampy mpanjifa vaovao:

  • Ny mpitantana na ny mpitantana (LCM/ops) dia miantso an'i Gradle mba hametraka sy hanitsy voalohany ny mpifandanja entana (NLBs) amin'ny tambajotra;
  • LCM/ops dia manao config vaovao hanomanana ny fametrahana ny fanavaozana;
  • Ny mpandraharaha GitOps dia manavao ny cluster.

Famaritana fohy momba ny GitOps

  1. Farito ny toetry ny rafitra manontolo amin'ny alàlan'ny fanoritsoritana fanambarana ho an'ny tontolo tsirairay (ao amin'ny tantarantsika, ny ekipan'i Bob dia mamaritra ny rafitra manontolo ao amin'ny Git).
    • Ny tahiry Git no loharano tokana momba ny fahamarinana momba ny toetry ny rafitra iray manontolo.
    • Ny fanovana rehetra amin'ny fanjakana irina dia atao amin'ny alàlan'ny fanolorana ao amin'ny Git.
    • Ny masontsivana kluster rehetra tiana dia hita ao amin'ny kluster ihany koa. Amin'izany fomba izany no ahafantarantsika raha mifanojo izy ireo (converge, mifamory) na samy hafa (diverge, manalavitra) fanjakana tiana sy tandremana.
  2. Raha tsy mitovy ny fanjakana tiana sy voamarika dia:
    • Misy rafitra convergence izay na ho ela na ho haingana synchronize ho azy ny tanjona sy ny tsikaritra fanjakana. Ao anatin'ny cluster dia manao izany i Kubernetes.
    • Ny dingana dia manomboka avy hatrany amin'ny fanairana "fiovana natao".
    • Aorian'ny fe-potoana azo amboarina dia azo alefa ny fanairana "tsy mitovy" raha tsy mitovy ny fanjakana.
  3. Amin'izany fomba izany, ny fanoloran-tena rehetra ao amin'ny Git dia miteraka fanavaozam-baovao azo hamarinina sy idempotent amin'ny cluster.
    • Ny fiverenana dia fifandonana amin'ny fanjakana efa nirina.
  4. Ny convergence dia farany. Ny fisehoany dia aseho amin'ny:
    • Tsy misy fanairana samihafa mandritra ny fe-potoana voafaritra.
    • Fampandrenesana "converged" (oh: webhook, hetsika Git writeback).

Inona no atao hoe divergence?

Avereno indray: Ny fananana cluster rehetra irina dia tsy maintsy ho hita ao amin'ny cluster mihitsy.

Ohatra sasany amin'ny divergence:

  • Fiovana eo amin'ny fisie fichier noho ny fampifangaroana sampana ao amin'ny Git.
  • Fiovana eo amin'ny rakitra fikirakirana noho ny commit Git nataon'ny mpanjifa GUI.
  • Fiovana marobe amin'ny fanjakana irina noho ny PR ao amin'ny Git arahin'ny fananganana ny sarin'ny container sy ny fanovana config.
  • Fiovan'ny toetry ny cluster noho ny hadisoana, fifandirana amin'ny loharanon-karena miteraka "fitondran-tena ratsy", na fiviliana kisendrasendra fotsiny amin'ny fanjakana tany am-boalohany.

Inona no fomba fiasan'ny convergence?

Ohatra vitsivitsy:

  • Ho an'ny kaontenera sy kluster, ny mekanika convergence dia omen'ny Kubernetes.
  • Azo ampiasaina amin'ny fitantanana ny rindranasa sy ny endrika miorina amin'ny Kubernetes (toa an'i Istio sy Kubeflow) io rafitra io.
  • Mekanisma iray hitantana ny fifandraisana miasa eo amin'ny Kubernetes, ny fitahirizana sary ary ny Git dia manome GitOps operator Weave Flux, izay ampahany Weave Cloud.
  • Ho an'ny milina fototra, ny mekanika convergence dia tsy maintsy atao fanambarana sy mahaleotena. Avy amin'ny zavatra niainantsika manokana dia afaka milaza izany isika Terraform akaiky indrindra amin'io famaritana io, nefa mbola mitaky fifehezana olombelona. Amin'io lafiny io, GitOps dia manitatra ny fomban-drazana amin'ny fotodrafitrasa ho Code.

GitOps dia manambatra ny Git amin'ny motera convergence tsara indrindra an'ny Kubernetes mba hanomezana modely ho an'ny fitrandrahana.

GitOps dia mamela antsika hiteny hoe: Ireo rafitra azo faritana sy jerena ihany no azo automatique sy fehezina.

GitOps dia natao ho an'ny stack teratany rahona manontolo (ohatra, Terraform, sns.)

GitOps dia tsy Kubernetes fotsiny. Tianay ny handroaka ny rafitra manontolo amin'ny fomba ofisialy ary hampiasa ny convergence. Ny dikan'ny rafitra manontolo dia fitambarana tontolo miasa miaraka amin'ny Kubernetes - ohatra, "dev cluster 1", "famokarana", sns. Ny tontolo tsirairay dia misy milina, cluster, fampiharana, ary koa interface tsara ho an'ny serivisy ivelany izay manome data, fanaraha-maso. ary etc.

Mariho ny maha-zava-dehibe ny Terraform amin'ny olana bootstrap amin'ity tranga ity. Tsy maintsy apetraka any amin'ny toerana iray ny Kubernetes, ary ny fampiasana Terraform dia midika fa afaka mampihatra ireo rindranasa GitOps mitovy amin'izany isika mba hamoronana ny sosona fanaraha-maso izay manohana ny Kubernetes sy ny fampiharana. Ity dia fomba fanao tsara indrindra.

Misy fifantohana mafy amin'ny fampiharana ny hevitra GitOps amin'ny sosona eo an-tampon'ny Kubernetes. Amin'izao fotoana izao dia misy vahaolana karazana GitOps ho an'ny Istio, Helm, Ksonnet, OpenFaaS ary Kubeflow, ary koa, ohatra, ho an'ny Pulumi, izay mamorona sosona ho an'ny fampivoarana fampiharana ho an'ny teratany rahona.

Kubernetes CI/CD: fampitahana GitOps amin'ny fomba hafa

Araka ny voalaza dia zavatra roa ny GitOps:

  1. Ny maodely miasa ho an'ny Kubernetes sy rahona teratany voalaza etsy ambony.
  2. Ny lalana mankany amin'ny tontolo fitantanana fampiharana mifototra amin'ny developer.

Ho an'ny maro, ny GitOps dia workflow mifototra amin'ny Git pushes. Tianay koa izy. Saingy tsy izay ihany: andao hojerentsika ny fantsona CI/CD.

GitOps dia mamela ny fandefasana mitohy (CD) ho an'ny Kubernetes

GitOps dia manolotra mekanika fandefasana mitohy izay manafoana ny filana "rafitra fitantanana fanapariahana" misaraka. Kubernetes no manao ny asa rehetra ho anao.

  • Ny fanavaozana ny fampiharana dia mila fanavaozana ao amin'ny Git. Ity dia fanavaozana ara-barotra amin'ny fanjakana tiana. Ny "Deployment" dia atao ao anatin'ny cluster avy amin'i Kubernetes mihitsy mifototra amin'ny famaritana nohavaozina.
  • Noho ny toetran'ny fomba fiasan'i Kubernetes dia mitambatra ireo fanavaozana ireo. Izany dia manome mekanika ho an'ny fandefasana mitohy izay misy ny fanavaozana rehetra dia atomika.
  • Fanamarihana: Weave Cloud dia manolotra mpandraharaha GitOps izay mampiditra ny Git sy Kubernetes ary mamela ny CD ho tanterahina amin'ny alàlan'ny fampihavanana ny toetry ny cluster.

Tsy misy kubectl sy script

Tokony hialana amin'ny fampiasana Kubectl ianao hanavaozana ny klustero, ary indrindra fa tsy hampiasa script mba hanakambanana ny baiko kubectl. Fa kosa, miaraka amin'ny fantsona GitOps, ny mpampiasa dia afaka manavao ny cluster Kubernetes amin'ny alàlan'ny Git.

Anisan'ny tombony ny:

  1. TSARA. Vondrona fanavaozam-baovao azo ampiharina, mifamatotra ary voamarina farany, mitondra antsika hanakaiky kokoa ny tanjon'ny fametrahana atomika. Mifanohitra amin'izany, ny fampiasana script dia tsy manome antoka ny fifanampiana (bebe kokoa amin'ity etsy ambany ity).
  2. fiarovana. nitanisa Kelsey Hightower: "Fehezo ny fidirana amin'ny cluster Kubernetes anao amin'ny fitaovana automatique sy ny mpitantana izay tompon'andraikitra amin'ny debugging na fikojakojana azy." Jereo ihany koa ny publication-ko momba ny fiarovana sy ny fanarahana ny fepetra ara-teknika, ary koa lahatsoratra momba ny hacking Homebrew amin'ny fangalarana taratasy fanamarinana avy amin'ny soratra Jenkins nosoratana tsy am-piheverana.
  3. User Experience. Kubectl dia mampiseho ny mekanika amin'ny modelin'ny zavatra Kubernetes, izay sarotra be. Ny tsara indrindra, ny mpampiasa dia tokony hifanerasera amin'ny rafitra amin'ny ambaratonga ambony kokoa amin'ny abstraction. Eto indray aho dia hiresaka an'i Kelsey ary manoro hevitra ny hijery resume toy izany.

Ny fahasamihafana eo amin'ny CI sy CD

GitOps dia manatsara ny modely CI/CD efa misy.

Ny mpizara CI maoderina dia fitaovana orkestra. Indrindra indrindra, fitaovana handrindrana ny fantsona CI izy io. Anisan'izany ny fananganana, fitsapana, fampifangaroana amin'ny vatan-kazo, sns. Ny mpizara CI dia manara-maso ny fitantanana ireo fantsona maromaro misy dingana maromaro. Ny fakam-panahy mahazatra dia ny manoratra andiana fanavaozana Kubernetes ary mampandeha izany ho ampahany amin'ny fantsona hanosehana ny fanovana amin'ny cluster. Izany tokoa no ataon’ny manam-pahaizana maro. Na izany aza, tsy mety izany, ary izao no antony.

Ny CI dia tokony hampiasaina hanosehana ny fanavaozam-baovao amin'ny vatan-kazo, ary ny kluster Kubernetes dia tokony hiova ny tenany mifototra amin'ireo fanavaozana ireo hitantana ny CD ao anatiny. Antsoinay izany misintona modely ho an'ny CD, tsy toy ny modely fanosehana CI. CD dia ampahany fandrindrana ny fotoana.

Nahoana ny CI Server no tsy tokony hanao CD amin'ny alàlan'ny fanavaozana mivantana ao amin'ny Kubernetes

Aza mampiasa mpizara CI handrindra ny fanavaozana mivantana amin'ny Kubernetes ho andiana asa CI. Io ilay anti-pattern resahina efa voalaza amin'ny blôginao.

Andao hiverina amin'i Alice sy Bob.

Inona no olana natrehin’izy ireo? Ny mpizara CI an'i Bob dia mampihatra ny fanovana amin'ny kluster, fa raha mianjera ao anatin'ny dingana izany, dia tsy ho fantatr'i Bob hoe inona ny toeran'ny cluster (na tokony hisy) na ny fomba hanamboarana azy. Toy izany koa raha misy fahombiazana.

Andeha hatao hoe nanangana sary vaovao ny ekipan'i Bob ary avy eo dia nanamboatra ny fametrahana azy ireo mba hametrahana ilay sary (avy amin'ny fantsona CI daholo).

Raha manorina ara-dalàna ny sary, saingy tsy nahomby ny fantsona, dia tsy maintsy fantatr'ilay ekipa:

  • Efa nivoaka ve ny fanavaozana?
  • Mandefa trano vaovao ve isika? Hiteraka voka-dratsy tsy ilaina ve izany - miaraka amin'ny mety hisian'ny fananganana roa amin'ny sary tsy miova?
  • Tokony hiandry ny fanavaozana manaraka ve isika alohan'ny hanaovana ny fananganana?
  • Inona marina no tsy nety? Inona avy ireo dingana tokony haverina (ary iza amin'ireo no azo averina)?

Ny fametrahana rindranasa mifototra amin'ny Git dia tsy manome antoka fa tsy hiatrika ireo olana ireo ny ekipan'i Bob. Mbola afaka manao fahadisoana izy ireo amin'ny fanosehana commit, ny marika, na ny mari-pamantarana hafa; na izany aza, io fomba fiasa io dia mbola manakaiky kokoa ny fomba fijery mibaribary na tsia.

Raha fintinina, izao no antony tsy tokony handraisana CD ny mpizara CI:

  • Ny script fanavaozana dia tsy voafaritra foana; Mora ny manao fahadisoana amin'izy ireo.
  • Ny mpizara CI dia tsy mifandray amin'ny modely cluster declarative.
  • Sarotra ny miantoka ny tsy fahampian-tsakafo. Ny mpampiasa dia tsy maintsy mahatakatra ny semantika lalina amin'ny rafitra.
  • Sarotra kokoa ny miverina amin'ny tsy fahombiazana amin'ny ampahany.

Fanamarihana momba ny Helm: Raha te hampiasa Helm ianao dia manoro hevitra ny hanambatra azy amin'ny mpandraharaha GitOps toy ny Flux-Helm. Izany dia hanampy hiantohana ny convergence. Sady tsy determinista no tsy atomika ny fiarovan-doha.

GitOps ho fomba tsara indrindra hampiharana ny fandefasana mitohy ho an'ny Kubernetes

Ny ekipan'i Alice sy Bob dia mampihatra ny GitOps ary mahita fa lasa mora kokoa ny miasa miaraka amin'ny vokatra rindrambaiko, mitazona ny fahombiazany sy ny fahamarinan-toerana. Andeha hamarana ity lahatsoratra ity amin'ny fanoharana mampiseho ny endriky ny fomba fiasa vaovaon'izy ireo. Ataovy ao an-tsaina fa ny ankamaroantsika dia miresaka momba ny fampiharana sy ny serivisy, fa ny GitOps dia azo ampiasaina hitantana sehatra iray manontolo.

Modely miasa ho an'ny Kubernetes

Jereo ity kisary manaraka ity. Izy io dia manolotra an'i Git sy ny fitahirizana sarin'ny container ho loharano iombonana ho an'ny tsingerin'ny fiainana roa voarindra:

  • Fantsona fampidirana mitohy izay mamaky sy manoratra rakitra amin'ny Git ary afaka manavao ny fitahirizana sary misy container.
  • Fantsona Runtime GitOps izay mampifandray ny fametrahana amin'ny fitantanana sy ny fanaraha-maso. Mamaky sy manoratra rakitra ao amin'ny Git izy ary afaka misintona sary fitoeran-javatra.

Inona no tena tsikaritra?

  1. Fanasarahana ny ahiahy: Mariho fa ny fantsona roa dia tsy afaka mifandray afa-tsy amin'ny fanavaozana ny Git na ny fitahirizana sary. Raha lazaina amin'ny teny hafa, dia misy firewall eo anelanelan'ny CI sy ny tontolo iainana. Antsoinay hoe "firewall tsy miova" izany. (firewall tsy miova), satria ny fanavaozana ny tahiry rehetra dia mamorona dikan-teny vaovao. Raha mila fanazavana fanampiny momba ity lohahevitra ity, dia jereo ny slide 72-87 ity famelabelarana ity.
  2. Afaka mampiasa mpizara CI sy Git ianao: GitOps dia miasa amin'ny singa rehetra. Azonao atao ny manohy mampiasa ny mpizara CI sy Git tianao indrindra, ny fitahirizana sary ary ny suite fitsapana. Saika ny fitaovana fandefasana Continuous hafa rehetra eny an-tsena dia mitaky ny mpizara CI/Git azy na ny fitahirizana sary. Mety ho lasa anton-javatra mametra ny fivoaran'ny cloud native izany. Miaraka amin'ny GitOps, afaka mampiasa fitaovana mahazatra ianao.
  3. Hetsika ho fitaovana fampidirana: Raha vantany vao nohavaozina ny angona ao amin'ny Git, ny Weave Flux (na ny mpandraharaha Weave Cloud) dia mampandre ny fotoana fandehanana. Isaky ny manaiky ny fanovana ny Kubernetes dia havaozina ny Git. Izany dia manome modely fampidirana tsotra amin'ny fandaminana ny workflows ho an'ny GitOps, araka ny aseho etsy ambany.

famaranana

GitOps dia manome antoka fanavaozana matanjaka takian'ny fitaovana CI/CD maoderina:

  • automatique;
  • convergence;
  • tsy fahampian-tsakafo;
  • determinisme.

Zava-dehibe izany satria manolotra modely miasa ho an'ny mpamorona rahona teratany.

  • Ny fitaovana nentim-paharazana amin'ny fitantanana sy fanaraha-maso ny rafitra dia mifandray amin'ny ekipan'ny asa miasa ao anatin'ny runbook (andian'ny fomba fiasa sy fiasa mahazatra - eo ho eo amin'ny transl.), mifamatotra amin'ny fametrahana manokana.
  • Amin'ny fitantanana rahona teratany, fitaovana fanaraha-maso no fomba tsara indrindra handrefesana ny valin'ny fametrahana mba hahafahan'ny ekipan'ny fampandrosoana mamaly haingana.

Alaivo sary an-tsaina ny cluster maro miparitaka manerana ny rahona samihafa sy ny serivisy maro miaraka amin'ny ekipany sy ny drafitra fametrahana azy. GitOps dia manolotra maodely tsy miovaova amin'ny fitantanana ireo harena rehetra ireo.

PS avy amin'ny mpandika teny

Vakio ihany koa ao amin'ny bilaoginay:

Ireo mpampiasa voasoratra anarana ihany no afaka mandray anjara amin'ny fanadihadiana. HiditraPlease.

Fantatrao ve ny momba ny GitOps talohan'ny nisehoan'ireo dikanteny roa ireo tao amin'ny Habré?

  • Eny, fantatro ny zava-drehetra

  • Ambony fotsiny

  • No

Mpampiasa 35 no nifidy. Mpampiasa 10 no nifady.

Source: www.habr.com

Add a comment