configuration management devops practices
Čo je správa konfigurácie v postupoch DevOps?
Koncepcia Nepretržité testovanie v DevOps bol podrobne vysvetlený v našom predchádzajúcom návode.
Kľúčovým vrcholom správy konfigurácie v DevOps je poskytovanie,
- Infraštruktúra ako kód
- Konfigurácia ako kód
Musíte prečítať => Exkluzívna séria výučbových programov DevOps
najlepší bezplatný prevodník súborov pre Windows 10
V praxi DevOps má množstvo výhod „Infraštruktúra ako kód“ a „Konfigurácia ako kód“.
-
- Konfigurácie sú riadené verziou
- Automatizované a štandardizované
- Odstráni závislosť
- Bezchybné infra nastavenia
- Podporuje spoluprácu medzi operačným a vývojovým tímom
- Oprava driftu konfigurácie
- Zaobchádzanie s infraštruktúrou ako s flexibilným zdrojom
- Automatizované škálovanie infraštruktúry
- Zachovanie konzistencie v nastaveniach
VIDEO Časť 4 Blok 1: Správa konfigurácie- 23 minút 7 sekúnd
Prepis:
V tejto časti sa dozvieme o Správa konfigurácií, správa vydaní a monitorovanie výkonu aplikácií v DevOps.
Tu sa v bloku 1 zameriame na správu konfigurácie a pochopíme, čo je správa konfigurácie a v čom sa líši v DevOps a tradičných metódach.
Na začiatok si povedzme, čo je Configuration Management?
Správa konfigurácie, ako už samotný názov vysvetľuje, nie je nič iné ako správa všetkých konfigurácií prostredí, v ktorých je softvérová aplikácia hostiteľom.
Ako vieme, v rámci SDLC v DevOps máme rôzne prostredia, počnúc testovaním jednotiek, testovaním integrácie, testovaním systému, testom prijatia a testovaním koncových používateľov.
Vo svojich predchádzajúcich tutoriáloch som tiež vysvetlil, že prostredie pripravené pre tieto testy sa bude postupne komplikovať, keď bude smerovať k predprodukčnému a produkčnému prostrediu.
Správa konfigurácií je teda v podstate automatizovaný proces na správu všetkých konfigurácií každého z týchto prostredí.
Aký je potom rozdiel medzi tradičnou správou konfigurácie a správou konfigurácie DevOps?
V našich tradičných metódach riadenia konfigurácie používal tím tieto konfigurácie rôznych prostredí na správu prostredníctvom formálnej dokumentácie, pričom každá z konfigurácií sa zaznamenávala v dokumentoch a konfiguračný tím alebo správca používaný na správu verzií týchto dokumentov.
Akonáhle dôjde k zmenám, prevezme tiež zodpovednosť za nastavenie prostredia a manuálne spravovanie konfigurácií
Teraz sú v DevOps všetky tieto procesy správy konfigurácie zvyčajne celkom automatizované a konfigurácie sú zapuzdrené vo forme kódu alebo skriptov a riadené pomocou nástroja na správu verzií.
V tejto súvislosti môžeme nazvať, že operačný tím je integrovaný s vývojom do riadenia prostredí prostredníctvom nástroja na kontrolu jednej verzie.
Kľúčovým vrcholom správy konfigurácie v DevOps je teda poskytovanie,
-
-
- Infraštruktúra ako kód
- Konfigurácia ako kód
-
Čo vlastne znamená „Infraštruktúra ako kód“? Definuje celú definíciu prostredia ako kód alebo skript namiesto zaznamenávania do formálneho dokumentu.
Čo potom zahŕňa definícia prostredia? Definícia prostredia všeobecne zahŕňa nastavenie serverov, konfiguráciu sietí a nastavenie ďalších výpočtových zdrojov, ktoré sú súčasťou nastavenia IT infraštruktúry. Všetky tieto podrobnosti by teda boli vypísané ako súbor alebo vo forme kódu a zapísané do nástroja na správu verzií.
Tento skript alebo kód, ktorý sa začiarkne do kontroly verzie, by sa stal jediným zdrojom definovania prostredia alebo dokonca jeho aktualizácie.
Len pre jednoduchosť Príklad , ak musíme pridať server do konkrétneho prostredia, stačí, aby sme tieto informácie aktualizovali do skriptov prostredia a spustili doručovací kanál, namiesto manuálneho prechodu a roztočenia nového prostredia s pridaným serverom alebo hľadania pomoc administrátorov systému.
Krása tu spočíva v tom, že vývojár alebo tester nemusí byť odborníkom na správu systému, aby mohol nastavovať svoje servery na účely vývoja alebo testovania.
Infraštruktúra nastavená v systéme DevOps bude teda úplne automatizovaná a v zásade sleduje skript, ktorý je zapísaný do kontroly verzie, počnúc inštaláciou serverov, ich konfiguráciou, inštaláciou operačného systému, až kým sa s nasadeným nevytvoria komunikačné kanály týchto inštancií. softvér.
Aká je konfigurácia ako kód?
Konfigurácia ako kód nie je nič iné ako definovanie všetkých konfigurácií serverov alebo iných zdrojov ako kódu alebo skriptu a ich kontrola nad verziou verzií.
Tieto konfiguračné skripty, ktoré sa začiarknu do riadenia verzií, sa spúšťajú ako súčasť potrubia nasadenia s cieľom automatizovaného nastavenia infraštruktúry a jej konfigurácií.
Definovanie konfigurácií zahrnuje parametre, ktoré definujú odporúčané nastavenia pre úspešné spustenie softvéru. Alebo súbor príkazov, ktoré sa majú spustiť pôvodne na nastavenie softvérovej aplikácie. Alebo to môžu byť konfigurácie všetkých komponentov softvéru, ktoré sa majú nastaviť, alebo konkrétne užívateľské roly, užívateľské oprávnenia atď.,
Jednoduché Príklad by bolo nastavenie prepínačov funkcií, kde sú predvolené hodnoty nastavené ako súčasť konfiguračného parametra.
Pridanie ďalšieho portu do brány firewall by bolo ďalším Príklad , ktoré je možné v skripte aktualizovať a neskôr sa tieto skripty spustia ako súčasť doručovacieho potrubia.
Na vykonávanie automatizácie infraštruktúry na trhu je k dispozícii niekoľko nástrojov. Len málo z nich je Chef, Puppet, Terraform atď., Chef and Puppet sú nástrojom na správu konfigurácie na základe rubínov, zatiaľ čo Terraform je nástrojom na tvorbu rezerv.
V dnešnej dobe, pretože takmer všetky aplikácie budú hostené v cloude, AWS, poskytujú aj samotné RESTAPI, ktoré je možné na tento účel využiť.
Mám obrovský zoznam výhod správy konfigurácií v DevOps, namiesto toho, aby som definoval infraštruktúru a konfigurácie ako kód.
Prejdime si ich jeden po druhom.
Všetky konfigurácie a detaily infraštruktúry sú riadené verziou, čo je veľkou výhodou pri implementácii DevOps.
# 1) To pomáha tímu automatizovaným spôsobom spravovať zmeny na serveroch a konfigurácii a pomáha rýchlo ladiť, ak niečo zlyhá, v krátkom časovom rozmedzí a tiež umožňuje rýchly návrat k predchádzajúcej verzii bez toho, aby došlo k prerušeniu prevádzky zákazníkov.
#dva) Pretože sú tieto skripty umiestnené na centrálnom serveri a každý v tíme vie, čo sa v nich nachádza a aké sú zmeny vykonané v každej z týchto verzií. To tiež umožňuje tímu vrátiť sa k staršej verzii, ak sa v najnovších verziách vyskytne problém.
Predstavte si, že ak dôjde k zlyhaniu servera, koľko času by trvalo jeho ručné obnovenie. A teraz, keď definujeme infraštruktúru ako riadenie skriptu a verzie, môžeme ju okamžite obnoviť prechodom na staršiu verziu.
# 3) Správa konfigurácií ako kódu tiež zabráni niekomu v náhodnom vykonaní zmien v systéme a zabráni akýmkoľvek škodám spôsobeným neskôr vo výrobe.
Pretože správa konfigurácie je úplne automatizovaná, sú úplne vylúčené manuálne zásahy do nastavenia alebo aktualizácie.
Predstavte si vplyv na náklady, kvalitu a čas, keď predtým boli ľudia závislí od ľudských zdrojov, aby tieto konfigurácie vykonali manuálne a keď niektoré konfigurácie chýbajú alebo nie sú nastavené podľa potreby.
Automatizácia správy konfigurácií teda nielenže prospela pri úspore času, ale aj pri eliminácii takýchto ľudských chýb a zlepšovaní kvality. Štandard kódovania tiež pomohol tímu pri sledovaní špecifikovaného štandardu pri kódovaní a automatizácii namiesto toho, aby sledoval fantáziu každého človeka, ktorý píše sprievodcu konfiguráciou.
Ako už bolo spomenuté vyššie, konfigurácie dodávajúce ako kód odstránili závislosť na jednej osobe alebo na tíme, ktorý sa volá správca konfigurácie alebo konfiguračný tím. Vývojový tím nemusí čakať na príchod konfiguračného tímu a opravu akýchkoľvek problémov s infra alebo konfiguráciou.
Alebo dokonca pre nastavenie infra a konfigurácií, ktoré sú úplne automatizované a riadené verziou. Ktokoľvek v tíme, vývojár alebo tester, môže otáčať serverom a vykonávať konfigurácie pre účely vývoja a testovania. Preto sa nastavenie servera a konfigurácií stalo nezávislými na osobe.
To tiež zaisťuje, že vývojové tímy a tímy QA nepoužívajú rovnaké servery na svoje činnosti, čo sa bežne stávalo skôr.
Infraštruktúra a konfigurácie definované ako spoločný kód spolu s automatizáciou a riadením verzií štandardizujú všetky prostredia a nastavenia. Toto nielenže uľahčuje vývojárom ladenie, ale tiež eliminuje ľudské chyby vedúce k bezchybnému infra nastaveniu, inak by mohlo dôjsť k obrovskému poškodeniu, ak by nebolo zistené skôr.
Tu môžeme jasne vidieť jasnú spoluprácu medzi Dev a Ops, kde sa obaja pri realizácii infra nastavenia spoliehajú na jediný zdroj a oba tímy sa aktívne podieľajú na automatizácii a nastavovaní celej správy konfigurácie.
Táto spolupráca pri dosahovaní spoločného cieľa podporuje spoluprácu medzi tímami, vývojom aj prevádzkou.
Oprava driftu konfigurácie
Čo je konfiguračný posun?
Malé rozdiely a nezrovnalosti medzi servermi, ktoré sa niekedy dejú v dôsledku manuálnej aktualizácie, ktorá sa hromadí v určitom časovom období, sa nazývajú Configuration drift.
To nie je dobrá situácia, pretože táto nekonzistencia na serveroch ponecháva určité programové súbory ako manifest, hracia kniha, ktorá sa nedá spoľahlivo spustiť na všetkých serveroch, a preto vedie k zlyhaniu automatizácie. Tomu je preto potrebné sa vyhnúť, aby tím mohol efektívne využívať automatizáciu konfigurácií.
Správa infra a konfigurácie ako kódu a verzie, ktorá ich riadi, pomohla tímu vyhnúť sa alebo opraviť akýkoľvek druh konfiguračného driftu medzi rôznymi prostrediami alebo medzi vývojovým a produkčným nastavením dôsledným udržiavaním konfigurácií na všetkých serveroch.
Tím teda môže byť najlepšie zaistený podobnými konfiguračnými nastaveniami pri nastavovaní vývoja ako pri produkcii. To im tiež pomáha simulovať problémy s produkciou v vývojovom prostredí.
To teda pomáha predchádzať akýmkoľvek neočakávaným zmenám, ktoré by sa mohli pokúsiť urobiť ktoríkoľvek z členov tímu na serveri infra, čo by mohlo narušiť nastavenie a tiež vynútiť, aby tím v nastavení nevykonával žiadne zmeny, pokiaľ nie sú prihlásení ako kód do úložiska.
Poskytovanie infraštruktúry a jej konfigurácie ako kódu umožnilo tímu spravovať ju ako flexibilný zdroj na splnenie dynamických obchodných potrieb zákazníka.
Je to teraz druh plug and play. Tím sa môže konkrétne dostať na konkrétny server alebo sieť a vykonať v nich zmeny. Môže to byť iba aktualizácia zaisťovacieho servera alebo pridanie alebo úprava úložiska v konkrétnej sieti alebo dokonca aktualizácia operačného systému a všetko je možné nezávisle aktualizovať ako flexibilný zdroj.
Predtým, kým sa zmenil jeden konfiguračný parameter, to skutočne trvalo dosť času, najmä keď sa vyžadovala aktualizácia na všetkých serveroch, ale teraz je to len na jeden krok. Aktualizujte skript a nahrajte ho do nástroja na správu verzií. Hotovo.
Existuje flexibilita na úplné vyradenie existujúcej infraštruktúry a na vytvorenie ďalšej. Správa infraštruktúry a konfigurácií je teraz celkom ľahká. Cloudové riešenia umožnili, aby sa infraštruktúra automaticky zväčšila pridaním ďalších výpočtových alebo úložných zdrojov podľa potreby a zmenšením, ak nie sú potrebné.
To umožnilo optimalizáciu využitia zdrojov na základe dopytu. Ak chceme rozšíriť infraštruktúru zväčšením veľkosti stroja, môžeme to urobiť okamžite. Podobne, ak chceme škálovať alebo možno pridať ďalšie nastavenie alebo pridať ďalšie klientske rozhrania, môžeme to urobiť za pár sekúnd jednoduchou aktualizáciou v kóde a spustením automatizovaného kanálu.
V neposlednom rade infraštruktúra poskytujúca ako kód v kontrolovanom prostredí pomáha pri udržiavaní konzistencie prostredí v rôznych nastaveniach. To pomáha aj pri ladení problému. Tomuto bodu som sa do istej miery venoval tiež skôr, keď hovorím o driftovaní konfigurácie.
To je všetko a toto završuje náš rozhovor o správe konfigurácie v DevOps, o tom, čo je infraštruktúra a konfigurácie ako kód a aké sú ich výhody.
V našom pripravovanom návode si povieme aspekty správy vydaní v DevOps.
Výukový program PREV | NEXT Tutorial
Odporúčané čítanie
- Správa vydaní v DevOps
- Výukový program pre testovanie DevOps: Ako DevOps ovplyvní testovanie kvality?
- Nepretržité testovanie v DevOps
- Výukový program na testovanie konfigurácie s príkladmi
- Nepretržité nasadenie v DevOps
- Najlepšie otvorené nástroje DevOps (s inštaláciou a konfiguráciou)
- Top 10 nástrojov na nepretržité testovanie na testovanie DevOps [zoznam 2021]
- Recenzia nástroja na správu testov TestLodge