Bij Weave passen we bij alle projecten het Infrastructure-as-Code principe toe. Dit betekent dat alle (Cloud) infrastructuur, niet handmatig wordt aangemaakt maar in de CI pipelines in Gitlab wordt aangemaakt.
In het verleden maakten we met de hand bepaalde infrastructuur componenten aan zoals een Database of virtual machine. Dit deden we via het dashboard van bijvoorbeeld google cloud. Het proces is echter erg foutgevoelig en ook niet reproduceerbaar.
Bij het Infrastructuur-als-Code principe wordt alle infrastructuur beschreven als code. Hierdoor kan het mee in het gangbare proces om applicaties te ontwikkelen en ook door de normale code review structuur heen. Dit heeft een grote hoeveelheid voordelen. Zo is het minder foutgevoeligheid maar is er ook de optie om eenvoudig extra omgevingen op te zetten om te testen.
Het toepassen van volledige Infrastructuur-as-Code kan een grote en uitdagende klus zijn. Vaak komt dit omdat er door het ontbreken van een duidelijke beschrijving van de infrastructuur er geen goed beeld is van de bestaande componenten en instellingen. Op natuurlijke wijze ontstonden bij diverse projecten bash scripts die gebruik maakten van de APIs of command line tools van de cloud providers om infrastructuur te onderhouden. Deze scripts waren echter nog steeds foutgevoelig en niet schaalbaar genoeg voor grote projecten. Daarom is er de stap gemaakt naar Terraform. Inmiddels is alle infrastructuur die we hebben gemanaged door Terraform.
Gitlab, een van de twee grootste code versie control platforms, heeft een case studie geschreven waarin Weave uitgelicht wordt als voorbeeld. Hierin wordt beschreven hoe wij gebruikmaken van deze concepten, wat de voordelen zijn en welke afwegingen er gemaakt zijn. Dit is op de Gitlab website zelf te lezen:
GitLab delivers faster pipeline builds and improved code quality for Weave