Что такое KPI?

«Что такое KPI?» — вопрос из категории Софт-скиллы, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

KPI (Key Performance Indicator) — это ключевые показатели эффективности, количественные метрики, которые мы используем для измерения успешности процессов, проектов или работы команды. В DevOps мы фокусируемся на метриках, которые отражают скорость, стабильность и качество доставки ПО. Из моего опыта, отслеживание этих четырёх ключевых метрик из доклада State of DevOps (DORA) наиболее показательно:

  1. Частота деплоев (Deployment Frequency): Как часто мы успешно выкатываем изменения в прод или на конечных пользователей. Высокая частота — признак зрелого CI/CD. Мы отслеживали это через метки в Git и события в CD-пайплайне (например, в ArgoCD).
  2. Время выполнения изменений (Lead Time for Changes): Время от коммита кода до его успешного запуска в продакшене. В одном из проектов мы сократили этот показатель с нескольких дней до нескольких часов за счёт автоматизации тестирования и упрощения процесса ревью.
  3. Среднее время восстановления (Mean Time to Recovery, MTTR): Как быстро мы можем восстановить сервис после сбоя в продакшене. Мы измеряли это от момента срабатывания алерта в PagerDuty до закрытия инцидента. Автоматизация отката (rollback) через blue-green деплойments сильно помогла его уменьшить.
  4. Частота отказов изменений (Change Failure Rate): Процент деплоев, вызывающих деградацию сервиса или требующих отката/горячего фикса. Мы стремились держать его ниже 5%, анализируя каждую неудачу на постмортеме.

Пример запроса для расчёта MTTR в Prometheus/Grafana:

# Упрощённый пример: среднее время между алертом 'ServiceDown' и его разрешением
avg_over_time(alert_resolution_time_seconds{alertname="ServiceDown"}[30d])

Эти KPI дают объективную картину эффективности DevOps-практик и помогают фокусировать усилия команды на улучшении конкретных аспектов процесса.