Nodea — logo

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.