Как мы сократили время деплоя с 40 минут до 3 с помощью ArgoCD и Kustomize
Один из наших клиентов из финтех-сектора долгое время страдал от медленного и ненадёжного процесса деплоя. Jenkins-пайплайн на 40 минут, ручные шаги, rollback через панику в чате. Знакомая история?
Проблема
Существующий CI/CD был построен на Jenkins с кастомными Groovy-скриптами, которые копились годами. Деплой одного сервиса занимал в среднем 40 минут и включал:
- Сборку Docker-образа (без кеша слоёв)
- Ручной kubectl apply с локальной машины DevOps-инженера
- Проверку через
kubectl get podsи ожидание «пока всё зелёное» - Ручной откат через
kubectl rollout undoесли что-то пошло не так
Решение
Мы перевели всю инфраструктуру на GitOps-подход: ArgoCD + Kustomize + GitHub Actions.
# kustomization.yaml (production overlay)
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: production
resources:
- ../../base
patches:
- path: replicas-patch.yaml
images:
- name: api-server
newTag: v2.14.3 # обновляется автоматически
Теперь процесс выглядит так: разработчик мержит PR в main, GitHub Actions собирает образ и обновляет тег в Kustomize-оверлее, ArgoCD ловит изменение и выкатывает. Весь цикл — 3 минуты.
Результаты
- Деплой: 40 мин → 3 мин
- Автоматический rollback через ArgoCD health checks
- Полная история изменений в Git (кто, когда, что выкатил)
- Количество деплоев в день: 2-3 → 15-20
GitOps — это не модное слово, а инженерная дисциплина. Если ваш деплой до сих пор зависит от «того парня, который знает как», возможно, пора что-то менять.