Sobes.tech
Middle

Na czym polega koncepcja GitOps?

sobes.tech AI

Odpowiedź od AI

GitOps to ramy operacyjny, który używa Git jako jedynego źródła prawdy do deklaratywnego opisu pożądanego stanu infrastruktury i aplikacji.

Kluczowe zasady:

  • Deklaratywność: System jest opisany deklaratywnie, na przykład za pomocą manifestów Kubernetes.
  • Wersjonowanie: Pożądany stan systemu jest przechowywany w Git i ma wersje.
  • Automatyzacja: Automatyczne procesy stosują zmiany z Git w środowisku roboczym.
  • Zgodność: Specjalne agenty stale sprawdzają aktualny stan systemu i dostosowują go do pożądanego stanu w Git.

Schemat działania:

  1. Programista lub operator wprowadza zmiany w konfiguracji lub kodzie aplikacji i dokonuje commitu do repozytorium Git.
  2. System CI/CD zbiera artefakty (np. obrazy Docker) i aktualizuje manifesty wdrożeniowe w innym repozytorium Git (repozytorium konfiguracji).
  3. Agent GitOps (np. Flux CD, Argo CD) monitoruje repozytorium konfiguracji.
  4. Po wykryciu nowego commitu agent pobiera zmiany i stosuje je do docelowego środowiska (np. klaster Kubernetes).
  5. Agent stale sprawdza, czy aktualny stan klastra odpowiada stanowi opisanym w Git i koryguje rozbieżności.

Zalety:

  • Niezawodność: Stan systemu można zawsze przywrócić z Git.
  • Szybkość: Zautomatyzowane procesy pozwalają na szybsze wdrażanie zmian.
  • Bezpieczeństwo: Wszystkie zmiany przechodzą przez Git, zapewniając audyt i możliwość cofnięcia.
  • Widoczność: Historia zmian jest dostępna w Git.
  • Uproszczenie cofania: Cofnięcie do poprzedniego stanu sprowadza się do cofnięcia commitu w Git.

Przykłady narzędzi:

  • Flux CD
  • Argo CD