GitOps

GitOps

GitOps är ett arbetssätt där ett Git-repository fungerar som "single source of truth" för infrastruktur och applikationskonfiguration, och automatiserade processer ser till att verkligt tillstånd matchar det deklarerade.

Om GitOps

GitOps bygger på att använda de verktyg och processer som utvecklare redan känner igen - t.ex. Git, pull requests, versionering och kodgranskning - och utvidga dem så att infrastruktur och distributionsflöden blir versionshanterade och automatiserade. Det handlar alltså inte bara om applikationskod, utan även om hur systemet ska se ut, driftsättas och underhållas.

I praktiken innebär GitOps att du har ett Git-repo som deklarerar det önskade tillståndet för din infrastruktur och/eller applikation (t.ex. Kubernetes-manifester, Helm-charts, Terraform-filer), och att en automatiserad mekanism kontinuerligt ser till att det verkliga tillståndet matchar detta deklarerade tillstånd. Genom att ändra repo och trigga en merge/pull request initieras hela kedjan från granskning till automatiserad driftsättning.
Detta ger många fördelar: spårbarhet (alla ändringar går via Git), återställning (rollback är ofta en revert i Git), större konsistens mellan miljöer och bättre samarbete mellan dev/ops-team.

Men - som med alla nya arbetssätt kräver GitOps också disciplin och rätt verktyg. Eftersom man flyttar mycket av infrastrukturen in i versionerad kod och automatisering, måste man tänka på hur man hanterar hemligheter, hur man löser skillnader mellan miljöer (dev/staging/prod), och hur man undviker att processerna blir för tungrodda. Sammanfattningsvis: Om du vill göra infrastrukturen förändringsbar med kod, versionerad, automatiskt driftsatt och synlig för hela teamet - då är GitOps en mycket intressant metod att utforska.

GitOps används ofta tillsammans med