Водич за одступање конфигурације и како га спречити

Promena konfiguracije predstavlja značajan izazov za sve programere koji rade sa infrastrukturom kao kodom (Infrastructure as Code – IaC). Ovaj tekst će vas upoznati sa upravljanjem promenama konfiguracije, naglašavajući njegovu važnost, uzroke i moguća rešenja.

Šta je zapravo pomeranje konfiguracije?

Vlasnici aplikacija konstantno moraju prilagođavati svoje aplikacije i prateću infrastrukturu kako bi unapredili korisničko iskustvo. Ovi korisnici mogu biti interni ili eksterni saradnici kompanije.

Kao rezultat ovih ažuriranja i promena, konfiguracija aplikacija i infrastrukture se modifikuje. Ove izmene mogu poboljšati ili pogoršati stanje sistema. Termin „pomeranje konfiguracije“ opisuje upravo tu pojavu.

Kako dolazi do pomeranja konfiguracije?

Potencijal za odstupanje konfiguracije raste sa složenošću sistema za razvoj i isporuku softvera. Kod se obično kreće od radne stanice programera, preko deljenog razvojnog okruženja, okruženja za testiranje i osiguranje kvaliteta, sve do produkcionog okruženja.

Uticaj pomeranja se povećava sa udaljenošću od izvora u okviru lanca isporuke. Čak i manje razlike između verzije paketa instalirane na programerovom laptopu i verzije na test serveru mogu usporiti proces otklanjanja grešaka. Očekuje se da su isključivo staging i produkcija replike jedna druge. Pritisak je ogroman, jer mnoge kompanije primenjuju novi kod više puta dnevno.

Uobičajeni uzroci odstupanja konfiguracije

Nedostatak komunikacije

Dešava se da timovi na višim nivoima ne komuniciraju promene koje su izvršili sa nižim timovima, što dovodi do problema u celom sistemu.

Hitne ispravke

Hitne ispravke su izmene koda koje se uvode da bi se rešio kritični problem koji ne može čekati sledeće planirano ažuriranje aplikacije. Ponekad inženjeri koji rade na rešavanju problema ne uspeju da unesu ili dokumentuju istu ispravku u drugim okruženjima, što rezultira pomeranjem konfiguracije. Često, ponovno uvođenje prvobitnog problema rešava odstupanje.

Kritična ažuriranja paketa

Kritična ažuriranja paketa su slična hitnim ispravkama. Oba se primenjuju brzo. Glavna razlika je što se kritična ažuriranja paketa uvode u nadi da će sprečiti buduće incidente. Stoga, ovakva ažuriranja mogu izazvati pomeranje na sličan način kao i hitne ispravke.

Nedostatak automatizacije

Automatizacija ne eliminiše u potpunosti mogućnost odstupanja konfiguracije, ali značajno smanjuje šanse za njegovu pojavu.

Promene iz praktičnosti

Ponekad su promene koje programeri naprave privremene. Na primer, pomeranje se dešava ako programer instalira novi paket na test server da isproba neku funkcionalnost i zaboravi da ga vrati u prethodno stanje.

Zašto je upravljanje konfiguracijom bitno?

Jedan od razloga zašto pomeranje konfiguracije može biti štetno jeste to što ako ga niko ne prati konstantno, ono može ostati neotkriveno dok postepeno narušava temelje vaše infrastrukture, slično kao curenje vode u zidu kuće.

Kada se otkrije odstupanje konfiguracije, potrebno je vreme da se utvrdi uzrok, što je dragocen resurs u hitnim situacijama.

U razvoju softvera, odstupanje je značajan faktor koji usporava cikluse izdanja. Može izazvati nepotreban trud i ometati produktivnost programera.

Niži troškovi

Detaljan pregled IT infrastrukture pomaže vam da identifikujete dupliranje i prekomerno obezbeđivanje resursa, što dovodi do smanjenja troškova.

Povećana produktivnost

Klasteri sa stabilnim i poznatim konfiguracijama omogućavaju serijsko upravljanje i izgradnju infrastrukture. Smanjuje se potreba za ručnim upravljanjem pojedinačnim postavkama i eliminišu se jedinstveni, „pahuljičasti“ serveri.

Brže otklanjanje grešaka

Konzistentne konfiguracije omogućavaju timovima da isključe greške u konfiguraciji kao moguće uzroke problema. Timovi se mogu fokusirati na druge potencijalne uzroke, rešavajući probleme brže, jer ne moraju da traže odstupanja u konfiguraciji između servera, klastera servera ili okruženja.

Problemi uzrokovani pomeranjem konfiguracije

Sigurnosni problemi

Nesigurne konfiguracije su čest uzrok sigurnosnih propusta. Promene konfiguracije mogu učiniti sistem ranjivijim na različite napade i proboje mreže, čak i ako je početna konfiguracija bila zaštićena.

Zastoje

Greška u konfiguraciji može omogućiti napadaču da iskoristi DoS propust ili kompromituje ključni server, što može dovesti do značajnog prekida rada. Ako promenite konfiguraciju mrežnog uređaja i ona utiče na performanse, a vaša „zlatna konfiguracija“ nije ispravna, oporavak sistema će trajati znatno duže.

Nepoštovanje propisa

Za usklađenost sa propisima poput ISO 27001, PCI-DSS i HIPAA, neophodne su stroge sigurnosne kontrole. Promene konfiguracije mogu dovesti do kršenja usklađenosti ukoliko se ne kontrolišu.

Smanjenje performansi

Konfiguracija je obično najoptimalnija kada je u predviđenom stanju. Nepredviđene izmene mogu ometati optimizaciju mreže, stvarajući uska grla i konflikte.

Gubitak vremena

Rešavanje problema sa mrežom koju ne razumete ili koja se ne podudara sa dokumentacijom o vašoj mreži može oduzeti puno vremena. Dakle, promena konfiguracije može dovesti do komplikovanijeg rešavanja IT problema, koji možda ne bi ni postojali ili bi bili lakše rešivi da je mreža bila u predviđenom stanju, pored zastoja za korisnike.

Uobičajene greške pri praćenju odstupanja konfiguracije

U idealnom scenariju, svi serveri u razvojnom okruženju (Dev/QA/Staging/Prod) bi imali iste konfiguracije. Nažalost, u stvarnosti to nije slučaj. U komercijalnim okruženjima, vlasnici aplikacija često menjaju infrastrukturu kada se uvode nove softverske funkcije.

Praćenje odstupanja konfiguracije je ključno za osiguranje da softverska okruženja budu što je moguće homogenija. Upravljanje konfiguracijom smanjuje troškove, povećava produktivnost i brzinu otklanjanja grešaka i poboljšava korisničko iskustvo.

Za uspešno praćenje, organizacije moraju izbegavati greške čak i kada koriste upravljanje konfiguracijom i prate promene konfiguracije.

Uobičajene greške su navedene u nastavku:

Neodržavanje CMDB-a

Održavanje baze podataka za upravljanje konfiguracijom (Configuration Management Database – CMDB) ažurnom je važan element upravljanja konfiguracijom. Informacije o mrežnom hardveru i softveru mogu se pregledati na jednom mestu koje pruža CMDB. Podaci se prikupljaju za svako sredstvo ili konfiguracionu stavku, pružajući vidljivost i transparentnost.

Propust u održavanju CMDB-a izlaže kompanije riziku da ne razumeju u potpunosti kako konfiguracija jedne stavke utiče na drugu. Bez razumevanja posledica, organizacije rizikuju štetu na infrastrukturi i sigurnosti.

CMDB-ovi mogu biti izazovni za administraciju, pogotovo sa povećanjem broja sredstava, ali efikasna organizacija i upravljanje bazom podataka su ključni za uspešno praćenje promena konfiguracije i razumevanje infrastrukture.

Nemate plan za praćenje odstupanja konfiguracije

Organizacije često imaju kompleksnu infrastrukturu koju treba pratiti. Određivanje koje komponente treba najviše nadgledati je od ključnog značaja. U suprotnom, upravljanje konfiguracijom može brzo postati nekontrolisano i haotično.

Organizacije moraju odrediti koja sredstva su od suštinske važnosti za praćenje na nivou cele kompanije i za pojedinačne poslovne jedinice. Najvažniji sistemi koji se prate razlikovaće se od jedinice do jedinice i od industrije do industrije.

Ne nadgleda se automatski

Postoji nekoliko načina za praćenje promena konfiguracije. Međutim, neki pristupi su efikasniji i sofisticiraniji od drugih.

Ručno praćenje odstupanja konfiguracije je skupo i dugotrajno. Takođe postoji mogućnost ljudske greške. Ovo nije najbolja tehnika za praćenje promena konfiguracije ukoliko kompanija nema vrlo malu infrastrukturu.

Automatsko praćenje je najnapredniji i najefikasniji način održavanja konfiguracija u željenom stanju. Namenski sistemi za praćenje konfiguracije mogu odmah da detektuju odstupanja i često nude rešenja, uključujući brzu korekciju. Ovo osigurava da se poslovna infrastruktura što pre vrati u željeno stanje uz minimalne posledice.

Kako pratiti odstupanje konfiguracije:

Kada shvatite kakvu štetu odstupanje konfiguracije može da izazove, postaje jasno zašto njegovo otkrivanje treba biti glavni prioritet. Prvi korak u tom procesu je znati šta treba da se sačuva i zašto je to prikazano kao promena koja je stvorila odstupanje.

Znajte šta tražite

Možete kategorizovati svoju organizaciju tako što ćete identifikovati komponente koje su ključne za organizaciju u celini i one koje su ključne za svaku pojedinačnu poslovnu jedinicu.

Ovo se razlikuje od jedinice do jedinice i može biti opširno u visoko regulisanim industrijama ili se može fokusirati isključivo na kritične sistemske fajlove/aplikacije. Značaj sistema će odrediti učestalost i ozbiljnost sistema za praćenje.

Postavite osnovnu liniju

Uvek će postojati razlike između produkcionog okruženja i faza testiranja zbog različitih podešavanja. Osnovna linija za proveru odstupanja se kreira tako što se definiše kakav bi svaki korak trebao biti i koje vrste odstupanja su dozvoljene.

Rane faze testiranja mogu biti fleksibilnije i dopuštati veći broj odstupanja u podešavanjima, za razliku od faza testiranja prihvatljivosti od strane korisnika ili faza produkcije, gde se zahteva nula tolerancije na odstupanja.

Pratite svoj sistem

Neophodan nivo praćenja će varirati u zavisnosti od zrelosti organizacije, njenih postojećih sistema, alata, ukupnog broja konfiguracija koje treba proveriti i nivoa neophodne kontrole. U zavisnosti od zahteva i usklađenosti, praćenje može varirati za svaku jedinicu unutar organizacije.

Kako sprečiti odstupanje konfiguracije

Nakon što se definiše osnovna linija konfiguracije i dozvoljena odstupanja, monitoring mora osigurati da se infrastruktura održava u odgovarajućoj konfiguraciji. Bez strategije praćenja, pravljenje planova konfiguracije i dokumentacije je gubljenje vremena.

Mogu se koristiti različiti pristupi za praćenje promena konfiguracije, a mnoge kompanije kombinuju metodologije i alate zasnovane na njihovoj zrelosti i zahtevima usklađenosti.

Stalno ručno praćenje

Pojedinačne konfiguracije mašina mogu se ručno pregledati i uporediti sa poznatom konfiguracijskom datotekom. Zbog ljudskog faktora, ovaj proces je sklon greškama i skup je u smislu radnih sati. Treba ga koristiti samo u manjem obimu za nekoliko specifičnih klastera servera ili u kompanijama sa malom infrastrukturom.

Revizije

Tim ručno ispituje konfiguracije servera kao deo revizija konfiguracije, upoređujući ih sa određenim modelom. Ove revizije mogu biti skupe, jer zahtevaju specijalističko znanje kako bi se utvrdilo kako sistem treba da bude izgrađen, kao i detaljnu istragu svakog neprijavljenog odstupanja, kako bi se odlučilo da li je odstupanje prihvatljivo ili ne.

Revizorski tim takođe vrši potrebna prilagođavanja konfiguracionih dokumenata koja će se primenjivati tokom sledeće revizije. Revizije se obično primenjuju za klastere visoke vrednosti ili one koji moraju ispunjavati određene standarde, i sprovode se redovno, uglavnom nekoliko puta godišnje, zbog vremena i troškova.

Revizija garantuje doslednu i ponovljivu konfiguraciju servera u skladu sa unapred definisanim rasporedom.

Međutim, do sledeće revizije, podešavanja će se promeniti i sve više će odstupati od željene konfiguracije.

Automatsko praćenje u realnom vremenu

Automatsko praćenje u realnom vremenu je najsofisticiraniji način održavanja konfiguracija u željenom stanju. Da bi se to postiglo, serveri ili grupe servera moraju biti kreirani zajedno sa opisom kako treba da budu konfigurisani, koristeći namenske alate za podešavanje servera.

Ovi programi koriste laganog agenta za nadgledanje konfiguracije servera u okviru te grupe i upoređuju je sa njegovom definicijom.

Ovaj automatizovani proces odmah upozorava na odstupanje i obično nudi nekoliko mogućnosti za ispravljanje odstupanja servera.

Završne reči:

Nedoslednosti u konfiguracionim stavkama (CI) između računara ili uređaja su glavni uzrok promena konfiguracije. Pomeranje konfiguracije se prirodno dešava u okruženjima centara podataka kada se modifikacije softvera i hardvera vrše u hodu, bez detaljne dokumentacije ili praćenja.

Mnogi problemi sa visokom dostupnošću i sistemima za oporavak od katastrofa se mogu pripisati promenama konfiguracije. Da bi se smanjilo odstupanje konfiguracije, administratori treba da vode precizne evidencije mrežnih adresa hardverskih uređaja, zajedno sa verzijama softvera instaliranih na njima i izvršenim nadogradnjama.