Chii chinonzi GitOps?

Cherechedza. transl.: Pashure pebhuku richangobva kubuda zvinhu nezve nzira dzekudhonza nekusundidzira muGitOps, takaona kufarira iyi modhi kazhinji, asi pakanga paine mashoma ezvinyorwa zvemutauro weRussia pane iyi nyaya (hapana chero paHabrΓ©). Naizvozvo, isu tinofara kukupa iwe kutariswa kweimwe chinyorwa - kunyangwe rinenge gore rapfuura! - kubva kuWeaveworks, musoro wayo wakagadzira izwi rekuti "GitOps." Chinyorwa chinotsanangura kukosha kwemaitiro uye misiyano yakakosha kubva kune iripo.

Gore rapfuura takatsikisa sumo kuGitOps. Kare ikako, takagovana kuti timu yeWeaveworks yakatanga sei SaaS yakavakirwa paKubernetes uye yakagadzira seti yemaitiro akanakisa ekuisa, kutonga, uye kutarisa munzvimbo yegore.

Nyaya yacho yakazova yakakurumbira. Vamwe vanhu vakatanga kutaura nezveGitOps uye vakatanga kuburitsa maturusi matsva e git Push, budiriro, zvakavanzika, mabasa, kuenderera mberi kubatanidzwa zvichingoenda zvakadaro. Zvakaonekwa pawebhusaiti yedu nhamba huru zvinyorwa uye GitOps inoshandisa makesi. Asi vamwe vanhu vachiri nemibvunzo. Muenzaniso wacho unosiyana sei newagara uchiitwa? zvivakwa sekodhi uye kuenderera mberi kwekutumira (kuramba uchiendesa)? Zvakakosha here kushandisa Kubernetes?

Takakurumidza kuona kuti tsananguro itsva yaidiwa, ichipa:

  1. Nhamba huru yemuenzaniso uye nyaya;
  2. Tsanangudzo chaiyo yeGitOps;
  3. Kuenzanisa nechinyakare kuenderera mberi kwekutumira.

Muchinyorwa chino takaedza kuvhara misoro yese iyi. Inopa sumo yakagadziridzwa kuGitOps uye mugadziri uye CI/CD maonero. Isu tinonyanya kutarisa Kubernetes, kunyangwe iyo modhi inogona kuve yakajairika.

Sangana neGitOps

Fungidzira Alice. Anomhanyisa Inishuwarenzi Yemhuri, iyo inopa hutano, mota, imba, uye inishuwarenzi yekufamba kune vanhu vakabatikana zvakanyanya kuti vaone ins uye kunze kwezvibvumirano ivo pachavo. Bhizinesi rake rakatanga sepurojekiti yepadivi Alice paakanga achishanda kubhangi sesainzi wedata. Rimwe zuva akaona kuti aigona kushandisa macomputer algorithms kunyatsoongorora data uye kugadzira mapakeji einishuwarenzi. Vagadziri vemari vakapa mari chirongwa ichi, uye iye zvino kambani yake inounza mari inodarika mamiriyoni makumi maviri emadhora pagore uye iri kukura nekukurumidza. Parizvino, inoshandisa vanhu zana nemakumi masere munzvimbo dzakasiyana siyana. Izvi zvinosanganisira tekinoroji timu inovandudza, inochengetedza webhusaiti, dhatabhesi, uye inoongorora base yevatengi. Chikwata chevanhu makumi matanhatu chinotungamirwa naBob, technical director wekambani.

Chikwata chaBob chinoshandisa masisitimu ekugadzira mugore. Zvishandiso zvavo zvepakati zvinomhanya paGKE, kutora mukana weKubernetes paGoogle Cloud. Uye zvakare, vanoshandisa akasiyana data uye analytics maturusi mubasa ravo.

Inishuwarenzi yeMhuri haina kutanga kushandisa midziyo, asi yakabatwa mukufarira kweDocker. Iyo kambani yakakurumidza kuona kuti GKE yakaita kuti zvive nyore kuendesa masumbu kuyedza maitiro matsva. Jenkins yeCI uye Quay yakawedzerwa kuronga registry yemidziyo, zvinyorwa zvakanyorerwa Jenkins iyo yakasundira midziyo mitsva uye zvigadziriso kuGKE.

Nguva yakati yapfuura. Alice naBob vakaodzwa mwoyo nekuita kwemaitiro avo avakasarudza uye kukanganisa kwaro pabhizinesi. Kuunzwa kwemacontainer hakuna kuita kuti goho ribudirire sezvaitarisirwa nechikwata. Dzimwe nguva kutumirwa kwaizoputsika, uye zvaive zvisina kujeka kana shanduko yekodhi yaive mhosva. Zvakazonetsawo kuteedzera shanduko yeconfig. Kazhinji zvaive zvakafanira kugadzira sumbu idzva uye kufambisa zvikumbiro kwariri, sezvo iyi yaive nzira iri nyore yekubvisa tsvina yaive system. Alice aitya kuti mamiriro ezvinhu aizowedzera kuipa sezvo application yakagadziridzwa (nekuwedzera, chirongwa chitsva chakavakirwa pakudzidza kwemichina chaive kugadzirwa). Bob akanga aita otomatiki yakawanda yebasa uye aisanzwisisa kuti nei pombi yakanga ichiri isina kugadzikana, isina kukwira zvakanaka, uye yaida kupindira kwemaoko nguva nenguva?

Ipapo vakadzidza nezveGitOps. Sarudzo iyi yakazova chaizvo zvavaida kuti vaenderere mberi nechivimbo.

Alice naBob vanga vachinzwa nezveGit, DevOps, uye zvivakwa sekodhi workflows kwemakore. Chii chakasiyana nezveGitOps ndechekuti inounza seti yeakanakisa maitiro-zvese echokwadi uye anojairwa-ekuita aya mazano mumamiriro eKubernetes. Dingindira iri yakasimuka kakawanda, kusanganisira mu Weaveworks blog.

Inishuwarenzi yemhuri inosarudza kushandisa GitOps. Iyo kambani ikozvino ine otomatiki mashandiro modhi inoenderana neKubernetes uye inosanganisa havukavu со kugadzikananekuti ivo:

  • akawana kuti kubudirira kwechikwata kwakapetwa kaviri pasina anopenga;
  • akamira kushanda zvinyorwa. Pane kudaro, ivo zvino vanogona kutarisa pazvinhu zvitsva uye kuvandudza nzira dzeinjiniya - semuenzaniso, kuunza canary rollouts nekuvandudza kuyedzwa;
  • takavandudza nzira yekutumirwa kuitira kuti isanyanya kuparara;
  • akawana mukana wekudzorera kutumirwa mushure mekukundikana kwechidimbu pasina kupindira kwemaoko;
  • kutengwa kushandiswaΠΎKuvimba kukuru muhurongwa hwekutumira. Alice naBob vakawana kuti vaigona kupatsanura timu kuita zvikwata zvemicroservice zvinoshanda zvakafanana;
  • inogona kuita 30-50 shanduko kuchirongwa zuva rega rega kuburikidza nekuedza kweboka rega rega uye kuyedza maitiro matsva;
  • zviri nyore kukwezva vagadziri vatsva kupurojekiti, vane mukana wekuburitsa zvigadziriso zvekugadzira vachishandisa zvikumbiro zvekudhonza mukati memaawa mashoma;
  • pfuura nyore kuongorora mukati meiyo SOC2 (kutevedzwa kwevanopa masevhisi nezvinodiwa zvekuchengetedza data manejimendi; verenga zvimwe, semuenzaniso, pano - approx. transl.).

Chii chaitika?

GitOps zvinhu zviviri:

  1. Inoshanda modhi yeKubernetes uye makore ekuzvarwa. Inopa seti yeakanakisa maitiro ekutumira, kutonga, uye kutarisa ane midziyo masumbu uye mashandisirwo. Tsanangudzo yakanaka muchimiro imwe slide ΠΎΡ‚ Luis Faceira:
  2. Iyo nzira yekugadzira yekuvandudza-centric application management nharaunda. Isu tinoshandisa iyo Git workflow kune ese ari maviri mashandiro uye kusimudzira. Ndokumbira utarise kuti izvi hazvisi zveGit push chete, asi nezve kuronga yese seti yeCI/CD uye UI/UX maturusi.

Mashoko mashoma pamusoro peGit

Kana iwe usiri kujairana neshanduro yekudzora masisitimu uye Git-based workflow, isu tinokurudzira zvikuru kudzidza nezvavo. Kushanda nemapazi uye kudhonza zvikumbiro zvingaite semashiripiti akasviba pakutanga, asi mabhenefiti akakodzera kuedza. Here chinyorwa chakanaka kutanga.

Iyo Kubernetes inoshanda sei

Munyaya yedu, Alice naBob vakatendeukira kuGitOps mushure mekushanda naKubernetes kwechinguva. Chokwadi, GitOps ine hukama hwepedyo neKubernetes - imhando yekushanda yezvivakwa uye maapplication akavakirwa paKubernetes.

Chii chinopa Kubernetes vashandisi?

Heano mamwe maitiro makuru:

  1. MuKubernetes modhi, zvese zvinogona kutsanangurwa nenzira yekuzivisa.
  2. Iyo Kubernetes API server inotora chiziviso ichi sekuisa uye inoramba ichiedza kuunza cluster munzvimbo yakatsanangurwa muchiziviso.
  3. Zviziviso zvinokwana kutsanangura nekugadzirisa zvakasiyana-siyana zvemabasa- "zvikumbiro."
  4. Nekuda kweizvozvo, shanduko kune application uye cluster inoitika nekuda kwe:
    • kuchinja mumifananidzo yemidziyo;
    • kuchinja kune declarative specification;
    • zvikanganiso munharaunda - semuenzaniso, kuparara kwemudziyo.

Kubernetes 'Kukuru Convergence Kugona

Kana maneja aita shanduko yekumisikidza, iyo Kubernetes orchestrator inovaisa kune iyo cluster chero mamiriro ayo ari. haizoswedere pedyo nekugadziriswa kutsva. Iyi modhi inoshanda kune chero Kubernetes sosi uye inowedzerwa neCustom Resource Tsananguro (CRDs). Naizvozvo, Kubernetes deployments ine zvinotevera zvinoshamisa zvivakwa:

  • Kuzvishandura: Kubernetes inogadziridza inopa maitiro ekugadzirisa maitiro ekushandisa shanduko zvine nyasha uye nenguva.
  • Convergence: Kubernetes icharamba ichiedza zvigadziriso kusvika zvabudirira.
  • Idempotency: Kudzokororwa kwekushandisa kwe convergence kunotungamira kune imwechete mhedzisiro.
  • Determinism: Kana zviwanikwa zvakwana, mamiriro eiyo cluster yakagadziridzwa inotsamira chete pane inodiwa mamiriro.

Iyo GitOps inoshanda sei

Takadzidza zvakakwana nezve Kubernetes kutsanangura kuti GitOps inoshanda sei.

Ngatidzokerei kuMhuri Inishuwarenzi yemicroservices zvikwata. Chii chavanowanzofanira kuita? Tarisa pane rondedzero iri pazasi (kana paine zvinhu zvirimo zvichiita sezvisinganzwisisike kana zvisingazivikanwe, ndapota imbomira kushoropodza uye gara nesu). Iyi ingori mienzaniso yeJenkins yakavakirwa workflows. Kune mamwe akawanda maitiro kana uchishanda nemamwe maturusi.

Chinhu chikuru ndechekuti tinoona kuti yega yega yega inopera neshanduko kumafaira ekugadzirisa uye Git repositories. Idzi shanduko kuGit dzinokonzera "GitOps opareta" kugadzirisa sumbu:

1.Kushanda maitiro: "Jenkins kuvaka - master bazi".
Task list:

  • Jenkins anosundidzira tagged mifananidzo kuQuay;
  • Jenkins inosundira config uye Helm machati kune tenzi kuchengetedza bhakiti;
  • Basa regore rinokopa config uye machati kubva kune tenzi kuchengetedza bhakiti kune master Git repository;
  • Iyo GitOps opareta inogadziridza cluster.

2. Jenkins kuvaka - kuburitsa kana hotfix bazi:

  • Jenkins anosundira mifananidzo isina kunyorwa kuQuay;
  • Jenkins inosundira config uye Helm machati kune iyo staging yekuchengetedza bhaketi;
  • Iro gore basa rinokopa iyo config uye machati kubva padanho rekuchengetedza bhaketi kuenda kune inomira Git repository;
  • Iyo GitOps opareta inogadziridza cluster.

3. Jenkins kuvaka - gadzira kana kuratidza bazi:

  • Jenkins anosundira mifananidzo isina kunyorwa kuQuay;
  • Jenkins inosundira config uye Helm machati mukugadzira bhaketi rekuchengetedza;
  • Iro gore basa rinokopa iyo config uye machati kubva pakuvandudza bhaketi rekuchengetedza kune yekuvandudza Git repository;
  • Iyo GitOps opareta inogadziridza cluster.

4. Kuwedzera mutengi mutsva:

  • Maneja kana maneja (LCM / ops) anodana Gradle kuti atange kutumira nekugadzirisa network loaders (NLBs);
  • LCM/ops inoita gadziriso nyowani kugadzirira kutumirwa kune zvigadziriso;
  • Iyo GitOps opareta inogadziridza cluster.

Tsanangudzo pfupi yeGitOps

  1. Rondedzera mamiriro aidiwa ehurongwa hwese uchishandisa zvinotsanangurwa zvenzvimbo yega yega (munyaya yedu, timu yaBob inotsanangura iyo yese sisitimu yekumisikidzwa muGit).
    • Iyo Git repository ndiyo chete sosi yechokwadi maererano neinodiwa mamiriro ehurongwa hwese.
    • Shanduko dzese kune inodiwa nyika dzinoitwa kuburikidza nekuita muGit.
    • Zvese zvinodiwa cluster paramita zvinoonekwa zvakare musumbu pacharo. Nenzira iyi tinogona kuona kana dzichienderana (converge, kusangana) kana kusiyana (siyana, diverge) nyika dzinodiwa uye dzinocherechedzwa.
  2. Kana iyo yaunoda uye inocherechedzwa inosiyana, zvino:
    • Iko kune convergence mechanism iyo nekukurumidza kana gare gare inowiriranisa chinangwa uye inocherechedzwa nyika. Mukati meboka, Kubernetes anoita izvi.
    • Maitiro anotanga nekukurumidza ne "shanduko yakazvipira" yambiro.
    • Mushure meimwe nguva inogadziriswa yenguva, yambiro "yakasiyana" inogona kutumirwa kana nyika dzakasiyana.
  3. Nenzira iyi, zvese zvinozvipira muGit zvinokonzeresa uye zvisizvo zvigadziriso kune cluster.
    • Rollback iko convergence kune yaimbodiwa nyika.
  4. Kusangana ndiko kwekupedzisira. Kuitika kwayo kunoratidzwa ne:
    • Hapana chenjedzo dzakasiyana kune imwe nguva yenguva.
    • "converged" yambiro (semu webhook, Git writeback chiitiko).

Kusiyana chii?

Ngatidzokorore zvakare: zvese zvinodiwa cluster zvivakwa zvinofanirwa kucherechedzwa musumbu racho pacharo.

Mimwe mienzaniso yekusiyana:

  • Shandura mune yekumisikidza faira nekuda kwekubatanidza matavi muGit.
  • Shanduko mufaira rekugadzirisa nekuda kwekuita kweGit kwakaitwa nemutengi weGUI.
  • Kuchinja kwakawanda kune inodiwa mamiriro nekuda kwePR muGit inoteverwa nekuvaka mufananidzo wemudziyo uye kugadzirisa shanduko.
  • Shanduko yemamiriro echikwata nekuda kwekukanganisa, kukonana kwezviwanikwa kunokonzeresa "maitiro akaipa", kana kungotsauka kubva kune yekutanga.

Ndeipi nzira yekubatanidza?

Mienzaniso mishoma:

  • Kune midziyo nemasumbu, iyo convergence mechanism inopihwa naKubernetes.
  • Iyo imwe nzira inogona kushandiswa kubata Kubernetes-yakavakirwa maapplication uye magadzirirwo (akadai seIstio uye Kubeflow).
  • Iyo nzira yekugadzirisa kudyidzana kwekushanda pakati peKubernetes, mifananidzo repositori uye Git inopa GitOps anoshanda Weave Flux, icho chikamu Weave Cloud.
  • Kune ma base machines, iyo convergence mechanism inofanirwa kuve yekuzivisa uye kuzvimiririra. Kubva pane zvakaitika kwatiri tinogona kutaura izvozvo Terraform padyo netsanangudzo iyi, asi zvichiri kuda kutonga kwevanhu. Nenzira iyi, GitOps inowedzera tsika yeInfrastructure seCode.

GitOps inosanganisa Git neyakanakisa convergence injini yeKubernetes kuti ipe modhi yekushandiswa.

GitOps inotibvumira kuti titi: Iwo chete masisitimu anogona kutsanangurwa uye kucherechedzwa anogona kuve otomatiki uye kudzorwa.

GitOps inoitirwa iyo yese gore rekuzvarwa stack (semuenzaniso, Terraform, nezvimwewo)

GitOps haisi Kubernetes chete. Tinoda kuti sisitimu yese ifambiswe zvine mutsindo uye ishandise convergence. Nehurongwa hwese tinoreva muunganidzwa wenzvimbo dzinoshanda naKubernetes - semuenzaniso, "dev cluster 1", "kugadzirwa", nezvimwewo nharaunda yega yega inosanganisira michina, masumbu, maapplication, pamwe nekusangana kwekunze masevhisi anopa data, kutarisa. uye etc.

Ziva kuti Terraform yakakosha sei kune dambudziko rebootstrapping mune iyi kesi. Kubernetes inofanirwa kuiswa kumwe kunhu, uye kushandisa Terraform zvinoreva kuti isu tinogona kushandisa yakafanana GitOps workflows kugadzira iyo control layer inosimbisa Kubernetes uye maapplication. Iyi inzira inobatsira yakanakisa.

Iko kune kutarisisa kwakasimba pakushandisa GitOps pfungwa kune maseru pamusoro peKubernetes. Parizvino, kune GitOps-mhando mhinduro dzeIstio, Helm, Ksonnet, OpenFaaS uye Kubeflow, pamwe chete, semuenzaniso, yePulumi, iyo inogadzira layer yekugadzira zvikumbiro zvegore rekuzvarwa.

Kubernetes CI/CD: kuenzanisa GitOps nedzimwe nzira

Sezvakataurwa, GitOps zvinhu zviviri:

  1. Iyo yekushandisa modhi yeKubernetes uye gore rekuzvarwa ratsanangurwa pamusoro.
  2. Iyo nzira inoenda kune yekuvandudza-centric application manejimendi nharaunda.

Kune vakawanda, GitOps inonyanya kufambiswa kwebasa yakavakirwa paGit inosundira. Isu tinomudawo. Asi handizvo zvese: ngatitarisei CI/CD mapaipi.

GitOps inogonesa kuenderera mberi kutumirwa (CD) yeKubernetes

GitOps inopa inoenderera mberi yekuendesa nzira inobvisa kudiwa kweakaparadzana "deployment management system." Kubernetes anoitira iwe basa rese.

  • Kugadziridza application kunoda kuvandudzwa muGit. Iyi ishanduro yekutengeserana kune inodiwa mamiriro. "Deployment" inozoitwa mukati mechikwata naKubernetes pachayo zvichibva pane yakagadziridzwa tsananguro.
  • Nekuda kwechimiro chemashandiro anoita Kubernetes, izvi zvigadziriso zvinochinja. Izvi zvinopa nzira yekuenderera mberi kwekuendesa umo zvese zvinogadziridzwa zviri atomu.
  • Cherechedza: Weave Cloud inopa GitOps opareta inobatanidza Git uye Kubernetes uye inobvumira CD kuti iitwe nekuyananisa inodiwa uye yazvino mamiriro esumbu.

Pasina kubectl uye zvinyorwa

Iwe unofanirwa kudzivirira kushandisa Kubectl kugadzirisa cluster yako, uye kunyanya kudzivirira kushandisa zvinyorwa kuboka kubectl mirairo. Panzvimbo iyoyo, nepombi yeGitOps, mushandisi anogona kugadzirisa yavo Kubernetes cluster kuburikidza neGit.

Benefits zvinosanganisira:

  1. Rudyi. Boka rezvigadziriso rinogona kuiswa, kuchinjika uye pakupedzisira kusimbiswa, zvichitiswededza pedyo nechinangwa chekuendesa atomu. Mukupesana, kushandisa zvinyorwa hakupi chero vimbiso yekusangana (zvimwe pane izvi pazasi).
  2. Chengetedzo. Quoting Kelsey Hightower: "Rega kupinda kune yako Kubernetes cluster kune otomatiki maturusi uye maneja ane basa rekugadzirisa kana kuichengeta." onawo chinyorwa changu nezve kuchengeteka uye kutevedzera tekinoroji yakatarwa, uyewo nyaya yekubira Homebrew nekubira zvitupa kubva kune yakanyorwa zvisina hanya Jenkins script.
  3. Mushandisi Zvakaitika. Kubectl anofumura mechanics eiyo Kubernetes chinhu modhi, ayo akaomarara. Zvakanakisa, vashandisi vanofanirwa kudyidzana nehurongwa padanho repamusoro rekubvisa. Pano ini ndichataura zvakare kuna Kelsey uye ndinokurudzira kutarisa CV yakadaro.

Musiyano pakati peCI neCD

GitOps inovandudza iripo CI/CD modhi.

Yemazuvano CI sevha chishandiso che orchestration. Kunyanya, chishandiso chekuronga mapaipi eCI. Izvi zvinosanganisira kuvaka, kuyedza, kubatanidza kune hunde, nezvimwe. Masevha eCI anogadzirisa manejimendi epaipi dzakaoma-nhanho dzakawanda. Muedzo wakajairika ndeyekunyora seti yeKubernetes inogadziridza uye kuimhanyisa sechikamu chepombi kusundira shanduko kune sumbu. Chokwadi, izvi ndizvo zvinoitwa nenyanzvi dzakawanda. Nekudaro, izvi hazvina kunaka, uye heino chikonzero.

CI inofanirwa kushandiswa kusundidzira zvigadziriso kuhunde, uye iyo Kubernetes cluster inofanirwa kuzvishandura pachayo zvichibva pane izvo zvigadziriso kubata CD mukati. Tinozvidaidza dhonza modhi yeCD, kusiyana neCI push modhi. CD chikamu Runtime orchestration.

Nei CI Sevha Haafanire Kuita maCD kuburikidza neDirect Updates muKubernetes

Usashandise sevha yeCI kuronga zvakanangana neKubernetes seti yeCI mabasa. Iyi ndiyo anti-pattern yatiri kutaura nezvayo zvatoudzwa pa blog yako.

Ngatidzokerei kuna Alice naBob.

Matambudziko api avakasangana nawo? Bob's CI server inoshandisa shanduko kune cluster, asi kana ikaparara mukuita, Bob haazozive kuti cluster iri (kana kuti inofanira kunge iri) mukati kana kuigadzirisa sei. Ndizvo zvazvakaitawo kana ukabudirira.

Ngatifungei kuti timu yaBob yakavaka chifananidzo chitsva ndokuzoisa zvigamba zvekuendesa mufananidzo wacho (zvese kubva kuCI pombi).

Kana chifananidzo chikavaka zvakajairika, asi pombi ikatadza, timu ichafanirwa kufunga:

  • Iyo update yabuda here?
  • Tiri kutanga chigadzirwa chitsva here? Izvi zvichatungamira kune zvisina kufanira mhedzisiro - nemukana wekuve neaviri anovaka eiyo imwechete isingachinjiki mufananidzo?
  • Tinofanira kumirira iyo inotevera yekuvandudza tisati tamhanyisa kuvaka?
  • Chii chaizvo chakashata? Ndedzipi nhanho dzinoda kudzokororwa (uye ndedzipi dzakachengeteka kudzokorora)?

Kumisikidza Git-based workflow haivimbise kuti timu yaBob haizosangana nematambudziko aya. Ivo vanogona kuramba vachikanganisa nekuita kusunda, iyo tag, kana imwe paramende; zvisinei, nzira iyi ichiri pedyo zvikuru kune yakajeka zvose-kana-hapana nzira.

Kupfupisa, heino chikonzero nei maseva eCI asingafanire kubata neCD:

  • Kuvandudza zvinyorwa hazvisi nguva dzose zvinogadzirisa; Zviri nyore kukanganisa mavari.
  • Masevha eCI haashanduke kune inozivisa cluster modhi.
  • Zvakaoma kuvimbisa idempotency. Vashandisi vanofanirwa kunzwisisa iyo yakadzika semantics yehurongwa.
  • Zvakanyanya kuoma kupora kubva pakukundikana zvishoma.

Ongorora nezve Helm: Kana iwe uchida kushandisa Helm, isu tinokurudzira kuisanganisa neGitOps opareta senge. Flux-Helm. Izvi zvichabatsira kuchengetedza kusangana. Helm pachayo haisi deterministic kana atomic.

GitOps senzira yakanakisa yekushandisa Kuenderera Kuendesa Kubernetes

Boka raAlice naBob rinoshandisa GitOps uye rinoona kuti zvave nyore kushanda nezvigadzirwa zvesoftware, chengetedza kuita kwepamusoro uye kugadzikana. Ngatipedzei chinyorwa ichi nemufananidzo unoratidza kuti maitiro avo matsva anotaridzika sei. Ramba uchifunga kuti isu tiri kunyanya kutaura nezve maapplication nemasevhisi, asi GitOps inogona kushandiswa kubata chikuva chose.

Inoshanda modhi yeKubernetes

Tarisa pamufananidzo unotevera. Inopa Git uye mudziyo wemufananidzo repository seyakagovaniswa zviwanikwa zveaviri akarongedzerwa lifecycles:

  • Iyo inoenderera mberi yekubatanidza pombi inoverenga uye inonyora mafaera kuGit uye inogona kugadzirisa repository yemidziyo mifananidzo.
  • Iyo Runtime GitOps pombi inosanganisa kutumirwa nekutonga uye kucherechedzwa. Inoverenga uye inonyora mafaera kuGit uye inogona kudhawunirodha mifananidzo yemidziyo.

Ndezvipi zvakawanikwa zvakanyanya?

  1. Kuparadzaniswa kwezvinonetsa: Ndokumbira utarise kuti mapaipi ese ari maviri anogona chete kutaurirana nekuvandudza Git kana mufananidzo repository. Mune mamwe mazwi, pane firewall pakati peCI nenzvimbo yekumhanya. Isu tinodaidza iyo "immutability firewall" (immutability firewall), sezvo zvese zvigadziriso zvinogadzira zvinyorwa zvitsva. Kuti uwane rumwe ruzivo nezvenyaya iyi, tarisa masiraidhi 72-87 mharidzo iyi.
  2. Unogona kushandisa chero CI uye Git server: GitOps inoshanda nechero chikamu. Iwe unogona kuenderera mberi nekushandisa yako yaunofarira CI uye Git maseva, mifananidzo repositori, uye bvunzo masutu. Anenge ese mamwe Maturusi Ekuenderera Kuendesa pamusika anoda yavo CI/Git server kana mufananidzo repository. Izvi zvinogona kuve chinhu chinodzikamisa mukuvandudza kwegore rekuzvarwa. NeGitOps, unogona kushandisa zvishandiso zvakajairika.
  3. Zviitiko sechinhu chekubatanidza: Kana data muGit yagadziridzwa, Weave Flux (kana Weave Cloud opareta) inozivisa nguva yekumhanya. Pese Kubernetes paanogamuchira shanduko seti, Git inogadziridzwa. Izvi zvinopa yakapusa yekubatanidza modhi yekuronga mafambiro ebasa eGitOps, sezvakaratidzwa pazasi.

mhedziso

GitOps inopa vimbiso yakasimba yekuvandudza inodiwa chero yemazuva ano CI/CD chishandiso:

  • otomatiki;
  • convergence;
  • idempotency;
  • determinism.

Izvi zvakakosha nekuti inopa muenzaniso wekushanda wevagadziri vegore.

  • Maturusi echinyakare ekutarisira nekutarisa masisitimu akabatana nezvikwata zvekushanda zvinoshanda mukati mebhuku rerunbook (seti yemaitirwo nemashandiro - approx. transl.), yakasungirirwa kune imwe nzvimbo yekutumirwa.
  • Mugore rekuzvarwa manejimendi, maturusi ekuona ndiyo nzira yakanakisa yekuyera mhedzisiro yekutumirwa kuitira kuti timu yekusimudzira ipindure nekukurumidza.

Fungidzira masumbu mazhinji akapararira mumakore akasiyana uye masevhisi mazhinji ane zvikwata zvavo uye zvirongwa zvekuendesa. GitOps inopa chiyero-chisingachinji modhi yekutonga iyi kuwanda kwese.

PS kubva kumushanduri

Verenga zvakare pablog yedu:

Vashandisi vakanyoresa chete ndivo vanogona kutora chikamu muongororo. Nyorera mu, Munogamuchirwa.

Wakanga uchiziva nezveGitOps idzi shanduro mbiri dzisati dzaonekwa paHabrΓ©?

  • Hongu, ndaiziva zvose

  • Zvepamusoro chete

  • kwete

35 vashandisi vakavhota. 10 vashandisi vakaramba.

Source: www.habr.com

Voeg