Блок 12

Финал GitOps — ArgoCD и деплой в продакшен

Грандиозный финал. Устанавливаем ArgoCD, направляем его на репозиторий, пушим код — и наблюдаем, как приложение с тёмной темой выходит в интернет через GitOps.

~40 мин (10 мин презентация + 30 мин практика)
ArgoCD installation and configuration GitOps continuous delivery NodePort public exposure /loop for real-time monitoring /schedule for recurring tasks Remote control from mobile

Этот момент настал

Двенадцать блоков назад вы впервые набрали claude в терминале. Вы не знали, что произойдёт. Не знали, полезный это инструмент или просто игрушка.

С тех пор вы исследовали кодовую базу, не прочитав ни одного файла самостоятельно. Планировали фичи с помощью ADR и диаграмм. Реализовали тёмную тему через разговор. Построили системы памяти, кастомные навыки, хуки, MCP-интеграции, CI/CD-пайплайны и субагентов. Подняли настоящий сервер, установили Kubernetes и задеплоили приложение на реальную инфраструктуру.

Но пока этого никто не видит. Ваше приложение работает в k3s-кластере на дроплете DigitalOcean, за файрволлом, доступное только через проброс портов. Оно существует, но оно невидимо.

В ближайшие 40 минут это изменится.

К концу этого блока вы запушите код на GitHub, ArgoCD обнаружит изменение, Kubernetes обновится — и любой человек с браузером и IP-адресом вашего дроплета увидит ваше приложение ai-coderrank с тёмной темой. Живое. В интернете. Задеплоенное через GitOps.

Это финишная черта.

Что мы разберём

  1. Философия GitOps — почему Git должен быть единственным источником правды для вашей инфраструктуры
  2. Установка ArgoCD — запускаем его на вашем k3s-кластере
  3. Настройка ArgoCD — направляем на репозиторий через argocd/application.yaml
  4. Цикл синхронизации — наблюдаем, как ArgoCD обнаруживает и применяет изменения автоматически
  5. Публичный доступ — NodePort на публичном IP вашего дроплета (опциональное отступление про Ingress)
  6. Главный пуш — тёмная тема выходит в свет через GitOps
  7. Мониторинг через /loop — отслеживание статуса синхронизации в реальном времени
  8. Периодические задачи через /schedule — регулярные проверки здоровья
  9. Удалённый контроль — мониторинг с телефона

Почему этот блок важен

Вот какая штука с деплоем: большинство команд относятся к нему как к отдельной дисциплине, оторванной от разработки. Код пишут в одном процессе, деплоят в другом, а связывают их хрупкие скрипты, ручные согласования и тот единственный человек, который знает процедуру деплоя.

GitOps стирает этот разрыв. Ваш репозиторий И ЕСТЬ ваш деплой. Код, который вы коммитите, И ЕСТЬ состояние инфраструктуры. Нет никакого «процесса деплоя» отдельно от «процесса разработки» — есть просто пуш в Git. ArgoCD берёт на себя остальное.

И вот что по-настоящему должно вас вдохновить: это тот самый паттерн, который используют Spotify, Intuit, Tesla и десятки крупнейших банков планеты. Вы учитесь не игрушечному воркфлоу. Вы учитесь тому, как это делается по-настоящему.

Стоимость

Этот блок использует тот же дроплет DigitalOcean (s-2vcpu-4gb), который вы подняли в блоке 7. Никаких дополнительных затрат на инфраструктуру. API-ключ не нужен — всё работает через вашу подписку Pro.

Пререквизиты

  • Пройдены блоки 0–11 (k3s-кластер запущен, приложение задеплоено, CI/CD настроен)
  • k3s-кластер на дроплете DigitalOcean (s-2vcpu-4gb, из блока 7) с доступом по kubectl с вашего ноутбука
  • Репозиторий ai-coderrank запушен на GitHub
  • Изменения тёмной темы из блока 4 (закоммичены или готовы к пушу)
  • Публичный IP-адрес дроплета (он понадобится для доступа через NodePort)

Выберите формат

Выберите формат, который подходит для вашей работы с блоком:

Что вы освоите

  • Понять GitOps как философию деплоя и почему ArgoCD её воплощает
  • Установить ArgoCD на существующий k3s-кластер
  • Настроить ArgoCD для отслеживания репозитория ai-coderrank
  • Открыть приложение через NodePort на публичном IP дроплета
  • Запушить изменения тёмной темы и увидеть, как ArgoCD автоматически синхронизирует их
  • Использовать /loop для отслеживания статуса синхронизации в реальном времени
  • Настроить /schedule для регулярных проверок здоровья
  • Открыть и мониторить приложение удалённо с телефона