configuration management devops practices
Što je upravljanje konfiguracijom u praksi DevOps?
Koncept Kontinuirano testiranje u DevOpsu je detaljno objašnjeno u našem prethodnom vodiču.
Ključni naglasak upravljanja konfiguracijom u DevOpsu je pružanje,
- Infrastruktura kao kod
- Konfiguracija kao kod
Moram pročitati => Ekskluzivna serija vodiča za DevOps
koji je najbolji anti spyware
Brojne su prednosti „Infrastruktura kao kod“ i „Konfiguracija kao kod“ u praksi DevOps.
-
- Konfiguracije se kontroliraju verzijom
- Automatizirano i standardizirano
- Uklanja ovisnost
- Infra postavke bez pogrešaka
- Pojačava suradnju između Operacijskog i Razvojnog tima
- Ispravljanje odstupanja konfiguracije
- Tretiranje infrastrukture kao fleksibilnog resursa
- Automatizirano skaliranje infrastrukture
- Održavanje dosljednosti u postavkama
VIDEO Dio 4, blok 1: Upravljanje konfiguracijom- 23 minute 7 sekundi
Prijepis:
U ovom ćemo dijelu naučiti o Upravljanje konfiguracijom, upravljanje izdanjima i praćenje izvedbe aplikacija u DevOpsu.
Ovdje ćemo se u bloku 1 usredotočiti na Upravljanje konfiguracijom i razumjeti što je upravljanje konfiguracijom i kako se razlikuje u DevOpsu i tradicionalnim metodama.
Za početak, znajmo što je upravljanje konfiguracijom?
Upravljanje konfiguracijom, kako i samo ime objašnjava, nije ništa drugo nego upravljanje svim konfiguracijama okruženja na kojima je smještena softverska aplikacija.
Kao što znamo, imamo različita okruženja tijekom SDLC-a u DevOps-u, počevši od Unit testiranja, testiranja integracije, testiranja sustava, ispitivanja prihvaćanja i testiranja krajnjeg korisnika.
Također sam objasnio u svojim ranijim tutorijalima da bi okruženje postavljeno za ove testove postupno postajalo sve složenije kako se kreće prema pretprodukcijskom i proizvodnom okruženju.
Dakle, u osnovi je upravljanje konfiguracijom automatizirani postupak za upravljanje svim konfiguracijama svakog od ovih okruženja.
Koja je onda razlika između tradicionalnog upravljanja konfiguracijom i upravljanja konfiguracijom DevOps?
U našim tradicionalnim metodama upravljanja konfiguracijom, tim se koristio za upravljanje tim konfiguracijama različitih okruženja putem formalne dokumentacije, pri čemu je svaka od konfiguracija bila zabilježena u dokumentima, a tim za konfiguraciju ili upravitelj korišten za upravljanje verzijama tih dokumenata.
A kad i kad se podvrgne promjenama, on bi također preuzeo odgovornost za postavljanje okoliša i ručno upravljanje konfiguracijama
Sada su u DevOpsu svi ti procesi upravljanja konfiguracijom prilično dobro automatizirani, a konfiguracije su inkapsulirane u obliku koda ili skripti i kontrolirane putem alata za kontrolu verzija.
U tom kontekstu možemo nazvati da je Operativni tim integriran s Razvojem u upravljanje okruženjima putem alata za kontrolu jedne verzije.
Dakle, ključni naglasak upravljanja konfiguracijom u DevOpsu je pružanje,
-
-
- Infrastruktura kao kod
- Konfiguracija kao kod
-
Što zapravo znači 'Infrastruktura kao kôd'? To je definiranje cjelokupne definicije okoliša kao koda ili skripte, umjesto snimanja u formalnom dokumentu.
Što onda uključuje definicija okoliša? Definicija okoliša općenito uključuje, postavljanje poslužitelja, konfiguriranje mreža i postavljanje drugih računalnih resursa, koji su dio postavljene IT infrastrukture. Dakle, svi bi ti detalji bili zapisani u datoteku ili u obliku koda i prijavljeni u alat za kontrolu verzija.
Ova skripta ili kod, koji se provjeravaju u kontroli verzija, postat će jedini izvor definiranja okruženja ili čak ažuriranja tih okruženja.
Samo da dam jednostavan Primjer , ako moramo dodati poslužitelj u određeno okruženje, sve što bismo napravili je da ažuriramo te podatke u skripte okruženja i pokrenimo cjevovod za isporuku, umjesto da ručno idemo i vrtimo novo okruženje s dodanim poslužiteljem ili da tražimo pomoć ljudi administratora sustava da to učine.
Dakle, ljepota je u tome što programer ili ispitivač ne mora biti stručnjak za administraciju sustava da bi postavio svoje poslužitelje za razvoj ili testiranje.
Dakle, infrastruktura postavljena u DevOpsu bit će potpuno automatizirana i u osnovi slijedi skriptu koja se prijavljuje u kontrolu verzija počevši od instaliranja poslužitelja, njihovog konfiguriranja, instaliranja OS-a, dok se ne uspostave komunikacijski kanali tih instanci s raspoređenim softver.
Kakva je konfiguracija kao kod?
Konfiguracija kao kod nije ništa drugo nego definiranje svih konfiguracija poslužitelja ili bilo kojih drugih resursa kao koda ili skripte i njihovo provjeravanje u kontroli verzija.
Ove konfiguracijske skripte koje se provjeravaju u kontroli verzija pokreću se kao dio cjevovoda za postavljanje kako bi se automatiziralo postavljanje infrastrukture i njezinih konfiguracija.
Pa, definiranje konfiguracija uključuje parametre koji definiraju preporučene postavke za uspješno pokretanje softvera. Ili skup naredbi koje treba pokrenuti u početku za postavljanje softverske aplikacije. Ili to mogu biti konfiguracije svake od komponenti softvera koje treba postaviti ili određene korisničke uloge, korisničke privilegije itd.,
Jednostavan Primjer bilo bi postaviti preklopke značajke, gdje su zadane vrijednosti postavljene kao dio konfiguracijskog parametra.
Dodavanje još jedne luke vatrozidu bilo bi još jedno Primjer , koji se može ažurirati u skripti, a kasnije se te skripte pokreću kao dio cjevovoda za isporuku.
Dostupno je nekoliko alata za automatizaciju infrastrukture na tržištu. Malo je njih Kuhar, Lutka, Terraform, itd., Kuhar i Lutka su alat za upravljanje konfiguracijama na bazi rubina, dok je Terraform alat za pripremu.
Također, ovih dana budući da će gotovo sve aplikacije biti hostirane u oblaku, AWS, oni sami nude RESTAPI-je, koji se mogu iskoristiti u tu svrhu.
Imam ogroman popis prednosti upravljanja konfiguracijama u DevOpsu, umjesto definiranja infrastrukture i konfiguracija kao koda.
Krenimo kroz njih jedan po jedan.
Sve su konfiguracije i detalji infrastrukture kontrolirani verzijom, što je velika prednost u implementaciji DevOpsa.
# 1) To pomaže timu da automatizirano upravlja promjenama na poslužiteljima i konfiguraciji te pomaže u brzom uklanjanju pogrešaka ako bilo što ne uspije, u kratkom vremenskom rasponu, a omogućuje i brzi povratak na prethodnu verziju, bez nanošenja smetnji kupcima.
#dva) Budući da su ove skripte smještene na središnjem poslužitelju i svi u timu znaju što se nalazi u svakoj od ovih skripti i koje su promjene napravljene u svakoj od ovih verzija. To također omogućuje timu da se vrati na stariju verziju, ako postoji problem u najnovijim verzijama.
Zamislite, ako padne poslužitelj, koliko bi vremena trebalo da se to ručno vrati. A sada definiranjem infrastrukture kao upravljanja skriptama i verzijama, možemo je odmah vratiti odlaskom na raniju verziju.
# 3) Upravljanje konfiguracijama kao kodom također sprječava nekoga da slučajno unosi promjene u sustav i sprječava bilo kakvu štetu uzrokovanu kasnije u proizvodnji.
Budući da je upravljanje konfiguracijom potpuno automatizirano, ručna intervencija za postavljanje ili ažuriranje potpuno je eliminirana.
Zamislite utjecaj na cijenu, kvalitetu i vrijeme kada su ljudi prije ovisili o ljudskim resursima da bi ručno izvodili te konfiguracije i kada određene konfiguracije propuštaju ili nisu postavljene prema potrebi.
Dakle, automatizacija upravljanja konfiguracijom nije samo imala koristi u uštedi vremena već i u uklanjanju takvih ljudskih pogrešaka i poboljšanju kvalitete. Također, standard kodiranja pomogao je timu da slijedi navedeni standard u kodiranju i automatizaciji, umjesto da slijedi fantaziju svake osobe koja piše vodič za konfiguriranje.
Kao što je ranije spomenuto, konfiguracije koje se isporučuju kao kod uklonile su ovisnost o jednoj osobi ili timu koji se naziva config manager ili config team. Razvojni tim ne mora čekati da tim za konfiguriranje dođe i riješi bilo koji infra ili konfiguracijski problem.
Ili čak i za postavljanje infracrvene mreže i konfiguracija, koje su potpuno automatizirane i kontrolirane verzijom. Dakle, bilo tko u timu, bilo da je programer ili ispitivač, može okretati poslužitelj i provoditi konfiguracije u svoje svrhe razvoja i testiranja. Stoga je postavljanje poslužitelja i konfiguracija postalo neovisno o osobi.
Ovo također osigurava da isti poslužitelji ne koriste i razvojni i QA timovi za svoje aktivnosti, što je obično bio slučaj ranije.
Infrastruktura i konfiguracije definirane kao zajednički kod, zajedno s automatizacijom i kontrolom verzija, standardiziraju sva okruženja i postavke. Dakle, ovo ne samo da olakšava zadatak otklanjanja pogrešaka programerima, već uklanja i ljudske pogreške koje rezultiraju infra postavkama bez pogrešaka, inače koje bi mogle nanijeti veliku štetu, ako se ne otkriju rano.
Ovdje možemo jasno vidjeti jasnu suradnju između Deva i Ops-a, gdje se obojica oslanjaju na jedan izvor za provođenje infra postavke, a oba su tima aktivno uključena u automatizaciju i postavljanje cjelokupnog upravljanja konfiguracijom.
Ovaj zajednički rad na postizanju zajedničkog cilja pojačava suradnju između timova, razvoja i operacija.
Ispravljanje konfiguracijskog zanosa
Što je konfiguracijski pomak?
Male razlike i nedosljednosti između poslužitelja, što se ponekad događa zbog ručnog ažuriranja, koje se akumulira tijekom određenog vremenskog razdoblja, nazivaju se konfiguracijskim zanosom.
To nije dobra situacija, jer ova nedosljednost na poslužiteljima ostavlja određene programske datoteke poput manifesta, playbooka da se ne pokreću pouzdano na svim poslužiteljima i stoga dovodi do neuspjeha automatizacije. Dakle, to treba izbjegavati kako bi tim natjerao učinkovitu upotrebu automatizacije konfiguracija.
Upravljanje infra i konfiguracijom kao kodom i verzijom koja ih kontrolira pomoglo je timu da izbjegne ili ispravi bilo kakvu promjenu konfiguracije između različitih okruženja ili između razvojnih i proizvodnih postavki dosljednim održavanjem konfiguracija na svim poslužiteljima.
Dakle, tim se može najbolje uvjeriti u slične postavke konfiguracije na razvoju postavljenom kao u proizvodnji. To im također pomaže da simuliraju probleme s proizvodnjom u razvojnom okruženju.
Dakle, ovo pomaže u sprječavanju bilo kakvih neočekivanih promjena koje bi bilo koji od članova tima mogao pokušati napraviti na infra, što bi moglo prekinuti postavku i također prisiliti tim da ne mijenja promjene u postavci, osim ako nije prijavljen kao kod spremišta.
Isporuka infrastrukture i njene konfiguracije kao koda omogućili su timu da njome upravlja kao fleksibilnim resursom koji udovoljava dinamičnim poslovnim potrebama kupca.
To je neka vrsta plug and playa sada. Tim može posebno ući u određeni poslužitelj ili mrežu i unijeti promjene na njih. To može biti samo ažuriranje poslužitelja za pružanje usluga ili dodavanje ili modificiranje pohrane u određenoj mreži, ili čak ažuriranje OS-a, a sve se može samostalno ažurirati kao fleksibilni resurs.
Ranije je za promjenu jednog konfiguracijskog parametra trebalo puno vremena, pogotovo dok se zahtijevalo ažuriranje na svim poslužiteljima, ali sada je to samo jedan potez. Ažurirajte skriptu i prenesite na alat za kontrolu verzija i sve je gotovo.
Postoji fleksibilnost da se u potpunosti ukine postojeća infrastruktura i potpuno otvori još jedna. Dakle, upravljanje infrastrukturom i konfiguracijama sada je postalo prilično jednostavno. Pa, rješenja zasnovana na oblaku omogućila su da se infrastruktura automatski poveća dodavanjem dodatnih računalnih resursa ili resursa za pohranu prema potrebi i smanjenjem kada nisu potrebni.
To je omogućilo optimizaciju korištenja resursa na temelju potražnje. Ako želimo povećati infrastrukturu povećanjem veličine stroja, možemo to učiniti odmah. Slično tome, ako želimo smanjiti ili možda dodati drugu postavku ili dodati još prednjih krajeva, to možemo učiniti za nekoliko sekundi jednostavnim ažuriranjem u kodu i pokretanjem automatiziranog cjevovoda.
Posljednje, ali ne najmanje važno, infrastruktura, isporuka kao koda u kontroliranom okruženju pomaže u održavanju dosljednosti okruženja u različitim postavkama. To također pomaže u rješavanju problema. I ovu sam točku donekle obrađivao donekle govoreći o zanosu konfiguracije.
To je to i ovo završava naš razgovor o upravljanju konfiguracijama u DevOpsu o tome što su infrastruktura i konfiguracije kao kod i koje su njegove prednosti.
U našem nadolazećem tutorialu raspravit ćemo aspekti upravljanja izdanjima u DevOpsu.
Preporučena literatura
- Upravljanje izdanjima u DevOpsu
- Vodič za testiranje DevOpsa: Kako će DevOps utjecati na QA testiranje?
- Kontinuirano testiranje u DevOpsu
- Vodič za ispitivanje konfiguracije s primjerima
- Kontinuirano postavljanje u DevOps
- Najbolji DevOps alati otvorenog koda (s instalacijom i konfiguracijom)
- 10 najboljih alata za kontinuirano testiranje za DevOps testiranje (popis 2021)
- Pregled alata za upravljanje testom TestLodge