Konfiguraatiodrifti ei yleensä synny huolimattomuudesta.
Tyypillinen tilanne on kiireinen tuotantohäiriö. Palvelu on alhaalla, asiakkaat odottavat ja tiimi yrittää palauttaa järjestelmän toimintaan mahdollisimman nopeasti.
Joku kirjautuu palvelimelle ja tekee korjauksen käsin.
Tilanne ratkeaa.
Parin viikon kuluttua kukaan ei enää muista tarkalleen, mitä muutettiin.
Kun seuraava käyttöönotto tehdään, ympäristö ei enää vastaa dokumentaatiota eikä automaatiota.
Olen nähnyt organisaatioita, joissa ongelmaa etsittiin päiviä ennen kuin huomattiin, että yksi tuotantopalvelin käytti eri konfiguraatiota kuin muut saman klusterin palvelimet. Kukaan ei ollut muuttanut asetuksia tarkoituksella väärin. Muutos oli vain jäänyt elämään vuosien aikana.
Joskus ajatellaan, että AWS, Azure tai Google Cloud ratkaisevat tämän automaattisesti.
Todellisuudessa pilvi voi jopa lisätä riskiä.
Pilvipalveluissa muutoksia on helppo tehdä käyttöliittymästä muutamalla klikkauksella. Tämä nopeuttaa työtä, mutta samalla syntyy houkutus tehdä korjauksia suoraan tuotantoon.
Jos muutosta ei viedä takaisin Terraformiin, CloudFormationiin tai muuhun infrastruktuurin hallintamalliin, ympäristön todellinen tila alkaa erota dokumentoidusta tilasta.
Monessa tapauksessa ongelma löytyy vasta seuraavan käyttöönoton yhteydessä, kun automaatio yrittää rakentaa ympäristön uudelleen vanhojen määritysten perusteella.
Yksi tehokkaimmista tavoista hallita konfiguraatiodriftiä on siirtää määritykset versionhallintaan.
Kun verkot, palvelimet, käyttöoikeudet ja muut resurssit määritellään koodina, muutoksista jää jälki.
Samalla voidaan nähdä:
• kuka teki muutoksen
• milloin muutos tehtiin
• miksi muutos tehtiin
• mitä vaikutuksia muutoksella oli
Tämä ei estä kaikkia ongelmia, mutta vähentää merkittävästi tilanteita, joissa ympäristö alkaa elää omaa elämäänsä.
Jos ympäristöissä esiintyy jatkuvasti poikkeamia, syy ei välttämättä ole tekninen.
Taustalla voi olla puutteellinen muutoshallinta, epäselvät vastuut tai liian kiireinen toimintamalli.
Siksi ongelmaa ei kannata tarkastella pelkästään infrastruktuurin näkökulmasta.
Jos prosessi sallii hallitsemattomat muutokset, uusia poikkeamia syntyy riippumatta siitä, mitä työkaluja käytetään.