DORA (DevOps Research and Assessment) метрики — это набор ключевых показателей, разработанных исследовательской группой DORA (Google DevOps Research and Assessment), которые помогают измерять эффективность процессов DevOps в организации. Эти метрики позволяют оценить скорость и стабильность поставки ПО, а также выявить узкие места в процессе разработки и развертывания.
🔹 4 ключевые DORA-метрики
DORA определяет четыре основные метрики, которые делят команды на “Элитные”, “Высокопроизводительные”, “Средние” и “Низкопроизводительные”.
1️⃣ Частота развертываний (Deployment Frequency)
📌 Что измеряет?
- Как часто команда развертывает код в продакшн или в staging-окружение.
- Чем чаще развертывание, тем лучше DevOps-процессы.
📊 Как измерять?
- Количество развертываний в продакшн за определенный период (день, неделю, месяц).
📈 Идеальное значение:
- Элитные команды → развертывание по запросу (On-demand, многократно в день).
- Высокопроизводительные → развертывание раз в день - раз в неделю.
- Средние → раз в неделю - раз в месяц.
- Низкопроизводительные → реже, чем раз в месяц.
2️⃣ Время выполнения изменений (Lead Time for Changes)
📌 Что измеряет?
- Время от написания кода до его успешного развертывания в продакшн.
- Отражает эффективность CI/CD и процесса доставки ПО.
📊 Как измерять?
- Разница между коммитом и успешным деплоем в продакшн.
📈 Идеальное значение:
- Элитные команды → менее 1 часа.
- Высокопроизводительные → от 1 дня до 1 недели.
- Средние → от недели до месяца.
- Низкопроизводительные → более месяца.
3️⃣ Среднее время восстановления (Mean Time to Restore, MTTR)
📌 Что измеряет?
- Сколько времени требуется на восстановление системы после инцидента или сбоя.
- Показывает устойчивость команды к отказам.
📊 Как измерять?
- Время от обнаружения проблемы до полного восстановления работоспособности.
📈 Идеальное значение:
- Элитные команды → менее 1 часа.
- Высокопроизводительные → до суток.
- Средние → от 1 до 7 дней.
- Низкопроизводительные → более недели.
4️⃣ Процент неудачных развертываний (Change Failure Rate, CFR)
📌 Что измеряет?
- Доля развертываний, которые приводят к отказам (баги, откаты, падения).
- Позволяет понять, насколько качественные изменения вносятся в систему.
📊 Как измерять?
- Количество неудачных релизов ÷ общее число релизов × 100%.
📈 Идеальное значение:
- Элитные команды → менее 15%.
- Высокопроизводительные → 15-30%.
- Средние → 30-45%.
- Низкопроизводительные → более 45%.
🎯 Как использовать DORA-метрики?
1️⃣ Автоматизировать сбор данных
- Инструменты: Jenkins, GitLab CI/CD, Datadog, New Relic, Prometheus, Grafana.
2️⃣ Регулярно анализировать тренды
- Улучшение одного показателя может негативно повлиять на другие (например, увеличение частоты развертываний может повысить процент отказов).
3️⃣ Использовать метрики для улучшения процессов
- Внедрять CI/CD, автоматическое тестирование, “Shift-Left Testing” и канареечные развертывания.
📊 Таблица сравнения DORA-метрик для разных типов команд
Категория команд | Частота развертываний | Lead Time for Changes | Время восстановления (MTTR) | Change Failure Rate |
---|---|---|---|---|
Элитные | Несколько раз в день | Менее 1 часа | Менее 1 часа | < 15% |
Высокопроизводительные | Раз в день - раз в неделю | 1 день - 1 неделя | До суток | 15-30% |
Средние | Раз в неделю - раз в месяц | 1 неделя - 1 месяц | 1-7 дней | 30-45% |
Низкопроизводительные | Реже 1 раза в месяц | Более месяца | Более недели | > 45% |
🚀 Заключение
DORA-метрики помогают компаниям измерять и улучшать эффективность DevOps. Они дают представление о:
- Скорости доставки кода в продакшн.
- Стабильности развертываний.
- Гибкости команды в устранении проблем.
💡 Цель: Постепенно улучшать показатели, повышая DevOps-культуру в компании! 🚀