Mitigating configuration drift in infrastructure-as-code systems

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis

Department

Mcode

Language

en

Pages

48

Series

Abstract

Infrastructure-as-code (IaC) is widely utilized in cloud systems, which evolve and expand quickly and are prone to configuration drift. The mismatch between the actual environment state and the environment IaC definition leads to limited visibility in the environment, increased complexity and uncertainness. Some solutions that attempt to fix configuration drift exist already, but they are either platform dependent or utilize third party tools to achieve this. In order to resolve configuration drift, we developed an application called Driftless, which utilizes and automates IaC framework's own change management capabilities to assemble a complete view of changes in the infrastructure managed by IaC and to import existing resources that are not yet managed by IaC. It also actively searches for new unmanaged resources, as IaC frameworks themselves lack visibility to them. Driftless produces field-level change data for the resources within our scope, based on which the user can align their infrastructure and their IaC configurations. It also successfully generated import commands for unmanaged resources, which created functional IaC configurations and state entries for the new resources. These two outputs were combined to synchronize the actual infrastructure state with the desired state in both IaC managed and unmanaged parts of the infrastructure.

Infrastruktuuri koodina (IaC) on laajasti käytetty viitekehys pilviympäristöissä, jotka kehittyvät ja kasvavat opeasti ja altistuen ``configuration drift'' -ilmiölle. Eroavuudet ympäristön oikean tilan ja sen IaC määritelmien välillä johtaa rajoitettuun ympäristön näkyvyyteen, kasvaneeseen monimutkaisuuteen ja epävarmuuteen. Olemassaolevia ratkaisuita ilmiön korjaamiseksi on olemassa, mutta ne ovat joko alustasidonnaisia tai hyödyntävät kolmannen osapuolen työkaluja. Auttaaksemme ``Configuration drift'' -ongelmien selvittämisessä kehitimme ratkaisun nimeltä Driftless, joka hyödyntää ja automatisoi IaC viitekehyksen omia muutoksenhallintakyvykkyyksiä näkyvyyden luomiseksi IaC:n hallinnoimaan ympäristöön sekä uusien resurssien tuomiseksi osaksi IaC määrityksiä. Se myös etsii uusia entuudelta hallinnoimattomia resursseja, sillä IaC-viitekehykset eivät itsessään tiedä niiden olemassaolosta. Driftless tulostaa tietoja muutoksista tutkimuspiiriimme kuuluville resursseille, minkä pohjalta käyttäjä voi sovittaa yhteen infrastruktuurin ja IaC-määritykset. Lisäksi, se generoi onnistuneesti tuontikomennot hallinnoimattomille resursseille, ja nämä komennot loivat toimivat IaC- sekä tilamääritykset uusille resursseille. Näitä kahta tulostetta yhdistelemällä saatiin yhteensovitettua todellinen ympäristön tila haluttuun tilaan sekä IaC-hallinnoiduissa että -hallinnoimattomissa osissa infrastruktuuria.

Description

Supervisor

Gunn, Lachlan

Thesis advisor

Kairajärvi, Sami

Other note

Citation