От Bash к Terraform — эволюция централизованного управления GitLab-проектами

DevOps-практики и культура

Devops / другое
Автоматизация разработки, доставки, эксплуатации
DevOps / SRE

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

DevOps/Platform-инженеры, работающие с self-hosted GitLab и сталкивающиеся с задачами массового управления конфигурацией проектов SRE-инженеры, ответственные за интеграцию CI/CD с HashiCorp Vault и управление секретами Team leads DevOps-команд, ищущие подходы к стандартизации и масштабированию инфраструктурных инструментов

Тезисы

Когда у вас 20-50 проектов в GitLab, управлять их конфигурацией через Bash-скрипты — приемлемое решение: настроить Mattermost-интеграции, защитить теги, раздать доступы к секретам в Vault. Но что делать, когда проектов становится 800+, а последовательные API-запросы больше не укладываются во временные рамки pipeline? Параллельные запросы — не вариант: легко заDDoS'ить собственный self-hosted GitLab (Free plan).
Расскажу про реальный опыт эволюции инструмента gitlab-maintainer в 2GIS: от простых Bash-скриптов до связки Terraform + Terragrunt. Покажу, как хранимое состояние позволяет обрабатывать сотни проектов за минуты вместо часов, как организовать конфигурацию по командам и группам.

10 лет в IT. Прошёл путь от учёного физика до teamLead DevOps инженера. Прочувствовал на себе прелести сопровождения кастомизированной Jira3, миграции сервисов с java 5 на vm в docker на java 8. Деплой от VM и пакетов, до Helmfile и k8s. Глубоко погружался в Netflix stack для Java микросервисов. Сейчас работаю DevOps инженером в 2ГИС, занимаюсь оптимизацией и сопровождением процессов доставки навигационных сервисов до целевых окружений.

Видео