GitOps

2020-12-04

GitOps is een manier van Kubernetes cluster management. Bij GitOps wordt Git gezien als de enige waarheid over de huidige staat van het cluster en de applicaties die erop zijn uitgerold. Met behulp van tooling wordt de synchronisatie en daarmee de gewenste staat van het cluster gewaarborgd.

Met Git als centraal punt, kunnen ontwikkelaars met behulp van pull requests een applicatie uitrol aftrappen. In de basis is GitOps niets anders dan het hebben van een Git repository met daarin de declaratieve beschrijvingen van de infrastructuur van de productie omgeving. Met behulp van een geautomatiseerd proces wordt gezorgd dat de productie omgeving overeenkomt met de Git repository. Wanneer men een nieuwe applicatie wil uitrollen of een bestaande wil wijzigen, hoeft alleen de Git repository te worden geüpdatet. Het automatische proces zorgt voor de rest. Zie het als een cruise control functie op je cluster.

Het is dan ook om verschillende redenen wenselijk om onderscheid te maken tussen de bron code en de deployment configuratie van je applicatie:

- Er zijn momenten dat je de configuratie wilt wijzigen zonder een hele nieuwe CI build te starten. Voorbeeld, je wilt het aantal replica’s in je deployment ophogen. Het zou zonde zijn om hier een nieuwe build voor af te trappen.
- De Git log en historie zijn schoon en overzichtelijk. Dit geldt zowel voor de bron code als voor de configuratie repository. Dit is onder andere handig voor auditing en traceability. Het is altijd duidelijk en door iedereen te achterhalen wat er uitgerold staat en waarom dat zo is.
- Het is erg eenvoudig om een gefaalde upgrade terug draaien naar de laatste stabiele uitrol. Het enige dat men hoeft te doen is een `git revert` naar de gewenste staat.

 

Hierboven wordt ArgoCD gebruikt als GitOps tool

 

Werken bij Infiniot?

Heeft deze blog jou geïnspireerd om ook een bijdrage te leveren aan de energietransitie in Nederland? Goed nieuws! We zijn altijd op zoek naar nieuwe collega’s om ons team te versterken! Bekijk hier onze vacature Software Engineer.


Bekijk alle posts van Mike