4–12
релізів на день
частота, до якої зводимо доставку
GitLab CI · Grafana opsveyra.com
Налаштовуємо GitLab CI і GitHub Actions, Kubernetes і Terraform. Метрики збираємо в Grafana і Prometheus, логи — в ELK, алерти — в Alertmanager. У кожного сигналу є власник і наступна дія.
Орієнтири, не чужі кейси
Планка, з якою звіряємо доставку. Це цілі для вашої системи, не цифри з чужого слайда.
4–12
релізів на день
частота, до якої зводимо доставку
< 30 хв
lead time
від мерджа до продакшена
хвилини
на відкат
попередня версія повертається без археології
1
власник на алерт
кожне сповіщення має людину і дію
Послуги
CI, кластер, інфра як код, і те, чим прод дивляться після деплоя: Grafana, ELK, алерти.
GitLab CI і GitHub Actions: стадії, джоби, артефакти, середовища.
Пайплайн зі стадіями
Кластер, Helm, Argo CD. Деплой з гілки, не з локального kubectl.
GitOps на кластер
Мережа, доступи й сервери в коді. Ansible там, де він доречний.
Інфра відтворюється з гіта
Prometheus і дашборди: RPS, latency, помилки, насичення нод, SLI.
Метрики на одному екрані
Elasticsearch, Logstash або Fluent Bit, Kibana. Логи з полями, не з ssh.
Пошук по логах
Alertmanager: пороги, групи, тиша, маршрут у Slack або Telegram, on-call.
Алерт має власника
Моніторинг
Деплой без картини прода — це наосліп. Збираємо метрики, логи і алерти так, щоб черговий бачив причину, а не стіну графіків.
Grafana · Prometheus
Експортери, запити PromQL, дошки під сервіс і під ноду. RED і USE на одному екрані: швидкість, помилки, насичення.
ELK
Elasticsearch тримає індекс, Logstash або Fluent Bit забирають логи, Kibana дає пошук. Поля сервісу, трейса і рівня — не простирадло з journalctl.
Alertmanager
Поріг, група, тиша на вікно робіт, маршрут у Slack або Telegram. Сторінка лише коли є дія. Решта лишається на дашборді.
Підхід
Короткий розбір, далі зміни в репозиторії. Перший пайплайн з’являється раніше за місяць презентацій.
Як зараз тече доставка і де вона треться. Коротко, по фактах із репозиторія і хмари.
Що чинимо першим і що свідомо відкладаємо. Пріоритет — те, що знімає страх релізу.
Платформа з’являється в коді: пайплайн, середовища, спостереження, доступи.
Runbook-и, доступи, метрики. Команда веде систему сама або ми лишаємось на супроводі.
CI, метрики, логи, алерти
Формати
Три способи почати. Обсяг фіксуємо після розбору, коли видно реальний стан системи.
10 робочих днів
Дивимось репозиторії, хмару, пайплайни й чергування. На виході — карта ризиків, швидкі перемоги і те, що чіпати не варто.
4–8 тижнів · основа
Збираємо пайплайн, кластер і спостереження: GitLab CI або GitHub Actions, Terraform, Grafana, ELK, Alertmanager. Команда релізить тим самим шляхом, без автора системи поруч.
помісячно
Лишаємось на змінах, оновленнях і інцидентах. Платформа не застигає за місяць після запуску.
Принципи
Питання
З потоку доставки, який уже є: репозиторії, хмара, пайплайни, чергування. Інструмент обираємо після цього.
Так. AWS, GCP, DigitalOcean, GitHub, GitLab, Kubernetes — і те, що вже стоїть, якщо воно виправдане.
Так. На виході — карта ризиків, порядок робіт і список того, що команда закриє сама.
Віддалено. Часові пояси UA і EU. Чергування домовляємо під вікно продакшена.
Контакт
Короткий дзвінок, далі формат під реальний стан системи. Без довгого пресейлу.
30 хвилин: дивимось, де болить доставка.
Якщо є збіг за обсягом — називаємо формат.
Старт із розбору репозиторія і хмари.