GitOps: Isbarbardhigga Hababka Jiid iyo Riix

Ogow. turjumi: Bulshada Kubernetes, isbeddelka loo yaqaan GitOps ayaa helaya caan cad, sida aan shakhsi ahaan u aragnay, booqasho KubeCon Europe 2019. Eraygani wuxuu ahaa mid dhow hindisay Madaxa Weaveworks - Alexis Richardson - oo macnaheedu yahay adeegsiga aaladaha ay yaqaanaan kuwa horumariya (guud ahaan Git, markaa magaca) si loo xalliyo dhibaatooyinka hawlgalka. Gaar ahaan, waxaanu ka hadlaynaa hawlgalka Kubernetes anagoo ku kaydinayna qaabaynteeda Git oo si toos ah ugu soo roga isbedelada kooxda. Matthias Jg waxa uu maqaalkan kaga hadlayaa laba hab oo loo wajaho duubistan.

GitOps: Isbarbardhigga Hababka Jiid iyo Riix

Sannadkii hore (run ahaantii, si rasmi ah tani waxay dhacday Agoosto 2017 - qiyaastii. tarjumaad.) Waxaa jira hab cusub oo lagu geynayo codsiyada Kubernetes. Waxaa loo yaqaan GitOps, waxayna ku salaysan tahay fikradda aasaasiga ah ee ah in noocyada dirida lagu dabagalo jawiga badbaadsan ee kaydka Git.

Faa'iidooyinka ugu muhiimsan ee habkan waa sida soo socota::

  1. Nuqulka geynta iyo beddelka taariikhda. Xaalada kooxda dhamaanteed waxa lagu kaydiyaa kaydka Git, iyo diritaanada waxa lagu cusboonaysiiyaa oo kaliya balanqaadyo Intaa waxaa dheer, dhammaan isbeddellada waxaa lagu raadin karaa iyada oo la adeegsanayo taariikhda ballan-qaadka.
  2. Dib-u-celinta iyadoo la adeegsanayo amarada Git ee la yaqaan. Fudud git reset wuxuu kuu ogolaanayaa inaad dib u dejiso isbeddelada geynta; goboladii hore mar walba waa la heli karaa.
  3. Xakamaynta gelitaanka diyaarka ah. Caadi ahaan, nidaamka Git wuxuu ka kooban yahay xog badan oo xasaasi ah, sidaa darteed shirkadaha badankood waxay bixiyaan feejignaan gaar ah si ay u ilaaliyaan. Sidaa awgeed, ilaalintani waxay sidoo kale khusaysaa hawlgallada la dirayo.
  4. Siyaasadaha Dirista. Inta badan nidaamyada Git waxay asal ahaan taageeraan siyaasadaha laanta-tusaale ahaan, kaliya codsiyada jiidi ayaa cusboonaysiin kara sayid, iyo isbeddelada waa in dib loo eego oo uu aqbalo xubin kale oo kooxda ah. Sida xakamaynta gelitaanka, isla siyaasadaha ayaa lagu dabaqaa cusboonaysiinta dirida.

Sida aad arki karto, waxaa jira faa'iidooyin badan habka GitOps. Sannadkii la soo dhaafay, laba hab ayaa caan gaar ah helay. Mid waa riixid, ka kalena waa jiidid. Ka hor inta aynaan eegin iyaga, aan marka hore eegno sida caadiga ah ee Kubernetes geynta u eg.

Hababka geynta

Sanadihii la soo dhaafay, habab iyo qalabyo kala duwan oo loo diro ayaa laga sameeyay Kubernetes:

  1. Iyada oo ku saleysan qaab-dhismeedka Kubernetes/Kustomize qaab-dhismeedka. Tani waa habka ugu fudud ee codsiyada lagu geynayo Kubernetes. Horumariyuhu waxa uu abuuraa faylalka aasaasiga ah ee YAML oo ku dabaqo. Si looga takhaluso dib-u-qorista joogtada ah ee isla jaantusyada, Kustomize ayaa la sameeyay (waxay u beddeshaa qaab-dhismeedka Kubernetes qaybo). Ogow. turjumiKustomize waxa lagu dhex daray kubectl oo leh sii deynta Kubernetes 1.14.
  2. Shaxda Helm. Jaantusyada Helm waxay kuu oggolaanayaan inaad abuurto jaangooyooyin, weelal init ah, baabuur-side, iwm., kuwaas oo loo isticmaalo in lagu geeyo codsiyada leh ikhtiyaarada habaynta dabacsanaan badan marka loo eego habka ku saleysan template. Habkani wuxuu ku salaysan yahay faylalka YAML qaabaysan. Helm waxay ku buuxisaa xaddiyo kala duwan ka dibna waxay u dirtaa Tiller, oo ah qayb kooxeed taas oo u diraysa kutlada oo u oggolaanaysa cusbooneysiinta iyo dib-u-celinta. Waxa muhiimka ah ayaa ah in Helm asal ahaan kaliya uu geliyo qiyamka la doonayo qaab-dhismeedka ka dibna u dabaqo si la mid ah sida loo sameeyo hab-dhaqameedka. (Akhri wax badan oo ku saabsan sida ay dhammaantood u shaqeeyaan iyo sida aad u isticmaali karto gudahayaga maqaal uu qoray Helm - qiyaastii. turjumi.). Waxaa jira jaantusyo diyaarsan oo kala duwan oo kala duwan oo ka kooban hawlo kala duwan.
  3. Aalado Kale. Waxaa jira qalabyo badan oo kale. Waxa ay dhamaantood ka siman yihiin ayaa ah inay u rogaan faylalka template-ka qaarkood faylalka YAML-kubernetes-la akhriyi karo ka dibna ay isticmaalaan.

Shaqadeena, waxaan si joogto ah u isticmaalnaa jaantusyada Helm qalabyada muhiimka ah (maadaama ay haystaan ​​waxyaabo badan oo diyaar ah, taas oo nolosha ka dhigaysa mid aad u fudud) iyo "saafi" Kubernetes YAML faylasha loogu talagalay geynta codsiyadayada gaarka ah.

Jiid & Riix

Mid ka mid ah qoraalladaydii ugu dambeeyay ee blog, waxaan ku soo bandhigay qalabka Weave Flux, kaas oo kuu ogolaanaya inaad samayso qaab-dhismeedka Git oo aad cusboonaysiiso diritaan ka dib markaad sameyso ama riixdo weelka. Waayo-aragnimadaydu waxay muujinaysaa in qalabkani yahay mid ka mid ah kuwa ugu muhiimsan ee kor u qaadaya habka jiidashada, sidaas darteed marar badan ayaan tixraaci doonaa. Haddii aad rabto inaad wax badan ka ogaato sida loo isticmaalo, halkan link to article.

NB! Dhammaan faa'iidooyinka isticmaalka GitOps waa isku mid labada habba.

Jiid ku salaysan hab

GitOps: Isbarbardhigga Hababka Jiid iyo Riix

Habka jiididu wuxuu ku salaysan yahay xaqiiqda ah in dhammaan isbeddellada laga dabaqo kooxda dhexdeeda. Waxa jira hawlwadeen gudaha kooxda oo si joogto ah u hubiya meelaha Git iyo Diiwaanka Docker ee la xidhiidha. Haddii wax isbeddel ahi ku dhacaan iyaga, xaaladda kooxdu waa lagu cusboonaysiiyaa gudaha. Nidaamkan waxaa guud ahaan loo arkaa inuu yahay mid aad ammaan u ah, maadaama uusan jirin macmiil dibadda ah oo heli kara xuquuqaha maamulka kooxda.

Faa'iido:

  1. Ma jiro macmiil dibadda ah oo xuquuq u leh inuu isbedel ku sameeyo kooxda; dhammaan wixii cusbooneed ayaa laga soo saaray gudaha.
  2. Qalabka qaar ayaa sidoo kale kuu oggolaanaya inaad isku dhejiso cusboonaysiinta shaxda Helm oo aad ku xidho kutlada.
  3. Diiwaanka Docker-ka waxa lagu sawiri karaa noocyo cusub. Haddii sawir cusub la heli karo, kaydka Git iyo hawlgelinta ayaa loo cusboonaysiiyay nooca cusub.
  4. Qalabka jiiditaanku waxaa loo qaybin karaa meelo magacyo kala duwan leh oo leh meelo Git ah oo kala duwan iyo ogolaansho. Thanks to this, model multitenant waa la isticmaali karaa. Tusaale ahaan, kooxda A waxa laga yaabaa inay adeegsato booska magaca A, kooxda B waxa laga yaabaa inay adeegsadaan meel bannaan oo B, kooxda kaabayaasha ayaa laga yaabaa inay isticmaalaan meel caalami ah.
  5. Sida caadiga ah, qalabku waa mid aad u fudud.
  6. Lagu daray qalabka sida hawlwadeenka Bitnami Siraha La Xidhay, siraha waxa lagu kaydin karaa si qarsoodi ah kaydka Git oo laga soo saaro kooxda dhexdeeda.
  7. Ma jiro wax xidhiidh ah oo la leh dhuumaha CD-ga maadaama la geynayo kooxda dhexdeeda.

Minusa:

  1. Maareynta sirta geynta ee jaantusyada Helm way ka adag tahay kuwa caadiga ah, maadaama marka hore ay tahay in la soo saaro qaab ahaan, dheh, siraha la xidhay, ka dibna ay dejiyaan hawlwadeen gudaha ah, ka dib markaa waxay diyaar u yihiin aaladda jiidista. Markaa waxaad ku socodsiin kartaa sii-deynta Helm oo leh qiyamka siraha horeba la geeyay. Habka ugu fudud ayaa ah in la abuuro sir dhammaan qiimayaasha Helm ee loo isticmaalo geynta, kala saar oo u gasha Git.
  2. Marka aad qaadato hab jiidasho, waxa aad ku xidhan tahay qalabka jiida. Tani waxay xaddidaysaa awoodda lagu beddeli karo habka geynta kooxdu. Tusaale ahaan, Kustomize waa ku dhib badan tahay xaqiiqda ah inay tahay inay socoto ka hor inta aan la gaarin habraacyada ugu dambeeya ee Git. Ma dhahayo ma isticmaali kartid qalab gooni-gooni ah, laakiin way aad u adagtahay in lagu dhex daro nidaamkaaga dirida

Habka ku salaysan riix

GitOps: Isbarbardhigga Hababka Jiid iyo Riix

Habka riixitaanka, nidaamka dibadda (gaar ahaan dhuumaha CD) ayaa bilaabaya diritaannada kooxda ka dib markii la go'aamiyo kaydka Git ama haddii dhuumihii hore ee CI uu guulaysto. Habkan, nidaamku wuxuu geli karaa kutlada.

Maqaallo:

  1. Nabadgelyada waxaa go'aamiya kaydka Git oo dhisa dhuumaha.
  2. Gelida jaantusyada Helm way fududahay waxayna taageertaa plugins Helm.
  3. Siraha way fududahay in la maareeyo sababtoo ah sirta waxaa loo isticmaali karaa dhuumaha waxaana lagu kaydin karaa si qarsoodi ah Git (waxay kuxirantahay doorbidka isticmaaluhu).
  4. Ma jiro xiriir la leh qalab gaar ah, maadaama nooc kasta la isticmaali karo.
  5. Cusbooneysiinta nooca weelka waxaa bilaabi kara dhuumaha dhismaha.

Minusa:

  1. Xogta gelitaanka kooxdu waxa ay ku jirtaa nidaamka dhismaha.
  2. Cusbooneysiinta weelasha geynta ayaa wali ku fudud habka jiidista.
  3. Ku-tiirsanaanta culus ee nidaamka CD-ga, tan iyo tuubooyinka aan u baahanahay waxaa laga yaabaa in markii hore loo qoray Gitlab Runners, ka dibna kooxdu waxay go'aansataa inay u guurto Azure DevOps ama Jenkins ... waxayna u guuri doontaa tiro badan oo tuubooyinka dhismaha ah.

Natiijooyinka: Riix mise Jiid?

Sida caadiga ah xaaladdu, hab kastaa wuxuu leeyahay faa'iidooyin iyo khasaare. Hawlaha qaarkood way fududahay in lagu fuliyo mid ka dibna aad u adag mid kale. Markii hore waxaan samaynayey hawlgelinta gacanta, laakiin ka dib markii aan la kulmay dhowr maqaallo oo ku saabsan Weave Flux, waxaan go'aansaday inaan hirgeliyo hababka GitOps ee dhammaan mashaariicda. Qaababka aasaasiga ah tani way fududahay, laakiin ka dib waxaan bilaabay inaan la kulmo dhibaatooyin jaantusyada Helm. Waqtigaas, Weave Flux waxay soo bandhigtay kaliya nooca aasaasiga ah ee Hawlwadeenka Shaxda Helm, laakiin xitaa hadda hawlaha qaar ayaa aad u dhib badan sababtoo ah baahida loo qabo in gacanta lagu abuuro siraha oo lagu dabaqo. Waxaad ku doodi kartaa in habka jiididdu uu aad u ammaan badan yahay sababtoo ah aqoonsiga kooxdu lagama heli karo meel ka baxsan kooxda, taasoo ka dhigaysa mid aad u ammaan badan oo ay mudan tahay dadaalka dheeraadka ah.

Fikir ka dib, waxaan imid gabagabo lama filaan ah oo ah in tani aysan sidaas ahayn. Haddii aan ka hadalno qaybaha u baahan ilaalinta ugu badan, liiskan waxaa ku jiri doona kaydinta sirta ah, nidaamyada CI/CD, iyo kaydka Git. Macluumaadka ku jira waa mid aad u nugul wuxuuna u baahan yahay ilaalin ugu badan. Intaa waxaa dheer, haddii qof uu soo galo kaydkaaga Git oo uu ku riixi karo koodka halkaas, waxay geyn karaan wax kasta oo ay rabaan (haddii ay jiidanayso ama ay riixayso) oo ay dhex gelin karaan nidaamyada kooxda. Markaa, qaybaha ugu muhiimsan ee u baahan in la ilaaliyo waa kaydka Git iyo nidaamyada CI/CD, ee ma aha aqoonsiga kutlada. Haddii aad leedahay siyaasado si wanaagsan loo habeeyey iyo kontaroolada amniga ee noocyadan nidaamyada, iyo aqoonsiga kooxdu waxa kaliya oo lagu soo saaray dhuumaha sirta ah, amniga dheeriga ah ee habka jiidista ayaa laga yaabaa inaanay u qiimo lahayn sidii markii hore loo maleeyay.

Haddaba, haddii habka jiididdu uu yahay mid xoog badan oo xoog badan oo aanu bixinayn faa'iido ammaan, miyaanay caqli gal ahayn in la isticmaalo habka riixitaanka oo keliya? Laakiin qof ayaa laga yaabaa inuu ku doodo in habka riixitaanka aad aad ugu xiran tahay nidaamka CD-ga, laga yaabee, inay fiican tahay inaadan tan sameynin si ay u sahlanaato fulinta socdaalka mustaqbalka.

Fikradayda (sida had iyo jeer), waa inaad isticmaashaa waxa ugu habboon kiis gaar ah ama la isku daro. Shakhsi ahaan, waxaan isticmaalaa labada hab: Weave Flux ee soo dejinta-ku-saleysan ee inta badan ay ku jiraan adeegyadayada, iyo habka riixitaanka ee Helm iyo plugins, taas oo sahlaysa in lagu dabaqo jaantusyada Helm kooxda waxayna kuu ogolaaneysaa inaad abuurto siraha sirta ah. Waxaan u maleynayaa inaysan waligeed jiri doonin hal xal oo ku habboon kiisaska oo dhan, sababtoo ah had iyo jeer waxaa jira waxyaabo badan oo nuances ah waxayna ku xiran yihiin codsiga gaarka ah. Taas marka la yiraahdo, waxaan aad ugu talinayaa GitOps - waxay ka dhigaysaa nolosha mid aad u fudud waxayna wanaajisaa amniga.

Waxaan rajeynayaa in waayo-aragnimadayda mawduucan ay kaa caawin doonto inaad go'aansato habka ugu habboon nooca diridaada, waxaana ku farxi lahaa inaan maqlo ra'yigaaga.

PS Note ka turjumaanka

Dhinaca hoose ee qaabka jiidashada ayaa ah in ay adagtahay in la geliyo muuqaalada la soo bandhigay ee Git, laakiin ma jirto hoos u dhac ah in dhuumaha CD-ga ee qaabka jiidashada ay si gooni ah u nool yihiin duubista oo asal ahaan noqdaan dhuunta qaybta. Codsi joogto ah. Sidaa darteed, xitaa dadaal dheeraad ah ayaa loo baahan doonaa si loo soo ururiyo xaaladdooda dhammaan goobaha la diro oo si uun loo bixiyo gelitaanka diiwaannada/statuska, gaar ahaan iyadoo la tixraacayo nidaamka CD-ga.

Dareenkan, qaabka riixitaanka wuxuu noo ogolaanayaa inaan bixino ugu yaraan qaar ka mid ah dammaanadaha duubista, sababtoo ah inta lagu jiro nolosha dhuumaha waxaa loo samayn karaa si la mid ah inta lagu jiro nolosha.

Waxaan isku daynay labada noocba waxaana gaadhnay isla gunaanadkii qoraaga maqaalka:

  1. Qaabka jiidashada ayaa nagu haboon inaanu abaabulno cusboonaysiinta qaybaha nidaamka tiro badan oo kooxeed ah (eeg. maqaal ku saabsan addon-operator).
  2. Qaabka riixitaanka ee ku salaysan GitLab CI ayaa si fiican ugu habboon soo gudbinta codsiyada iyadoo la adeegsanayo jaantusyada Helm. Isla mar ahaantaana, soo-diridda geynta dhuumaha gudaha waa lala socdaa iyadoo la isticmaalayo qalabka werf. Jid ahaan, marka la eego macnaha mashruucan annaga, waxaan maqalnay "GitOps" joogto ah markii aan ka wada hadalnay dhibaatooyinka cidhiidhiga ah ee injineerada DevOps ee joogitaankayaga KubeCon Europe'19.

PPS ka turjumaan

Sidoo kale ka akhri boggayaga:

Isticmaalayaasha diiwaangashan oo keliya ayaa ka qaybqaadan kara sahanka. Soo gal, soo dhawoow.

Ma isticmaaleysaa GitOps?

  • Haa, jiid hab

  • Haa, riix

  • Haa, jiid + riix

  • Haa, wax kale

  • No

30 isticmaale ayaa u codeeyay. 10 isticmaale ayaa ka aamusay.

Source: www.habr.com

Add a comment