GitOps — paradigm, где entire system state (application manifests, infra) хранится в Git, а agents в cluster continuously sync actual state с desired. Термин coined Weaveworks 2017. 4 principles: **Declarative**, **Versioned in Git**, **Automatically applied**, **Continuously reconciled**. Tools: ArgoCD (most popular), Flux CD, Jenkins X. Replaces: kubectl apply в CI/CD scripts.
Ниже: подробности, пример, смежные термины, FAQ.
Бесплатный онлайн-инструмент — проверка HTTP-заголовков: результат мгновенно, без регистрации.
# ArgoCD Application
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
spec:
source:
repoURL: https://github.com/me/manifests
targetRevision: main
path: apps/my-app
destination:
server: https://kubernetes.default.svc
namespace: my-app
syncPolicy:
automated: { prune: true, selfHeal: true }GitOps — это методология управления инфраструктурой и приложениями, основанная на декларативном подходе и использовании Git как единого источника правды. Основная идея заключается в том, что все изменения в инфраструктуре и приложениях должны быть зафиксированы и контролируемы через Git-репозиторий. Это позволяет командам разработчиков и операторам легко отслеживать изменения, обеспечивать стабильность и быстро восстанавливать состояние системы в случае сбоя.
GitOps предлагает ряд преимуществ для команд разработки и операций:
Рассмотрим пример использования GitOps для развертывания приложения на Kubernetes с помощью инструмента Argo CD. В этом примере мы создадим простое приложение и настроим автоматическое развертывание через Git.
Создайте новый Git-репозиторий и добавьте в него файл манифеста Kubernetes для вашего приложения:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app-image:latest
ports:
- containerPort: 80
Установите Argo CD в ваш кластер Kubernetes:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
После установки Argo CD, создайте приложение, ссылающееся на ваш Git-репозиторий:
argocd app create my-app \
--repo https://github.com/your-repo/my-app.git \
--path . \
--dest-server https://kubernetes.default.svc \
--dest-namespace default
Теперь, когда приложение настроено, вы можете развернуть его:
argocd app sync my-app
После выполнения этой команды Argo CD автоматически развернет ваше приложение в Kubernetes, используя манифест из Git.
Таким образом, GitOps упрощает управление приложениями и инфраструктурой, позволяя командам оперативно реагировать на изменения и поддерживать стабильность систем.
Overlap. CI/CD — pipeline, который deploy. GitOps — pattern of operating systems through Git as truth. GitOps часто uses CI для build image + PR to manifest repo.
НЕ plain. Tools: SealedSecrets (encrypted YAML), External Secrets Operator (sync from Vault), SOPS (Mozilla).
Split: app-code repo + manifests repo. Avoids CI reinvocation при manifest-only changes. Популярнее в 2026.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.