GitOps: beste hitz bat edo automatizazioan aurrerapen bat?

GitOps: beste hitz bat edo automatizazioan aurrerapen bat?

Gehienok, informatikako blogosferan edo kongresuan beste termino berri bat nabarituta, lehenago edo beranduago antzeko galdera bat egiten dugu: β€œZer da hau? Beste moda-hitz bat, "buzzword" bat edo benetan arreta jartzea, aztertzea eta horizonte berriak itxarotea merezi duen zerbait? Gauza bera gertatu zait terminoarekin GitOps duela denbora pixka bat. Dauden artikulu ugariz hornituta, baita enpresako lankideen ezagutzaz ere GitLab, zer motatako piztia den eta praktikan nolakoa izan daitekeen asmatzen saiatu nintzen.

Bide batez, terminoaren berritasunari buruz GitOps Gure azken inkestak ere dio: inkestatutakoen erdiak baino gehiago ez dira oraindik bere printzipioekin lanean hasi.

Beraz, azpiegituren kudeaketaren arazoa ez da berria. Hodei-hornitzaile askok dozena bat urte daramatzate publiko orokorraren eskura, eta, antza, azpiegituraz arduratzen diren taldeen lana sinple eta zuzen egin beharko lukete. Hala ere, aplikazioak garatzeko prozesuarekin alderatuta (automatizazioa gero eta maila berrietara iristen ari den), oraindik ere azpiegitura-proiektuek eskuzko zeregin asko izaten dituzte eta ezagutza eta esperientzia espezializatuak behar dituzte, batez ere akatsen tolerantziari, malgutasunari, eskalagarritasunari eta elastikotasunari buruzko gaur egungo eskakizunak kontuan hartuta.

Hodeiko zerbitzuek oso arrakastaz bete zituzten baldintza hauek eta haiek izan ziren planteamenduaren garapenari bultzada handia eman ziotenak. IaC. Hau ulergarria da. Azken finean, datu-zentro guztiz birtuala konfiguratzea ahalbidetu zuten: ez dago zerbitzari fisikorik, rack edo sareko osagairik; azpiegitura osoa deskriba daiteke script eta konfigurazio fitxategien bidez.

Beraz, zein da zehazki aldea? GitOps tik IaC? Galdera honekin hasi nuen nire ikerketa. Lankideekin hitz egin ondoren, konparaketa hau egin ahal izan dut:

GitOps

IaC

Kode guztia git biltegi batean gordetzen da

Kode bertsioa hautazkoa da

Adierazpen Kodea Deskribapena / Idempotentzia

Deskribapen deklaratiboak eta inperatiboak onargarriak dira

Aldaketak bateratze-eskaera / tira-eskaera mekanismoak erabiliz eragiten dute

Akordioa, onespena eta lankidetza aukerakoak dira

Eguneratze-prozesua automatizatuta dago

Eguneratze-prozesua ez dago estandarizatua (automatikoa, eskuz, fitxategiak kopiatzea, komando-lerroa erabiltzea, etab.)

Beste hitz batzutan GitOps printzipioen aplikazioaren bidez jaio zen hain zuzen IaC. Lehenik eta behin, azpiegiturak eta konfigurazioak aplikazioen modu berean gorde daitezke orain. Kodea gordetzeko erraza da, partekatzeko, konparatzeko eta bertsioak egiteko gaitasunak erabiltzeko erraza da. Bertsioak, adarrak, historia. Eta hori guztia talde osoarentzat publikoki irisgarria den leku batean. Hori dela eta, bertsioak kontrolatzeko sistemen erabilera garapen guztiz naturala bihurtu zen. Bereziki, git, ezagunena bezala.

Bestalde, azpiegiturak kudeatzeko prozesuak automatizatzea posible egin zen. Orain azkarrago, fidagarriagoa eta merkeago egin daiteke. Gainera, CI / CDaren printzipioak jada ezagunak eta ezagunak ziren software garatzaileen artean. Lehendik ezagutzen ziren ezagutzak eta trebetasunak eremu berri batera transferitzea eta aplikatzea baino ez zen beharrezkoa. Praktika hauek, ordea, Azpiegitura kode gisa definizio estandartik harago joan ziren, hortik kontzeptua GitOps.

GitOps: beste hitz bat edo automatizazioan aurrerapen bat?

Jakin-mina GitOps, noski, baita inongo saltzaileri lotutako produktu, plugin edo plataforma ez izatean ere. Paradigma eta printzipio multzo bat gehiago da, ezagutzen dugun beste termino baten antzekoa: DevOps.

Konpainiak GitLab termino berri honen bi definizio garatu ditugu: teorikoa eta praktikoa. Has gaitezen teorikotik:

GitOps aplikazioak garatzeko erabiltzen diren DevOps printzipio onenak hartzen dituen metodologia da, hala nola, bertsio-kontrola, lankidetza, orkestrazioa, CI/CDa, eta azpiegituren kudeaketa automatizatzeko erronketan aplikatzen ditu.

Prozesu guztiak GitOps Dauden tresnak erabiliz lan egiten dut. Azpiegitura-kode guztia dagoeneko ezaguna den git biltegian gordetzen da, aldaketak beste edozein programa-koderen onarpen-prozesu berberetik pasatzen dira eta zabaltze-prozesua automatizatu egiten da, eta horrek giza akatsak minimizatzeko, fidagarritasuna eta erreproduzigarritasuna areagotzeko aukera ematen digu.

Ikuspegi praktikotik, deskribatzen dugu GitOps honela:

GitOps: beste hitz bat edo automatizazioan aurrerapen bat?

Azpiegitura kode gisa eztabaidatu dugu formula honen osagai nagusietako bat bezala. Aurkez ditzagun gainerako partaideak.

Fusion Request (Pul Request izen alternatiboa). Prozesuari dagokionez, MR kodea aldaketak aplikatzeko eta, ondoren, adarrak batzeko eskaera da. Baina erabiltzen ditugun tresnei dagokionez, hau da aukera bat gehiago egiten ari diren aldaketa guztien irudi osoa lortzeko: ez bakarrik konpromiso kopuru jakin batetik jasotako kode ezberdina, baita testuingurua, proben emaitzak eta espero den azken emaitza. Azpiegitura kodeaz ari bagara, orduan interesatzen zaigu nola aldatuko den zehazki azpiegitura, zenbat baliabide berri gehitu edo kenduko diren, aldatu. Hobe formatu erosoago eta irakurtzeko errazago batean. Hodeiko hornitzaileentzat, komeni da jakitea zein izango den aldaketa horren finantza-eragina.

Baina MR lankidetza, interakzio eta komunikazio bide bat ere bada. Balantzeen sistema jokoan sartzen den lekua. Iruzkin soiletatik onespen eta onespen formaletara.

Bada, azken osagaia: CI/CD-k, lehendik dakigunez, azpiegitura aldaketak eta probak egiteko prozesua automatizatzea ahalbidetzen du (sintaxiaren egiaztapen sinpletik kode estatikoen azterketa konplexuagoraino). Eta baita ondorengo noraeza detektatzeko ere: sistemaren egoera errealaren eta nahi denaren arteko desberdintasunak. Adibidez, baimenik gabeko eskuzko aldaketen edo sistemaren hutsegiteen ondorioz.

Bai, terminoa GitOps ez digu ezer guztiz berririk aurkezten, ez du gurpila berrasmatzen, baizik eta dagoeneko pilatutako esperientzia eremu berri batean aplikatzen du. Baina hor dago bere indarra.

Eta bat-batean hau guztia praktikan nola ikusten den interesatzen bazaizu, orduan gure ikustera gonbidatzen zaitut master class, eta bertan GitLab nola erabili pausoz pauso esaten dizut:

  • GitOps-en oinarrizko printzipioak ezarri

  • Sortu eta egin aldaketak hodeiko azpiegituran (Yandex Cloud-en adibidea erabiliz)

  • Automatizatu nahi den egoera batetik sistemaren desbideratzearen detekzioa monitorizazio aktiboa erabiliz

GitOps: beste hitz bat edo automatizazioan aurrerapen bat?https://bit.ly/34tRpwZ

Iturria: www.habr.com

Gehitu iruzkin berria