Webová agentúra » Digitálne správy » Čo je to „GitOps“ a prečo je dôležitý? -

Čo je to „GitOps“ a prečo je dôležitý? -

Shutterstock / Postmoderné štúdio

GitOps je prístup k infraštruktúre, ktorý využíva osvedčené postupy vývoja softvéru a aplikuje ich na systémy IT. GitOps využíva model Infrastructure as Code na vytvorenie kolaboratívneho, verziovaného, ​​automatizovaného modelu infraštruktúry, akým je váš kód.

Moderný operačný tím bude pravidelne spúšťať nové služby pre každé nasadenie. Aby bolo nasadenie úspešné, musia byť k dispozícii inštancie kontajnera, databázy a sieťové vybavenie.

GitOps definuje prostriedky na poskytovanie ako súbory, ktoré existujú v úložisku Git. To umožňuje všetkým členom tímu kontrolovať a prispievať k infraštruktúre, ktorá bude zriadená. Prostredníctvom kanálov CI môžete svoje nastavenie overiť a nakoniec ho preniesť na svoju cloudovú platformu.

Úložisko infraštruktúry nakoniec vyzerá veľmi podobne ako úložisko softvéru. Pri každej zmene vetvíte, aktualizujete svoje konfiguračné súbory, vykonáte kontrolu a zlúčite sa do svojej hlavnej vetvy. Automatický nástroj, ako napríklad Ansible alebo Terraform, potom aplikuje zmeny na vaše prostredie. Pracovný postup je rovnaký verzovaný model vetvenia, ktorý používajú vývojári.

Čo je Git?

Git v GitOps označuje systém správy verzií Git. Git sa stal nástrojom na ovládanie zdrojov, ktorý si väčšina vývojárov zvolila. Má decentralizovaný model úložiska a kladie dôraz na používanie miestnych agentúr na škálovanie zmien.

Systémy na správu verzií uľahčujú iteráciu vašej práce. K samostatným komponentom môžete pristupovať paralelne pomocou vetiev pred zlúčením do hlavnej vetvy, ktorá predstavuje „vydanú“ verziu vášho projektu. Svoj kód odošlete do zdieľaného úložiska, často v službe ako GitHub alebo GitLab, aby ste ho mohli zdieľať s ostatnými.

Deklaratívna infraštruktúra

Najväčšia sila GitOpsu spočíva v jeho úlohe zdroja pravdy. Ktokoľvek môže zistiť, ako vyzerá vaša infraštruktúra, pomocou súborov vo vašom úložisku Git. Budete mať sadu konfiguračných súborov, ktoré definujú vlastnosti vášho systému.

Konfiguračné súbory sú zvyčajne deklaratívny v prírode - opisujú systém v prítomnom čase. „Uvádzate“, že vo vašej architektúre by malo byť päť serverov, namiesto toho, aby ste poskytovali zoznam príkazov, ktoré priamo spúšťajú päť serverov. Váš zriaďovací nástroj prevádza vaše pokyny na postupnosť príkazov, ktoré vašu infraštruktúru uvedú do požadovaného stavu.

Tu prichádza na rad nepretržitá integrácia (CI). Vývojár softvéru bude spúšťať automatizované kanály na spustenie jednotkových testov, statickú analýzu a prípadne aj produkčné nasadenie. Typický kanál tímu pre infraštruktúru skontroluje, či vaše konfiguračné súbory neobsahujú chyby syntaxe, a potom ich pošle agentovi, ktorý aplikuje zmeny na vaše systémy.

Schopnosť overiť

Schopnosť používať kanály CI na aplikovanie zmien infraštruktúry vám umožňuje overiť, či tieto zmeny skutočne budú fungovať podľa očakávania. GitOps tiež ponúka možnosť nepretržitého overovania, kde agenti vo vašej infraštruktúre neustále monitorujú odchýlky.

Úložisko je jediným zdrojom pravdy. Z toho vyplýva, že akýkoľvek rozdiel pozorovaný v skutočnom systéme je chybou, ktorú je potrebné opraviť. Agent s prístupom do archívu a so zaistenými prostriedkami môže vykonať akciu na opravu aktuálneho stavu, ak sa už nezhoduje s vašimi príkazmi.

GitOps vám pomôže pozorovať vašu infraštruktúru. Deklaratívne konfiguračné súbory vysvetľujú, ako sa vaše systémy dostali do súčasného stavu. Môžete skontrolovať potvrdenia úložiska Git a porozumieť tomu, ako sa infraštruktúra v priebehu času menila.

GitOps môže tiež poskytnúť spôsob, ako vrátiť späť zmeny infraštruktúry. V najjednoduchšej forme sa návratom k predchádzajúcemu potvrdeniu obnoví predchádzajúca verzia vašich konfiguračných súborov. Ich skutočná aplikácia však môže byť náročná. Aj keď je možné kód vrátiť jednoduchým prepísaním súčasného nasadenia, „zvrátenie“ vytvárania - alebo odstraňovania - infraštruktúry je oveľa menej jednoduché.

Budete musieť vyhodnotiť nasadeného agenta, ktorý používate, aby ste zistili, či sú návratnosti realistické. Ak nie je možné nasadenie na mieste, môžete aspoň vrátiť späť potvrdenia vo svojom úložisku a znova ich nasadiť do čistého prostredia. Na obnovu údajov by ste potom použili svoje postupy obnovenia.

Výzvy s GitOps

Najväčšou prekážkou prijatia GitOps je nedostatočná zrelosť. Tento termín zostáva pre operačné tímy, ktoré môžu mať relatívne málo skúseností s pracovnými postupmi riadenými verziami, nepriehľadný.

Mnoho infraštruktúrnych tímov si zvykne na pracovné postupy, ktoré za posledné dve desaťročia zdokonalili. SSH vstupujú na servery, vykonávajú ich zmeny a dokumentujú ich na centrálne spravovanej wiki. Je to mimo kontroly, ale je to jednoduché a funguje to.

GitOps rieši nedostatok kontroly a môže zlepšiť viditeľnosť stavu systémov. Súčasne existuje krivka učenia, ktorá zahŕňa štruktúrovaný pracovný tok a veľmi odlišnú sadu nástrojov. Priamy prístup SSH už nie je vhodný. Namiesto toho vykonáte zmeny tak, že upravíte súbory a počkáte, kým ich použije kanál CI.

Získanie buy-inu od príslušných tímov môže byť najväčším problémom pri uvádzaní GitOps do novej organizácie. Buďte pripravení na to, že osoby s rozhodovacou právomocou nepochopia, kde je hodnota, alebo ju úplne neuznajú. Niektorí budú frustrovaní z toho, že sa musia zaväzovať, spájať a hľadať schválenie zmien, ktoré by mohli vykonať ručne pomocou rýchleho príkazu SSH. GitOps zostáva tam, kde bol DevOps pred niekoľkými rokmi, a čaká na rozsiahle prijatie mimo technickú literatúru.

Organizačný výpadok bokom, GitOps má aj praktické slabiny. Bežnou výzvou je nasadenie v niekoľkých rôznych prostrediach. Bežným prístupom je priradiť každému prostrediu vlastnú vetvu v úložisku. Ak máte veľa prostredí, rýchlo sa stane nepríjemným. Alternatívny prístup by mohol byť založený na viacerých úložiskách, možno pomocou submodulov Git, ale to len posunie nadbytočnosť inam.

GitOps je stále mladý koncept a neexistujú žiadne zavedené modely na jeho implementáciu. Bez referenčnej architektúry budete musieť experimentovať nezávisle. Pridáva sa tak do zoznamu neznámych pre organizácie posudzujúce vhodnosť modelu.

Zhrnutie

GitOps je prístup k správe IT infraštruktúry, ktorý ako zdroj pravdy používa úložisko Git. Píšete deklaratívne konfiguračné súbory, ktoré opisujú zdroje, ktoré chcete poskytnúť. Automatizovaný systém prevezme tieto súbory a použije ich na zmenu stavu vašej infraštruktúry.

Ako koncept má GitOps veľký zmysel. Zjednotením pracovného toku zužuje priepasť medzi vývojovými a operačnými tímami. Získate lepší prehľad o svojej infraštruktúre a možnosti aktualizovať verzie a vykonávať zmeny.

GitOps je však v mnohých prípadoch stále ťažko implementovateľný. Vyžaduje organizačný vstup, prijatie niektorých inherentných neefektívností a odhodlanie vyriešiť technické problémy, ktoré nevyhnutne nepredvídate. Organizácie, ktoré si vyberú GitOps, môžu očakávať väčšiu konzistenciu a štandardizáciu. Ale pre mnoho ďalších poskytnuté výhody ešte nie sú dostatočnou motiváciou na vrhanie príkazov CLI do terminálu správcu systému.

★ ★ ★ ★ ★