← Назад в словарь

GitOps

GitOps — операции через Git

Суть в одном предложении

GitOps — это подход к управлению инфраструктурой и деплоем, при котором Git становится единственным источником истины для состояния системы.

Краткое определение

GitOps — это практика DevOps, при которой инфраструктура и конфигурации описываются в Git-репозитории, а изменения автоматически применяются к окружению через контроллер или CI/CD.

Оригинал и перевод

  • Язык: английский
  • Оригинал: GitOps
  • Буквальный перевод: операции через Git

Синонимы и варианты написания

  • Git-based deployment
  • Git-driven infrastructure
  • Git as source of truth

Происхождение

Термин был популяризирован компанией Weaveworks в 2017 году в контексте Kubernetes. Подход вырос из идей Infrastructure as Code и Continuous Deployment.

Где используется

  • Kubernetes-кластеры
  • Cloud-инфраструктура
  • Микросервисы
  • CI/CD системы
  • SaaS и high-load проекты

Когда это важно

GitOps становится критичным, когда:

  • инфраструктура сложная и распределённая
  • требуется аудит изменений
  • несколько команд работают с конфигурацией
  • необходима воспроизводимость окружений

Подробное объяснение

Классический деплой:

  1. Разработчик пушит код
  2. CI запускает деплой
  3. Скрипт изменяет сервер

GitOps работает иначе:

  1. В Git хранится желаемое состояние инфраструктуры
  2. Контроллер (например, ArgoCD или Flux) отслеживает репозиторий
  3. Если состояние кластера отличается от Git — изменения автоматически применяются

Git становится:

  • источником истины
  • логом изменений
  • системой отката
  • механизмом аудита

Пример GitOps-подхода

В репозитории хранится Kubernetes-манифест:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app
spec:
  replicas: 3

Разработчик меняет:

replicas: 5

Коммит → push → контроллер синхронизирует кластер. Никакого SSH на прод.


Основные принципы GitOps

  1. Declarative configuration
  2. Versioned and immutable
  3. Automated synchronization
  4. Continuous reconciliation

Чем GitOps отличается от CI/CD

CI/CD:

  • Пайплайн пушит изменения на сервер.

GitOps:

  • Сервер сам «тянет» изменения из Git.

Это модель pull вместо push.


Что не является GitOps

  • Ручной деплой по SSH
  • FTP-загрузка файлов
  • Git без автоматической синхронизации

Аналоги и связанные термины

  • CI/CD
  • Infrastructure as Code
  • Kubernetes
  • Continuous Deployment
  • Declarative Configuration

Пример использования

«В продакшене используется GitOps: все изменения инфраструктуры проходят через pull request и автоматически применяются в Kubernetes.»


Мини-FAQ

  • GitOps работает только с Kubernetes? Нет, но чаще всего используется именно там.

  • Можно ли применять GitOps к VPS без Kubernetes? Да, если деплой управляется через declarative-конфигурации и автоматическую синхронизацию.


Смотри также

  • CI/CD
  • Infrastructure as Code
  • Kubernetes
  • Deployment