Когда SaaS-стартап растёт, планы маркетинга начинают ломать календарь релизов: фичи нужны «вчера», а бюджеты на инфраструктуру не бесконечны. Наш клиент выпускал обновление раз в неделю и платил за простаивающие dev-кластеры. Цель — выкатывать в продакшн ежедневно, удержав затраты. Решение: полностью облачный DevOps-конвейер из открытого ПО и грамотный autoscaling.
1. Переезд на GitLab CE + Harbor
Локальный Jenkins стали душить лицензии плагинов. Мы вынесли GitLab CE в Yandex Cloud, задействовали встроенный GitLab Runner on-demand. Контейнеры хранятся в приватном регистри Harbor — это исключило плату за исходящий трафик к Docker Hub и ускорило сборку на 28 %.
2. Пайплайн «семь минут до продакшна»
В .gitlab-ci.yml всего шесть стадий: lint → unit → sast → build → push → deploy. Линтер запускает golangci-lint, юнит-тесты — go test -cover, SAST — встроенный analyzer. Образ собирается с BuildKit и грузится в Harbor. ArgoCD подхватывает новый тег и через Helm-чарт раскатывает его в Kubernetes-кластер. Среднее время всей цепочки — 7 мин 12 сек.
3. Автоскейлинг узлов и выключение стендов
В прод-кластере включён Cluster Autoscaler: метрика — нагрузка CPU>70 % или p95 latency>200 мс. Вечером ненужные dev-ноды гасит kube-downscaler, который парсит аннотацию working-hours. За счёт pay-per-second биллинга счёт за compute упал на 22 %.
4. Terraform-IaC и единообразие окружений
С помощью Terraform создаются VPC, кластеры, сервис-аккаунты и правила IAM. Один plan гарантирует, что staging идентичен prod, а отклонения ловятся до выкатки. Команда перестала «чинить руками» и сфокусировалась на коде.
5. Наблюдаемость и безопасность
Prometheus+Grafana собирают метрики подов, ArgoCD feedит события в Loki, а Alertmanager шлёт алерты в Telegram-чат за 15 сек до SLO-нарушения. SAST-отчёты попадают в Merge Request; критичные уязвимости блокируют merge до исправления.
6. Результаты спустя три месяца
Количество релизов выросло с 4 до 24 в месяц, время отката — 30 сек (Helm undo), средняя скорость отклика API снизилась на 15 %. Экономия OPEX за первый квартал — 27 % за счёт динамического выключения узлов и отказа от SaaS-лицензий.
Главный вывод: скорость релиза не означает рост счетов. Достаточно автоматизировать всё, что повторяется, платить только за используемые ресурсы и держать метрики в зоне видимости — тогда DevOps приносит ускорение бизнеса, а не лишние расходы.