GitOps на AWS – реальный DevOps-пайплайн с Argo CD, Terraform и EKS
Как я построил Production-ready GitOps-пайплайн на AWS (без модных слов)
Сегодня я покажу, как построил полноценный GitOps-пайплайн на AWS — контейнеризированный, масштабируемый, основанный на реальном опыте.
Никаких модных терминов. Никакого кликбейта. Только рабочая архитектура — и мышление, которое масштабируется.
Почему я выбрал GitOps
GitOps — это про контроль. Git становится единственным источником правды.
- Все изменения идут через pull request.
- Любой откат — это просто
git revert
.
Никаких догадок. Никаких “а кто это задеплоил в пятницу вечером?”. В 2025 году GitOps — не тренд, а стандарт для любой команды, которая серьёзно относится к инфраструктуре.
Почему именно GitOps? Покажу на своём примере.
Мой стек — кратко
- В основе — Amazon EKS (Managed Kubernetes от AWS)
- Docker-образы собираются и пушатся в Amazon ECR
- Kubernetes-манифесты лежат в Git, Argo CD синхронизирует кластер
- Terraform разворачивает всё: от VPC до namespace’ов
- Секреты хранятся безопасно через HashiCorp Vault
- GitHub Actions связывает всё воедино
Один terraform apply
— и у тебя полностью описанная, воспроизводимая платформа. Ноль ручных шагов.
Почему контейнеры?
Контейнер — минимальная единица надёжности. Он работает одинаково в dev, stage и prod. Изолирован. Предсказуем. Версионируется. CI собирает образ, тэггирует его, например как release-2025.04.16-prod
, пушит в Amazon ECR — и именно этот образ запускается в проде.
Помнишь старую шутку “ну у меня же работало”? Контейнеры убивают это оправдание навсегда. Ты создаёшь системы, а не хаос.
GitOps — это изменение мышления
Важно понять одну ключевую вещь в GitOps. Частая ошибка — даже у опытных команд:
Они думают, что CI должен деплоить. В GitOps — нет.
- Задача CI — просто внести изменения в Git.
- Argo CD сам деплоит. Автоматически. По расписанию. Без ручного запуска.
Вот сила GitOps:
- Git — это истина.
- CI — это логистика.
Как всё взаимосвязано
- CI (на GitHub Actions)
- CI собирает Docker-образ, пушит в Amazon ECR, обновляет значения Helm, делает commit в Git
- Argo CD ловит изменения и применяет их в кластер
- Terraform разворачивает всю платформу — включая сам Argo CD
- Vault предоставляет секреты во время выполнения, безопасно
Никаких токенов в открытом виде. Никаких незашифрованных переменных окружения.
Этот стек не просто работает. Он устойчив.
Уроки, полученные с боем
Но путь к этому не был лёгким. Вот чему я научился — чтобы ты не наступил на те же грабли.
1. Bootstrap
Argo CD сам себя не установит.
Нужен чёткий план. Я использую Terraform и Helm Provider для автоматического начального развертывания.
2. Пространства имён (Namespaces)
Никогда не запускай Argo CD в том же namespace, что и твои приложения.
Изоляция — ключ. Поверь, ты себе потом спасибо скажешь.
3. Секреты
Хранишь секреты в YAML? Это не GitOps. Это “надеюсьOps”.
Используй Vault или AWS Secrets Manager. Никогда не светим креды.
Мониторинг — не обсуждается
Если твоё “мониторинг-решение” — это звонок от пользователя в 3 часа ночи, то это не мониторинг. Это кошмар.
Я использую Prometheus + Grafana для метрик, Loki для логов и Alertmanager для алертов. Argo CD тоже отдаёт метрики — и если что-то ушло от Git, я это сразу вижу.
Мониторинг — не “потом добавим”, а основа. Без него ты как пилот без приборов.
Что значит “успешно”
- Деплой за минуты, а не часы
- Откат — в один клик
- Новое окружение — одна команда
- Новый разработчик — просто
git clone
и вперёд - Всё документировано, воспроизводимо и под контролем
Это не хайп. Это реальность.
Финальные мысли
Подведём итог.
Это не просто технологический стек. Это подход.
Контейнеры, инфраструктура как код, Git в центре изменений — именно так выглядят зрелые системы в 2025.
GitOps — не про YAML. Это про доверие к системе, которую ты строишь.
Спасибо за чтение! Не забудь посмотреть видеоверсию — там больше деталей и визуализаций.
Подпишись
⭐ Telegram | Блог
🎬 YouTube
🐦 Twitter
🎨 Instagram
🐘 Mastodon
🧵 Threads
🎸 Facebook
🧊 Bluesky
🎥 TikTok
💻 LinkedIn
📣 daily.dev Squad
🧩 LeetCode
🐈 GitHub
Комьюнити IT-экспертов
Этот контент создан искусственным интеллектом?
Нет! Каждая статья — результат моей работы, наполненной страстью к Docker и десятилетиями опыта в IT. Я применяю ИИ для улучшения грамматики, чтобы обеспечить четкость технических деталей, однако все идеи, стратегии и рекомендации исключительно мои. Этот метод иногда может вызывать срабатывание детекторов ИИ, но можете быть уверены, что вся представленная информация и опыт — подлинно мои.