GitOps ke eng?

Hlokomela. fetolela.: Ka mor’a khatiso ea morao-rao boitsebiso mabapi le mekhoa ea ho hula le ho sutumetsa ho GitOps, re bone thahasello ho mohlala ona ka kakaretso, empa ho ne ho e-na le likhatiso tse fokolang haholo tsa puo ea Serussia tabeng ena (ha ho na tse ling tsa Habré). Ka hona, re thabela ho fana ka tlhokomelo ea hau phetolelo ea sengoloa se seng - le hoja hoo e ka bang selemo se fetileng! - ho tsoa ho Weaveworks, hlooho ea eona e qapileng lentsoe "GitOps." Sengolwa se hlalosa moko wa mokgwa wa ho atamela le diphapano tsa bohlokwa ho tse teng.

Selemong se fetileng re phatlalalitse kenyelletso ea GitOps. Ka nako eo, re ile ra arolelana kamoo sehlopha sa Weaveworks se ileng sa qala SaaS ka botlalo e ipapisitse le Kubernetes mme ra theha letoto la mekhoa e metle ea ho tsamaisa, ho laola le ho beha leihlo tikolohong ea maru.

Sehlooho seo se ile sa tsebahala. Batho ba bang ba ile ba qala ho bua ka GitOps mme ba qala ho hatisa lisebelisoa tse ncha tsa git Push, ntshetsopele, liphiri, mesebetsi, kopanyo e tsoelang pele joalo joalo. E hlahile webosaeteng ea rona palo e kholo lingoliloeng le linyeoe tsa tšebeliso ea GitOps. Empa batho ba bang ba ntse ba e-na le lipotso. Mohlala o fapana joang le oa setso? meaho e le khoutu le tlhahiso e tsoelang pele (nehelano e tsoelang pele)? Na hoa hlokahala ho sebelisa Kubernetes?

Haufinyane re ile ra hlokomela hore ho hlokahala tlhaloso e ncha, e fanang ka:

  1. Palo e kholo ea mehlala le lipale;
  2. Tlhaloso e khethehileng ea GitOps;
  3. Ha ho bapisoa le ho fana ka mokhoa o tsoelang pele.

Sehloohong sena re lekile ho akaretsa lihlooho tsena kaofela. E fana ka kenyelletso e nchafalitsoeng ho GitOps le moqapi le pono ea CI/CD. Re tsepamisa maikutlo haholo ho Kubernetes, leha mohlala ona o ka etsoa ka kakaretso.

Kopana le GitOps

Nahana ka Alice. O tsamaisa Inshorense ea Lelapa, e fanang ka inshorense ea bophelo bo botle, ea likoloi, ea lehae le ea maeto ho batho ba phathahaneng hoo ba ke keng ba tseba ho kena le ho tsoa ha likonteraka ka bobona. Khoebo ea hae e qalile e le projeke e ka thoko ha Alice a ne a sebetsa bankeng e le rasaense oa data. Ka letsatsi le leng o ile a hlokomela hore a ka sebelisa mekhoa e tsoetseng pele ea k'homphieutha ho hlahloba lintlha ka katleho le ho etsa liphutheloana tsa inshorense. Batseteli ba ile ba tšehetsa morero ona ka lichelete, ’me hona joale k’hamphani ea hae e tlisa chelete e fetang liranta tse limilione tse 20 ka selemo ’me e hōla ka potlako. Hajoale, e hira batho ba 180 maemong a fapaneng. Sena se kenyelletsa sehlopha sa theknoloji se ntlafatsang, se bolokang sebaka sa marang-rang, database, le ho sekaseka maemo a bareki. Sehlopha sa batho ba 60 se etelletsoe pele ke Bob, mookameli oa theknoloji ea k'hamphani.

Sehlopha sa Bob se sebelisa mekhoa ea tlhahiso marung. Lisebelisoa tsa bona tsa mantlha li sebetsa ho GKE, li nka monyetla oa Kubernetes ho Google Cloud. Ho feta moo, ba sebelisa lisebelisoa tse fapaneng tsa data le analytics mosebetsing oa bona.

Inshorense ea Lelapa ha ea ikemisetsa ho sebelisa lijana, empa e ile ea ts'oaroa ke cheseho ea Docker. Haufinyane k'hamphani e ile ea fumana hore GKE e entse hore ho be bonolo ho kenya lihlopha ho leka likarolo tse ncha. Jenkins bakeng sa CI le Quay li ile tsa kenyelletsoa ho hlophisa ngoliso ea lijana, mangolo a ngotsoe bakeng sa Jenkins a sutumelitseng lijana le litlhophiso tse ncha ho GKE.

Ho se ho fetile nako e itseng. Alice le Bob ba ne ba nyahamisitsoe ke ts'ebetso ea mokhoa oo ba o khethileng le phello ea eona khoebong. Kenyelletso ea linkho ha ea ka ea ntlafatsa tlhahiso joalo ka ha sehlopha se ne se tšepile. Ka linako tse ling li-deployments li ne li tla robeha, 'me ho ne ho sa hlaka hore na liphetoho tsa khoutu ke tsona tse molato. Hape ho bile thata ho latela liphetoho tsa config. Hangata ho ne ho hlokahala hore ho thehoe sehlopha se secha le ho tsamaisa likopo ho sona, kaha ena e ne e le tsela e bonolo ka ho fetisisa ea ho felisa bohlasoa boo tsamaiso e leng eona. Alice o ne a tšaba hore boemo bo tla mpefala ha kopo e ntse e tsoela pele (ho feta moo, morero o mocha o thehiloeng ho ithuta ka mochine o ne o ntse o riteloa). Bob o ne a iketsetsa boholo ba mosebetsi 'me a sa utloisise hore na ke hobane'ng ha phaepe e ntse e sa tsitsa, e sa senyehe hantle,' me e hloka ho kenella ka letsoho nako le nako?

Eaba ba ithuta ka GitOps. Qeto ena e ile ea e-ba sona seo ba neng ba se hloka hore ba tsoele pele ka kholiseho.

Alice le Bob esale ba utloa ka Git, DevOps, le litšebeletso tsa motheo e le mokhoa oa ho sebetsa oa khoutu ka lilemo. Ntho e ikhethang ka GitOps ke hore e tlisa mekhoa e metle ka ho fetisisa - e hlakileng le e tloaelehileng - bakeng sa ho phethahatsa mehopolo ena ho latela Kubernetes. Sehlooho sena tsoha kgafetsa, ho akarelletsa le ho Weaveworks blog.

Inshorense ea Lelapa e etsa qeto ea ho kenya ts'ebetsong GitOps. Hona joale k'hamphani e na le mohlala oa ts'ebetso o ikemetseng o lumellanang le Kubernetes mme o kopanya lebelo le botsitsohobane ba:

  • e fumane hore tlhahiso ea sehlopha e imenne habeli ho se motho ea hlanyang;
  • e emisitse ho fana ka mangolo. Ho e-na le hoo, joale ba ka shebana le likarolo tse ncha le ho ntlafatsa mekhoa ea boenjiniere - mohlala, ho hlahisa li-canary le ho ntlafatsa liteko;
  • re ntlafalitse tšebetso ea thomelo hore e senyehe ka seoelo;
  • o fumane monyetla oa ho khutlisetsa li-deployments ka mor'a ho hlōleha ha karolo e itseng ntle le ho kenella ka letsoho;
  • e rekiloeng e sebedisoaоKholiseho e kholo ho litsamaiso tsa ho fana. Alice le Bob ba ile ba fumana hore ba ka arola sehlopha ka lihlopha tse nyenyane tse sebetsang ka ho tšoana;
  • e ka etsa liphetoho tse 30-50 morerong letsatsi le leng le le leng ka boiteko ba sehlopha ka seng le ho leka mekhoa e mecha;
  • ho bonolo ho hohela baetsi ba bacha ho morero, ba nang le monyetla oa ho hlahisa lintlafatso tsa tlhahiso ho sebelisa likopo tsa ho hula ka mor'a lihora tse 'maloa;
  • fetisa habonolo tlhahlobo ka har'a moralo oa SOC2 (bakeng sa ho latela litlhoko tsa bafani ba lits'ebeletso bakeng sa taolo e sireletsehileng ea data; bala haholoanyane, mohlala, mona - hoo e ka bang. fetolela.).

Ho etsahetse eng?

GitOps ke lintho tse peli:

  1. Mokhoa oa ts'ebetso oa Kubernetes le sebaka sa maru. E fana ka mekhoa e metle ea ho tsamaisa, ho laola, le ho beha leihlo lihlopha le lits'ebetso tse kentsoeng ka har'a lisebelisoa. Tlhaloso e khabane ka mokhoa selaete se le seng от Luis Faceira:
  2. Mokhoa oa ho theha tikoloho ea taolo ea lits'ebetso tsa developer-centric. Re sebelisa ts'ebetso ea Git ho ts'ebetso le nts'etsopele. Ka kopo hlokomela hore sena ha se feela ka Git push, empa mabapi le ho hlophisa sehlopha sohle sa lisebelisoa tsa CI/CD le UI/UX.

Mantsoe a seng makae ka Git

Haeba o sa tloaelane le litsamaiso tsa taolo ea mofuta le phallo ea mosebetsi e thehiloeng ho Git, re khothaletsa haholo ho ithuta ka tsona. Ho sebetsa le makala le likopo tsa ho hula ho ka 'na ha bonahala eka ke boselamose qalong, empa melemo ke ea bohlokoa. Mona taba e ntle ho qala.

Kamoo Kubernetes e sebetsang kateng

Paleng ea rona, Alice le Bob ba ile ba fetohela ho GitOps kamora ho sebetsa le Kubernetes nakoana. Ehlile, GitOps e amana haufi-ufi le Kubernetes - ke mohlala oa ts'ebetso bakeng sa meaho le lits'ebetso tse thehiloeng ho Kubernetes.

Kubernetes e fa basebelisi eng?

Lintlha tse ling tsa mantlha ke tsena:

  1. Ka mohlala oa Kubernetes, ntho e 'ngoe le e' ngoe e ka hlalosoa ka mokhoa oa ho phatlalatsa.
  2. Seva ea Kubernetes API e nka phatlalatso ena e le tlhahiso, ebe e lula e leka ho tlisa sehlopha sebakeng se hlalositsoeng phatlalatsong.
  3. Liphatlalatso li lekane ho hlalosa le ho laola mefuta e mengata e mengata ea mesebetsi - "likopo".
  4. Ka lebaka leo, liphetoho ho kopo le lihlopha li etsahala ka lebaka la:
    • liphetoho litšoantšong tsa lijana;
    • liphetoho ho tlhaloso ea phatlalatso;
    • liphoso tikolohong - mohlala, ho senyeha ha setshelo.

Matla a Khokahano a Maholo a Kubernetes

Ha molaoli a etsa liphetoho tsa tlhophiso, 'mino oa liletsa oa Kubernetes o tla li sebelisa sehlopheng ha feela boemo ba eona bo ntse bo le teng. e ke ke ea atamela tlhophiso e ncha. Moetso ona o sebetsa bakeng sa sesebelisoa leha e le sefe sa Kubernetes mme o atolosoa ka Litlhaloso tsa Tloaelo ea Mohloli (CRDs). Ka hona, li-deployments tsa Kubernetes li na le thepa e latelang e babatsehang:

  • Boiketsetso: Lintlafatso tsa Kubernetes li fana ka mokhoa oa ho iketsetsa ts'ebetso ea ho sebelisa liphetoho ka bokhabane le ka nako e nepahetseng.
  • Khohlano: Kubernetes e tla tsoelapele ho leka lintlafatso ho fihlela e atlehile.
  • Ho hloka matla: Likopo tse pheta-phetoang tsa convergence li lebisa sephethong se tšoanang.
  • Boikemisetso: Ha lisebelisoa li lekane, boemo ba sehlopha se ntlafalitsoeng bo itšetlehile feela ka boemo bo lakatsehang.

Kamoo GitOps e sebetsang kateng

Re ithutile ho lekaneng ka Kubernetes ho hlalosa hore na GitOps e sebetsa joang.

Ha re khutleleng lihlopheng tse nyane tsa Inshorense ea Lelapa. Hangata ba tlameha ho etsa eng? Sheba lethathamo le ka tlaase (haeba ho na le ntho leha e le efe ho lona e bonahalang e makatsa kapa e sa tloaelehang, ka kōpo tlohela ho nyatsa 'me u lule le rona). Tsena ke mehlala feela ea li-workflows tse thehiloeng ho Jenkins. Ho na le mekhoa e meng e mengata ha u sebetsa le lisebelisoa tse ling.

Taba ea mantlha ke hore rea bona hore ntlafatso e 'ngoe le e' ngoe e qetella ka liphetoho ho lifaele tsa tlhophiso le li-repositories tsa Git. Liphetoho tsena ho Git li etsa hore "mosebetsi oa GitOps" a ntlafatse sehlopha:

1. Mokhoa oa ho sebetsa: "Jenkins aha - lekala le leholo".
Lenane la mesebetsi:

  • Jenkins o sutumelletsa litšoantšo tse tšoailoeng ho Quay;
  • Jenkins o sutumelletsa lichate tsa config le Helm ho bakete ea polokelo e kholo;
  • Mosebetsi oa leru o kopitsa config le lichate ho tloha ka nkhong e kholo ea polokelo ho ea polokelong ea Git;
  • Opereishene ea GitOps e nchafatsa sehlopha.

2. Jenkins aha - ho lokolla kapa hotfix lekala:

  • Jenkins o sutumelletsa litšoantšo tse sa tsejoeng ho Quay;
  • Jenkins o sutumelletsa lichate tsa config le Helm ho bakete ea polokelo ea sethala;
  • Mosebetsi oa leru o kopitsa config le lichate ho tloha ka nkhong ea polokelo ho ea sebakeng sa polokelo ea Git;
  • Opereishene ea GitOps e nchafatsa sehlopha.

3. Jenkins e aha - nts'etsapele kapa e hlahise lekala:

  • Jenkins o sutumelletsa litšoantšo tse sa tsejoeng ho Quay;
  • Jenkins o sutumelletsa lichate tsa config le Helm ka har'a bakete ea polokelo ea nts'etsopele;
  • Ts'ebetso ea leru e kopitsa config le lichate ho tloha nkhong ea polokelo ea nts'etsopele ho ea sebakeng sa ntlafatso sa Git;
  • Opereishene ea GitOps e nchafatsa sehlopha.

4. Ho eketsa moreki e mocha:

  • Mookameli kapa mookameli (LCM / ops) o bitsa Gradle ho qala ho tsamaisa le ho lokisa li-balancers tsa mojaro oa marang-rang (NLBs);
  • LCM/ops e etsa tlhophiso e ncha ho lokisa phepelo bakeng sa lintlafatso;
  • Opereishene ea GitOps e nchafatsa sehlopha.

Tlhaloso e khuts'oane ea GitOps

  1. Hlalosa boemo bo lakatsehang ba sistimi eohle u sebelisa litlhaloso tsa phatlalatso bakeng sa tikoloho ka 'ngoe (paleng ea rona, sehlopha sa Bob se hlalosa tlhophiso eohle ea sistimi ho Git).
    • Sebaka sa polokelo ea Git ke mohloli o le mong oa 'nete mabapi le boemo bo lakatsehang ba sistimi eohle.
    • Liphetoho tsohle ho boemo bo lakatsehang li etsoa ka boitlamo ho Git.
    • Liparamente tsohle tse lakatsehang tsa cluster le tsona lia bonoa sehlopheng ka bosona. Ka tsela ena re ka tseba hore na lia lumellana (converge, kopana) kapa ho fapana (ho fapana, fapoha) linaha tse lakatsehang le tse hlokometsoeng.
  2. Haeba lintho tse lakatsehang le tse hlokometsoeng li fapana, joale:
    • Ho na le mochine oa convergence oo kapele kapa hamorao o ikamahanyang le sepheo le linaha tse hlokometsoeng. Ka har'a sehlopha, Kubernetes o etsa sena.
    • Ts'ebetso e qala hang-hang ka tlhokomeliso ea "phetoho e ikemiselitseng".
    • Kamora nako e itseng e ka lokisoang, tlhokomeliso ea "diff" e ka romelloa haeba linaha li fapane.
  3. Ka tsela ena, tsohle tse etsoang ho Git li baka lintlafatso tse netefalitsoeng le tse sa sebetseng sehlopheng.
    • Rollback ke ho kopana ho ea sebakeng se lakatsehang pele.
  4. Kopano ke ea ho qetela. Ho hlaha ha eona ho bontšoa ke:
    • Ha ho litlhokomeliso tse fapaneng bakeng sa nako e itseng.
    • tlhokomeliso ea "converged" (mohlala, webhook, ketsahalo ea Git writeback).

Phapang ke eng?

Ha re pheteng hape: litšobotsi tsohle tse lakatsehang tsa sehlopha li tlameha ho bonoa sehlopheng ka bosona.

Mehlala e meng ea phapang:

  • Fetola faeleng ea tlhophiso ka lebaka la ho kopanya makala ho Git.
  • Phetoho faeleng ea tlhophiso ka lebaka la boitlamo ba Git bo entsoeng ke moreki oa GUI.
  • Liphetoho tse ngata ho boemo bo lakatsehang ka lebaka la PR ho Git e lateloa ke ho aha setšoantšo sa setshelo le liphetoho tsa tlhophiso.
  • Phetoho ea boemo ba sehlopha ka lebaka la phoso, khohlano ea lisebelisoa e bakang "boitšoaro bo bobe", kapa ho kheloha feela boemo ba pele.

Mokhoa oa ho kopana ke ofe?

Mehlala e seng mekae:

  • Bakeng sa lijana le lihlopha, mochine oa convergence o fanoa ke Kubernetes.
  • Mokhoa o tšoanang o ka sebelisoa ho laola lits'ebetso le meralo e thehiloeng ho Kubernetes (joalo ka Istio le Kubeflow).
  • Mokhoa oa ho laola tšebelisano ea ts'ebetso lipakeng tsa Kubernetes, polokelo ea litšoantšo le Git e fana ka GitOps opareitara Weave Flux, e leng karolo Weave Cloud.
  • Bakeng sa mechini ea motheo, mochine oa convergence o tlameha ho ba o phatlalatsang le o ikemetseng. Ho tsoa phihlelong ea rōna re ka bua joalo Terraform haufi le tlhaloso ena, empa e ntse e hloka taolo ea motho. Ka kutloisiso ena, GitOps e atolosa moetlo oa Infrastructure joalo ka Khoutu.

GitOps e kopanya Git le enjene e ntle ea ho kopanya ea Kubernetes ho fana ka mohlala oa tlatlapo.

GitOps e re lumella ho re: Ke feela litsamaiso tse ka hlalosoang le ho hlokomeloa tse ka iketsetsang le ho laoloa.

GitOps e etselitsoe leru lohle la maru (mohlala, Terraform, jj.)

GitOps ha se Kubernetes feela. Re batla hore tsamaiso eohle e tsamaisoe ka mokhoa o hlakileng 'me e sebelise convergence. Ka tsamaiso eohle re bolela pokello ea libaka tse sebetsang le Kubernetes - mohlala, "dev cluster 1", "production", joalo-joalo. Tikoloho e 'ngoe le e 'ngoe e kenyelletsa mechine, lihlopha, lisebelisoa, hammoho le li-interfaces bakeng sa litšebeletso tsa ka ntle tse fanang ka data, tlhokomelo. le joalo-joalo.

Hlokomela hore na Terraform e bohlokoa hakae bothateng ba bootstrapping tabeng ena. Kubernetes e tlameha ho romelloa kae-kae, 'me ho sebelisa Terraform ho bolela hore re ka sebelisa ts'ebetso e tšoanang ea GitOps ho theha lera la taolo le tšehetsang Kubernetes le lits'ebetso. Ena ke mokhoa o molemo ka ho fetisisa.

Ho na le tsepamiso e matla ea ho sebelisa mehopolo ea GitOps ho mekhahlelo e kaholimo ho Kubernetes. Hajoale, ho na le litharollo tsa mofuta oa GitOps bakeng sa Istio, Helm, Ksonnet, OpenFaaS le Kubeflow, hammoho le, mohlala, bakeng sa Pulumi, e etsang lera bakeng sa ho nts'etsapele lits'ebetso tsa matsoalloa a maru.

Kubernetes CI/CD: ho bapisa GitOps le mekhoa e meng

Joalokaha ho boletsoe, GitOps ke lintho tse peli:

  1. Mokhoa oa ts'ebetso oa Kubernetes le sebaka sa maru se hlalositsoeng ka holimo.
  2. Tsela e lebisang tikolohong ea taolo ea lits'ebetso tsa mohlahlami.

Ho ba bangata, GitOps ha e le hantle ke phallo ea mosebetsi e ipapisitseng le li-push tsa Git. Le rona re a mo rata. Empa ha se phetho: ha re shebeng liphaephe tsa CI/CD.

GitOps e thusa ho tsamaisoa ho tsoelang pele (CD) bakeng sa Kubernetes

GitOps e fana ka mokhoa o tsoelang pele oa ho tsamaisa o felisang tlhoko ea "litsamaiso tsa taolo ea thomello". Kubernetes o etsa mosebetsi oohle molemong oa hau.

  • Ho nchafatsa sesebelisoa ho hloka ho ntlafatsoa ho Git. Ena ke ntlafatso ea transaction ho boemo bo lakatsehang. "Deployment" e ntan'o etsoa ka har'a sehlopha ke Kubernetes ka boeona ho latela tlhaloso e ntlafalitsoeng.
  • Ka lebaka la mofuta oa tsela eo Kubernetes e sebetsang ka eona, lintlafatso tsena lia fetoha. Sena se fana ka mokhoa oa phepelo e tsoelang pele moo lintlafatso tsohle e leng atomic.
  • Ela hloko: Weave Cloud e fana ka opareitara ea GitOps e kopanyang Git le Kubernetes mme e lumella CD hore e etsoe ka ho hokahanya boemo bo lakatsehang le ba hajoale ba sehlopha.

Ntle le kubectl le mangolo

U lokela ho qoba ho sebelisa Kubectl ho ntlafatsa sehlopha sa hau, mme haholo-holo qoba ho sebelisa lingoloa ho hlophisa litaelo tsa kubectl. Sebakeng seo, ka phala ea GitOps, mosebelisi a ka ntlafatsa sehlopha sa bona sa Kubernetes ka Git.

Melemo e kenyelletsa:

  1. Ho lokile. Sehlopha sa lintlafatso se ka sebelisoa, sa kopanngoa 'me sa netefatsoa qetellong, se re atametsa haufi le sepheo sa phepelo ea athomo. Ka lehlakoreng le leng, ho sebelisa mangolo ha ho fane ka tiisetso ea ho kopana (ho feta mona ka tlase).
  2. Tshireletso. Ho qotsa Kelsey Hightower: "Feela ho fihlella sehlopha sa hau sa Kubernetes ho lisebelisoa tsa othomathike le batsamaisi ba nang le boikarabello ba ho e lokisa kapa ho e boloka." bona hape khatiso ea ka mabapi le polokeho le ho lumellana le litlhaloso tsa tekheniki, hammoho le sengoloa mabapi le ho hacking Homebrew ka ho utsoa mangolo a bopaki bukeng ea Jenkins e ngotsoeng ka bohlasoa.
  3. Boiphihlelo ba Mosebedisi. Kubectl e pepesa mechanics ea mofuta oa ntho ea Kubernetes, e rarahaneng haholo. Ha e le hantle, basebelisi ba lokela ho sebelisana le tsamaiso ka tekanyo e phahameng ea ho ikhula. Mona ke tla boela ke bue ka Kelsey mme ke khothaletse ho shebella qalelle e joalo.

Phapang pakeng tsa CI le CD

GitOps e ntlafatsa mefuta e teng ea CI/CD.

Seva ea sejoale-joale ea CI ke sesebelisoa sa 'mino oa liletsa. Haholo-holo, ke sesebelisoa sa ho hlophisa liphaephe tsa CI. Tsena li kenyelletsa ho haha, ho hlahloba, ho kopanya ho trunk, joalo-joalo. Li-server tsa CI li iketsetsa tsamaiso ea lipeipi tse rarahaneng tse nang le mehato e mengata. Moleko o tloaelehileng ke ho ngola sete ea liapdeite tsa Kubernetes le ho e tsamaisa e le karolo ea lipeipi ho sutumelletsa liphetoho sehlopheng. Ka sebele, sena ke seo litsebi tse ngata li se etsang. Leha ho le joalo, sena ha se hantle, 'me ke ka lebaka lena.

CI e lokela ho sebelisoa ho sutumelletsa lintlafatso kutung, 'me sehlopha sa Kubernetes se lokela ho iphetola ho ipapisitse le lintlafatso tseo ho tsamaisa CD kahare. Re e bitsa hula mohlala bakeng sa CD, ho fapana le mohlala oa CI push. CD ke karolo orchestration ea nako ea ho matha.

Hobaneng Li-server tsa CI li sa Lokela ho Etsa li-CD ka Lintlafatso tse otlolohileng ho Kubernetes

Se ke oa sebelisa seva ea CI ho hlophisa lintlafatso tse tobileng ho Kubernetes e le sehlopha sa mesebetsi ea CI. Ena ke anti-pattern eo re buang ka eona e se e boletse ho blog ea hau.

Ha re khutleleng ho Alice le Bob.

Ba ile ba tobana le mathata afe? Seva ea CI ea Bob e sebelisa liphetoho sehlopheng, empa haeba e ka senyeha ts'ebetsong, Bob a ke ke a tseba hore na sehlopha se boemong bofe (kapa se lokela ho ba) kapa ho se lokisa joang. Ho joalo le tabeng ea katleho.

Ha re nke hore sehlopha sa Bob se thehile setšoantšo se secha, 'me sa kopanya lipehelo tsa bona ho tsamaisa setšoantšo (tsohle ho tsoa pompong ea CI).

Haeba setšoantšo se aha ka mokhoa o tloaelehileng, empa phaephe e hloleha, sehlopha se tla tlameha ho tseba:

  • Na ntlafatso e fetisitsoe?
  • Na re qala moaho o mocha? Na see se tla lebisa litlamorao tse sa hlokahaleng - ka monyetla oa ho ba le meaho e 'meli ea setšoantšo se tšoanang se sa fetoheng?
  • Na re lokela ho emela ntlafatso e latelang pele re qala moaho?
  • Hantle-ntle ho ile ha etsahala’ng? Ke mehato efe e lokelang ho phetoa ('me ke efe e bolokehileng hore e ka phetoa)?

Ho theha tšebetso e thehiloeng ho Git ha ho tiise hore sehlopha sa Bob se ke ke sa kopana le mathata ana. Ba ntse ba ka etsa phoso ka push push, tag, kapa parameter e 'ngoe; leha ho le joalo, mokhoa ona o ntse o le haufi haholo le mokhoa o hlakileng oa tsohle kapa o se nang letho.

Ho akaretsa, ke ka lebaka leo li-server tsa CI li sa lokelang ho sebetsana le CD:

  • Lingoliloeng tsa ntlafatso ha se kamehla li nang le sepheo; Ho bonolo ho etsa liphoso ho tsona.
  • Li-server tsa CI ha li hokahane le mofuta oa sehlopha sa phatlalatso.
  • Ho thata ho netefatsa boits'oaro. Basebelisi ba tlameha ho utloisisa semantics e tebileng ea sistimi.
  • Ho thata le ho feta ho hlaphoheloa ka lebaka la ho hloleha ho itseng.

Tlhokomeliso ka Helm: Haeba u batla ho sebelisa Helm, re khothaletsa ho e kopanya le opareitara ea GitOps joalo ka Flux-Helm. Sena se tla thusa ho netefatsa ho kopana. Helm ka boeona ha e deterministic kapa atomic.

GitOps e le tsela e molemohali ea ho kenya ts'ebetsong Tšebeliso e Tsoelang Pele ea Kubernetes

Sehlopha sa Alice le Bob se sebelisa GitOps mme se fumana hore ho se ho le bonolo haholo ho sebetsa ka lihlahisoa tsa software, ho boloka ts'ebetso e phahameng le botsitso. Ha re phetheleng sengoloa sena ka papiso e bontšang hore na mokhoa oa bona o mocha o shebahala joang. Hopola hore hangata re bua ka lits'ebetso le lits'ebeletso, empa GitOps e ka sebelisoa ho laola sethala kaofela.

Mohlala o sebetsang oa Kubernetes

Sheba setšoantšo se latelang. E hlahisa Git le polokelo ea setšoantšo sa setshelo e le lisebelisoa tse arolelanoang bakeng sa li-lifecycle tse peli tse hlophisitsoeng:

  • Pipe ea ho kopanya e tsoelang pele e balang le ho ngola lifaele ho Git mme e ka ntlafatsa polokelo ea litšoantšo tsa setshelo.
  • Pipe ea Runtime GitOps e kopanyang thomello le taolo le ponahalo. E bala le ho ngola lifaele ho Git mme e ka khoasolla litšoantšo tsa setshelo.

Liphuputso tsa mantlha ke life?

  1. Ho arohana ha matšoenyeho: Ka kopo hlokomela hore liphaephe ka bobeli li ka buisana feela ka ho ntlafatsa Git kapa sebaka sa polokelo ea litšoantšo. Ka mantsoe a mang, ho na le firewall pakeng tsa CI le tikoloho ea nako ea ho sebetsa. Re e bitsa "immutability firewall" (immutable firewall), kaha lintlafatso tsohle tsa polokelo li theha mefuta e mecha. Bakeng sa lintlha tse ling mabapi le sehlooho sena, sheba li-slide 72-87 tlhahiso ena.
  2. U ka sebelisa seva efe kapa efe ea CI le Git: GitOps e sebetsa le karolo efe kapa efe. U ka tsoela pele ho sebelisa li-server tseo u li ratang tsa CI le Git, polokelo ea litšoantšo, le li-suite tsa liteko. Hoo e ka bang lisebelisoa tse ling tse Tsoelang Pele tsa Phano 'marakeng li hloka li-server tsa bona tsa CI/Git kapa polokelo ea litšoantšo. Sena se ka fetoha ntho e thibelang nts'etsopele ea cloud native. Ka GitOps, o ka sebelisa lisebelisoa tse tloaelehileng.
  3. Liketsahalo joalo ka sesebelisoa sa ho kopanya: Hang ha data ho Git e ntlafatsoa, ​​Weave Flux (kapa opareitara ea Weave Cloud) e tsebisa nako ea ho sebetsa. Nako le nako ha Kubernetes a amohela sete ea phetoho, Git ea ntlafatsoa. Sena se fana ka mohlala o bonolo oa ho kopanya bakeng sa ho hlophisa phallo ea mosebetsi bakeng sa GitOps, joalo ka ha ho bonts'itsoe ka tlase.

fihlela qeto e

GitOps e fana ka litiiso tse matla tsa ntlafatso tse hlokoang ke sesebelisoa leha e le sefe sa sejoale-joale sa CI/CD:

  • automation;
  • convergence;
  • ho hloka matla;
  • boikemisetso.

Sena se bohlokoa hobane se fana ka mohlala oa ts'ebetso bakeng sa baetsi ba matsoalloa a maru.

  • Lisebelisoa tsa setso tsa ho laola le ho beha leihlo litsamaiso li amahanngoa le lihlopha tsa ts'ebetso tse sebetsang ka har'a buka ea ho tsamaisa (sete sa lits'ebetso le ts'ebetso ea tloaelo - approx. transl.), e hokahaneng le thomello e itseng.
  • Tsamaisong ea matsoalloa a maru, lisebelisoa tsa ho shebella ke tsela e molemohali ea ho lekanya liphetho tsa li-deployments e le hore sehlopha sa nts'etsopele se ka arabela kapele.

Nahana ka lihlopha tse ngata tse hasaneng marung a fapaneng le lits'ebeletso tse ngata ka lihlopha tsa tsona le merero ea ho tsamaisa. GitOps e fana ka mohlala o sa fetoheng oa ho laola bongata bona kaofela.

PS ho tsoa ho mofetoleli

Bala hape ho blog ea rona:

Ke basebelisi ba ngolisitsoeng feela ba ka kenyang letsoho phuputsong. kenaka kopo.

Na u ne u tseba ka GitOps pele liphetolelo tsee tse peli li hlaha ho Habré?

  • E, ke ne ke tseba tsohle

  • Ka holimo feela

  • No

Basebelisi ba 35 ba ile ba khetha. Basebelisi ba 10 ba ile ba hana.

Source: www.habr.com

Eketsa ka tlhaloso