GitOps
GitOps to metodyka zarządzania infrastrukturą i wdrożeniami aplikacji, w której repozytorium Git pełni rolę jedynego źródła prawdy o pożądanym stanie całego systemu. Każda konfiguracja — serwery, sieci, usługi, manifesty aplikacji — jest zapisana deklaratywnie w plikach wersjonowanych w Git, a specjalne narzędzia automatycznie doprowadzają rzeczywiste środowisko do stanu opisanego w repozytorium.
Na czym polega GitOps?
Podejście opiera się na kilku fundamentalnych zasadach:
- deklaratywność — cały system opisany jest jako pożądany stan docelowy, a nie jako sekwencja kroków do wykonania, zgodnie z ideą Infrastructure as Code;
- wersjonowanie — historia zmian, przeglądy kodu i możliwość natychmiastowego wycofania (rollback) wynikają wprost z natury Gita;
- automatyczna synchronizacja — operator, np. Argo CD lub Flux, nieustannie porównuje stan klastra ze stanem w repozytorium i wyrównuje różnice;
- samonaprawialność — jeśli ktoś ręcznie zmodyfikuje środowisko, mechanizm przywróci konfigurację zgodną z Git.
W praktyce zmianę wprowadza się przez pull request. Po jego zatwierdzeniu i scaleniu operator wykrywa nowy stan docelowy i wdraża go bez ręcznej ingerencji administratora.
Zastosowanie w praktyce
GitOps najczęściej stosuje się w środowiskach opartych na Kubernetes, gdzie manifesty YAML idealnie wpisują się w model deklaratywny. Zespoły DevOps zyskują pełną audytowalność — każda zmiana w produkcji ma swój commit, autora i uzasadnienie, co upraszcza zgodność z wymogami bezpieczeństwa.
Metodyka sprawdza się także przy zarządzaniu wieloma środowiskami (dev, staging, produkcja) z jednego repozytorium oraz przy odtwarzaniu całej infrastruktury po awarii — wystarczy wskazać operatorowi repozytorium, aby środowisko zostało zbudowane od nowa w spójnym, powtarzalnym stanie. To czyni GitOps atrakcyjnym również dla utrzymania serwerów i klastrów w modelu zarządzanym.
Powiązane pojęcia
Najczęstsze pytania
Czym GitOps różni się od klasycznego CI/CD?
Klasyczne CI/CD zwykle 'wypycha' zmiany na serwer (model push), uruchamiając skrypty wdrożeniowe. GitOps działa w modelu pull: dedykowany operator w klastrze sam obserwuje repozytorium i wyrównuje stan środowiska do tego opisanego w Git. Repozytorium pozostaje jedynym źródłem prawdy.
