GitOps: vēl viens moderns termins vai izrāviens automatizācijā?

GitOps: vēl viens moderns termins vai izrāviens automatizācijā?

Lielākā daļa no mums, pamanot kādu jaunu terminu IT emuāros vai konferences laikā, agri vai vēlu uzdod Ŕādu jautājumu: ā€œKas tas ir? Vēl viens modi vārds, ā€œbuzzwordā€ vai tieŔām kaut kas, kas pelnÄ«jis cieÅ”u uzmanÄ«bu, izpēti un sola jaunus apvārŔņus?ā€ TieÅ”i tāpat man bija ar terminu GitOps pirms kāda laika. Apbruņojies ar daudziem jau esoÅ”ajiem rakstiem, kā arÄ« zināŔanām no kolēģiem uzņēmumā GitLab, mēģināju noskaidrot, kas tieÅ”i tas ir, un kā tā pielietojums var izskatÄ«ties praksē.

Starp citu, par termiņa jauninājumu GitOps liecina arÄ« nesen veiktā mÅ«su aptauja: vairāk nekā puse no aptaujātajiem vēl nav uzsākuÅ”i darbu ar tā principiem.

Tātad, infrastruktÅ«ras pārvaldÄ«bas problēma nav jauna. Daudzi mākoņu pakalpojumu sniedzēji jau labu desmit gadu ir pieejami plaÅ”ai sabiedrÄ«bai un, Ŕķiet, vajadzēja atvieglot infrastruktÅ«ras komandu darbu. Tomēr, salÄ«dzinot ar programmatÅ«ras izstrādes procesu (kur automatizācijas lÄ«menis sasniedz arvien jaunus apvārŔņus), infrastruktÅ«ras projekti joprojām bieži ietver daudz manuālu uzdevumu un prasa Ä«paÅ”as zināŔanas un speciālistus, Ä«paÅ”i ņemot vērā mÅ«sdienu prasÄ«bas attiecÄ«bā uz pieejamÄ«bu, elastÄ«bu, mērogojamÄ«bu un elastÄ«bu.

Mākoņu pakalpojumi ļoti sekmÄ«gi izpildÄ«ja Ŕīs prasÄ«bas un tieÅ”i tie deva ievērojamu impulsu pieejas attÄ«stÄ«bai IaC. Un nav brÄ«nums. Galu galā tieÅ”i tie nodroÅ”ināja iespēju konfigurēt pilnÄ«gi virtuālu datu centra apstrādi: nav fizisku serveru, skapju, tÄ«kla komponentu, visu infrastruktÅ«ru var aprakstÄ«t ar skriptiem un konfigurācijas failiem.

Tātad, kas ir Ä«sti atŔķirÄ«ba GitOps no IaC? Именно с ŃŃ‚Š¾Š³Š¾ вопроса я Šø начал свое расслеГование. ŠŸŠ¾Š¾Š±Ń‰Š°Š²ŃˆŠøŃŃŒ с коллегами, у Š¼ŠµŠ½Ń ŠæŠ¾Š»ŃƒŃ‡ŠøŠ»Š¾ŃŃŒ Š²Ń‹Ń€Š°Š±Š¾Ń‚Š°Ń‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ сравнение:

GitOps

IaC

Viss kods tiek glabāts git noliktavā

Koda versiju pārvaldība nav obligāta

Deklaratīvs koda apraksts / Idempotentība

Atļauts gan deklaratīvs, gan imperatīvs apraksts

Izmaiņas stājas spēkā, izmantojot Merge Request / Pull Request mehānismus

SaskaņoÅ”ana, apstiprināŔana un sadarbÄ«ba nav obligātas

Atjauninājumu izplatīŔanas process ir automatizēts

Atjauninājumu izplatīŔanas process nav noteikts (automātisks, manuāls, failu kopēŔana, izmantojot komandrindu utt.)

Citiem vārdiem sakot GitOps tas radās tieÅ”i pateicoties principu pielietoÅ”anai IaC. Pirmkārt, infrastruktÅ«ru un konfigurācijas tagad varēja glabāt tieÅ”i tāpat kā lietotnes. Kodu ir viegli uzglabāt, ar to ir viegli dalÄ«ties, salÄ«dzināt un izmantot versiju iespējas. Versijas, zari, vēsture. Un viss tas pieejamā vietā visai komandai. Tāpēc bija loÄ£iski, ka notika pāreja uz versiju kontroles sistēmām. ÄŖpaÅ”i git, kā vispopulārākās.

No otras puses, parādÄ«jās iespēja automatizēt infrastruktÅ«ras pārvaldÄ«bas procesus. Tagad to var izdarÄ«t ātrāk, droŔāk un lētāk. Turklāt CI/CD principi jau bija zināmi un populāri starp programmatÅ«ras izstrādātājiem. Bija tikai jāpārnes un jāpiemēro jau zināŔanas un prasmes jaunā jomā. Å Ä«s prakses tomēr izkļuva ārpus standarta definÄ«cijas InfrastruktÅ«ra kā kods, tādējādi radot jēdzienu GitOps.

GitOps: vēl viens moderns termins vai izrāviens automatizācijā?

Interese GitOps, protams, arī tajā, ka tas nav produkts, spraudnis vai platforma, kas saistīta ar kādu noteiktu piegādātāju. Tas drīzāk ir paradigma un principu kopums, līdzīgi kā cits mums zināms termins: DevOps.

Uzņēmumā GitLab Mēs izstrādājām divas Ŕī jaunā termina definÄ«cijas: teorētisko un praktisko. Sāksim ar teorētisko:

GitOps — tā ir metodoloÄ£ija, kas izmanto modernākos DevOps principus, kas tiek izmantoti lietotņu izstrādē, piemēram, versiju kontroli, sadarbÄ«bu, saskaņoÅ”anu, CI/CD, un piemēro tos infrastruktÅ«ras pārvaldÄ«bas automatizēŔanas uzdevumiem.

Visi procesi GitOps darbojas, izmantojot jau esoÅ”os rÄ«kus. Visi infrastruktÅ«ras kodi tiek uzglabāti jau pazÄ«stamajā git repozitorijā, izmaiņas iziet to paÅ”u saskaņoÅ”anas procesu kā jebkurÅ” cits programmatÅ«ras kods, un izvietoÅ”anas process ir automatizēts, kas ļauj minimizēt cilvēka faktora kļūdas, uzlabot uzticamÄ«bu un reproducējamÄ«bu.

Savukārt praktiskā perspektÄ«vā mēs aprakstām GitOps Å”eit:

GitOps: vēl viens moderns termins vai izrāviens automatizācijā?

InfrastruktÅ«ra kā kods, ko mēs jau apspriedām, ir viens no Ŕīs formulas galvenajiem komponentiem. ApskatÄ«sim pārējos dalÄ«bniekus.

ApvienoÅ”anas pieprasÄ«jums (alternatÄ«vais nosaukums Pull Request). MR procesā tas ir pieprasÄ«jums veikt izmaiņas kodā un turpmākais zaru apvienoÅ”ana. Bet attiecÄ«bā uz rÄ«kiem, ko izmantojam, tas drÄ«zāk ir iespēja iegÅ«t pilnÄ«gu pārskatu par visām veiktajām izmaiņām: ne tikai code diff, kas sastāv no noteikta skaita komisijām, bet arÄ« kontekstu, testu rezultātus, gala sagaidāmo rezultātu. Ja runājam par infrastruktÅ«ras kodu, tad mÅ«s interesē, kā tieÅ”i mainÄ«sies infrastruktÅ«ra, cik jaunu resursu tiks pievienots vai noņemts, mainÄ«ts. Vēlams kaut kādā ērtākā un vieglāk lasāmā formātā. GadÄ«jumā ar mākoņa pakalpojumu sniedzējiem nebÅ«tu slikti uzzināt, kādas finansiālas sekas radÄ«s Ŕī izmaiņa.

Bet MR ir arÄ« sadarbÄ«bas, mijiedarbÄ«bas, komunikācijas lÄ«dzeklis. Tā ir vieta, kur darbojas lÄ«dzsvara un pretbalsta sistēma. No vienkārÅ”iem komentāriem lÄ«dz formāliem apstiprinājumiem un apstiprinājumiem.

Un pēdējā sastāvdaļa: CI/CD, kā jau zinām, nodroÅ”ina iespēju automatizēt infrastruktÅ«ras izmaiņu ievieÅ”anas procesu, testēŔanu (no vienkārÅ”as sintakses pārbaudes lÄ«dz sarežģītākai statiskajai analÄ«zei). Tāpat arÄ« turpmākā noviržu noteikÅ”ana: atŔķirÄ«bas starp reālo un vēlamo sistēmas stāvokli. Piemēram, neautorizētu roku izmaiņu rezultātā vai sistēmas atteikÅ”anās rezultātā.

Jā, termins GitOps neiepazÄ«stina mÅ«s ne ar ko pilnÄ«gi jaunu, neizgatavo velosipēdu no jauna, bet vienkārÅ”i pielieto jau iekrātās zināŔanas jaunā jomā. Bet tieÅ”i tajā ir tā spēks.

Un ja jums pēkŔņi kļūs interesanti, kā tas viss izskatās praksē, tad aicinu apskatÄ«t mÅ«su meistarklasi, kurā soli pa solim stāstu, kā, izmantojot GitLab:

  • Realizēt galvenos GitOps principus

  • Izveidot un veikt izmaiņas mākoņu infrastruktÅ«rā (balstoties uz Yandex Cloud piemēru)

  • Automatizēt sistēmas noviržu atklāŔanu no vēlamā stāvokļa, izmantojot aktÄ«vo monitoringu

GitOps: vēl viens moderns termins vai izrāviens automatizācijā?https://bit.ly/34tRpwZ

Avots: habr.com

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster