LielÄkÄ daļa no mums, pamanot kÄrtÄjo jaunu terminu IT blogosfÄrÄ vai konferencÄ, agri vai vÄlu uzdod lÄ«dzÄ«gu jautÄjumu: āKas tas ir? Vai tikai vÄl viens modes vÄrds, "moža vÄrds" vai kaut kas patiesi vÄrts pievÄrst uzmanÄ«bu, izpÄtÄ«t un solÄ«t jaunus apvÄrÅ”Åus? Tas pats notika ar mani ar terminu GitOps pirms kÄda laika. ApbruÅots ar daudziem esoÅ”ajiem rakstiem, kÄ arÄ« kolÄÄ£u zinÄÅ”anÄm no uzÅÄmuma
Starp citu, par termina novitÄti GitOps ArÄ« mÅ«su nesenajÄ aptaujÄ teikts: vairÄk nekÄ puse aptaujÄto vÄl nav sÄkuÅ”i strÄdÄt ar tÄs principiem.
TÄtad infrastruktÅ«ras pÄrvaldÄ«bas problÄma nav jauna. Daudzi mÄkoÅpakalpojumu sniedzÄji plaÅ”Äkai sabiedrÄ«bai ir bijuÅ”i pieejami jau labu desmitu gadu, un, Ŕķiet, tiem vajadzÄja padarÄ«t par infrastruktÅ«ru atbildÄ«go komandu darbu vienkÄrÅ”u un saprotamu. TomÄr, salÄ«dzinot ar lietojumprogrammu izstrÄdes procesu (kur automatizÄcija sasniedz arvien jaunus lÄ«meÅus), infrastruktÅ«ras projekti joprojÄm bieži ietver daudzus manuÄlus uzdevumus un prasa specializÄtas zinÄÅ”anas un zinÄÅ”anas, Ä«paÅ”i Åemot vÄrÄ mÅ«sdienu prasÄ«bas attiecÄ«bÄ uz kļūdu toleranci, elastÄ«bu, mÄrogojamÄ«bu un elastÄ«bu.
MÄkoÅpakalpojumi Ŕīs prasÄ«bas izpildÄ«ja ļoti veiksmÄ«gi un tieÅ”i tie deva bÅ«tisku impulsu pieejas attÄ«stÄ«bai IaC. Tas ir saprotams. Galu galÄ tie ļÄva konfigurÄt pilnÄ«gi virtuÄlu datu centru: nav fizisku serveru, plauktu vai tÄ«kla komponentu; visu infrastruktÅ«ru var aprakstÄ«t, izmantojot skriptus un konfigurÄcijas failus.
KÄda tad Ä«sti ir atŔķirÄ«ba? GitOps no IaC? TieÅ”i ar Å”o jautÄjumu es sÄku savu izmeklÄÅ”anu. PÄc sarunas ar kolÄÄ£iem es varÄju nÄkt klajÄ ar Å”Ädu salÄ«dzinÄjumu:
GitOps
IaC
Viss kods tiek glabÄts git repozitorijÄ
Koda versiju noteikÅ”ana nav obligÄta
Deklaratīvais koda apraksts / Idempotence
Ir pieÅemami gan deklaratÄ«vi, gan obligÄti apraksti
IzmaiÅas stÄjas spÄkÄ, izmantojot sapludinÄÅ”anas pieprasÄ«juma/izvilkÅ”anas pieprasÄ«juma mehÄnismus
VienoÅ”anÄs, apstiprinÄÅ”ana un sadarbÄ«ba nav obligÄta
AtjauninÄjumu izlaiÅ”anas process ir automatizÄts
AtjauninÄÅ”anas izlaiÅ”anas process nav standartizÄts (automÄtisks, manuÄls, failu kopÄÅ”ana, komandrindas izmantoÅ”ana utt.)
Citiem vÄrdiem sakot GitOps radÄs tieÅ”i, piemÄrojot principus IaC. PirmkÄrt, infrastruktÅ«ru un konfigurÄcijas tagad varÄtu saglabÄt tÄpat kÄ lietojumprogrammas. Kodu ir viegli uzglabÄt, viegli koplietot, salÄ«dzinÄt un izmantot versiju izveides iespÄjas. Versijas, filiÄles, vÄsture. Un tas viss publiski pieejamÄ vietÄ visai komandai. TÄpÄc versiju kontroles sistÄmu izmantoÅ”ana kļuva par pilnÄ«gi dabisku attÄ«stÄ«bu. Jo Ä«paÅ”i gits kÄ vispopulÄrÄkais.
No otras puses, radÄs iespÄja automatizÄt infrastruktÅ«ras pÄrvaldÄ«bas procesus. Tagad to var izdarÄ«t ÄtrÄk, uzticamÄk un lÄtÄk. TurklÄt CI / CD principi jau bija zinÄmi un populÄri programmatÅ«ras izstrÄdÄtÄju vidÅ«. VajadzÄja tikai nodot un pielietot jau zinÄmÄs zinÄÅ”anas un prasmes jaunÄ jomÄ. TomÄr Ŕī prakse pÄrsniedza infrastruktÅ«ras kÄ koda standarta definÄ«ciju, tÄpÄc arÄ« jÄdziens GitOps.
ZinÄtkÄre GitOps, protams, arÄ« apstÄklÄ«, ka tas nav ne ar vienu pÄrdevÄju saistÄ«ts produkts, spraudnis vai platforma. TÄ vairÄk ir paradigma un principu kopums, kas lÄ«dzinÄs citam mums pazÄ«stamam terminam: DevOps.
UzÅÄmums
GitOps ir metodika, kas izmanto labÄkos DevOps principus, ko izmanto lietojumprogrammu izstrÄdÄ, piemÄram, versiju kontroli, sadarbÄ«bu, orÄ·estrÄÅ”anu, CI/CD, un piemÄro tos infrastruktÅ«ras pÄrvaldÄ«bas automatizÄcijas izaicinÄjumiem.
Visi procesi GitOps StrÄdÄju izmantojot esoÅ”os rÄ«kus. Viss infrastruktÅ«ras kods tiek glabÄts jau pazÄ«stamajÄ git repozitorijÄ, izmaiÅas tiek veiktas tÄdÄ paÅ”Ä apstiprinÄÅ”anas procesÄ kÄ jebkurÅ” cits programmas kods, un izlaiÅ”anas process ir automatizÄts, kas ļauj samazinÄt cilvÄku kļūdas, palielinÄt uzticamÄ«bu un reproducÄjamÄ«bu.
No praktiskÄ viedokļa mÄs aprakstÄm GitOps Å”Ädi:
MÄs jau esam apsprieduÅ”i infrastruktÅ«ru kÄ kodu kÄ vienu no Ŕīs formulas galvenajÄm sastÄvdaļÄm. IepazÄ«stinÄsim ar pÄrÄjiem dalÄ«bniekiem.
SapludinÄÅ”anas pieprasÄ«jums (alternatÄ«vais nosaukums Pull Request). Procesa izteiksmÄ MR ir pieprasÄ«jums piemÄrot koda izmaiÅas un pÄc tam apvienot filiÄles. Bet attiecÄ«bÄ uz mÅ«su izmantotajiem rÄ«kiem Ŕī ir drÄ«zÄk iespÄja iegÅ«t pilnÄ«gu priekÅ”statu par visÄm veiktajÄm izmaiÅÄm: ne tikai koda atŔķirÄ«bas, kas savÄktas no noteikta skaita izpildes, bet arÄ« konteksts, testa rezultÄti un gala sagaidÄmais rezultÄts. Ja mÄs runÄjam par infrastruktÅ«ras kodu, tad mÅ«s interesÄ, kÄ tieÅ”i infrastruktÅ«ra mainÄ«sies, cik jauni resursi tiks pievienoti vai izÅemti, mainÄ«ti. VÄlams kÄdÄ ÄrtÄkÄ un vieglÄk lasÄmÄ formÄtÄ. MÄkoÅu pakalpojumu sniedzÄjiem ir lietderÄ«gi zinÄt, kÄda bÅ«s Å”o izmaiÅu finansiÄlÄ ietekme.
TaÄu MR ir arÄ« sadarbÄ«bas, mijiedarbÄ«bas un saziÅas lÄ«dzeklis. Vieta, kur tiek izmantota pÄrbaužu un lÄ«dzsvara sistÄma. No vienkÄrÅ”iem komentÄriem lÄ«dz formÄliem apstiprinÄjumiem un apstiprinÄjumiem.
Nu, pÄdÄjais komponents: CI/CD, kÄ mÄs jau zinÄm, ļauj automatizÄt infrastruktÅ«ras izmaiÅu veikÅ”anas un testÄÅ”anas procesu (no vienkÄrÅ”as sintakses pÄrbaudes lÄ«dz sarežģītÄkai statiskÄ koda analÄ«zei). Un arÄ« turpmÄkajÄ novirzes noteikÅ”anÄ: atŔķirÄ«bas starp reÄlo un vÄlamo sistÄmas stÄvokli. PiemÄram, nesankcionÄtu manuÄlu izmaiÅu vai sistÄmas kļūmes rezultÄtÄ.
JÄ, termins GitOps neiepazÄ«stina mÅ«s ar neko pilnÄ«gi jaunu, neizgudro riteni no jauna, bet vienkÄrÅ”i pielieto jau uzkrÄto pieredzi jaunÄ jomÄ. Bet Å”eit slÄpjas viÅa spÄks.
Un, ja pÄkÅ”Åi sÄk interesÄties, kÄ tas viss izskatÄs praksÄ, tad aicinu ieskatÄ«ties mÅ«su
-
Ieviesiet GitOps pamatprincipus
-
Izveidojiet un veiciet izmaiÅas mÄkoÅa infrastruktÅ«rÄ (izmantojot Yandex Cloud piemÄru)
-
AutomatizÄjiet sistÄmas novirzes no vÄlamÄ stÄvokļa noteikÅ”anu, izmantojot aktÄ«vo uzraudzÄ«bu
https://bit.ly/34tRpwZ
Avots: www.habr.com