Как стать автором
Обновить
564.32
OTUS
Цифровые навыки от ведущих экспертов

16 главных DevOps-метрик (DORA и не только!) — на чем сосредоточиться и как использовать

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров2.9K
Автор оригинала: Ioannis Moustakis

DevOps‑метрики — это количественные показатели, которые позволяют оценить эффективность, производительность и общее состояние DevOps‑процессов. Они предлагают аналитический взгляд на конвейер поставки программного обеспечения, позволяя командам разработчиков выявлять проблемные места, повышать производительность и принимать решения на основе реальных данных.

В этой статье мы поговорим о важности мониторинга DevOps‑метрик и о том, что именно нужно отслеживать. От широко известных метрик, которые приобрели статус стандартных благодаря DORA (DevOps Research and Assessment), до других важных индикаторов — мы предлагаем вашему вниманию исчерпывающее руководство, которое поможет вам измерить и оптимизировать ваши DevOps‑практики.

Что из себя представляют DevOps‑метрики?

DevOps‑метрики — это ключевые показатели эффективности (KPI), используемые для измерения результативности, эффективности и надежности процессов разработки программного обеспечения и IT‑операций. В рамках DevOps выделяются четыре ключевых показателя: частота развертываний, время от коммита до развертывания, среднее время восстановления после неудачного развертывания и процент развертываний с ошибками. Эти метрики помогают командам улучшить процесс доставки программного обеспечения, повысить стабильность системы и обеспечить более быстрое восстановление после сбоев. Они способствуют постоянному совершенствованию и улучшению взаимодействия между отделами.

Важность мониторинга DevOps-метрик

Измеряя ключевые показатели, DevOps‑команды получают ценную информацию о своих рабочих процессах, на основе которой они могут выявлять проблемные области и со временем улучшить свои системы. Мониторинг этих показателей выходит за рамки простого сбора данных. Он предполагает анализ истории, стоящей за цифрами, и принятие более обоснованных решений.

Именно здесь выбор и фокус на правильных метриках становятся критически важными.

importance of monitoring devops metrics
importance of monitoring devops metrics
  • Принятие решений на основе данных — DevOps‑метрики предоставляют объективную, количественную информацию о производительности и состоянии ваших систем. Они служат основой для принятия стратегических решений, направленных на улучшение процессов, инвестирование в технологии и оптимальное распределение ресурсов.

  • Выявление неэффективности и постоянное совершенствование — Мониторинг конкретных метрик эффективности и частоты помогает выявить узкие места в рабочем процессе, что позволит командам оптимизировать процессы и повысить производительность.

    Движение DevOps строится на принципе постоянного совершенствования, и метрики являются основой этого итеративного процесса. Регулярно отслеживая и оценивая ключевые показатели, разработчики могут создать цикл обратной связи, позволяющий экспериментировать, измерять результаты и постепенно улучшать свои процессы.

  • Согласование с бизнес‑целями — DevOps‑метрики зачастую служат для согласования технических операций, стратегии и более широких бизнес‑целей.

    Например, определение высоких стандартов для метрик, связанных с частотой и временем развертывания, может помочь организации быстрее выпускать программное обеспечение и оперативнее реагировать на запросы рынка.

  • Повышение качества и надежности — Многие метрики, рассмотренные в этой статье, позволяют выявить потенциальные проблемы на ранних стадиях. Отслеживая эти метрики и получая своевременные предупреждения, DevOps‑команды способны обнаруживать и устранять проблемы до того, как они перерастут в серьезные инциденты, тем самым значительно повышая качество работы продукта и удовлетворенность пользователей.

    Другие важные метрики, такие как среднее время восстановления, помогают оценить общую надежность и стабильность системы.

  • Углубленное сотрудничество и общие цели — Одной из самых больших проблем в крупных и децентрализованных организациях является согласование действий различных сотрудников и отделов. Установив четкие ожидания, цели и KPI на основе DevOps‑метрик, мы можем помочь разным отделам прийти к общему видению. Метрики DevOps служат универсальным языком общения между командами, способствуя более тесному взаимодействию.

  • Бенчмаркинг — Определение и отслеживание конкретных и общепринятых DevOps‑метрик позволяет организациям сравнивать свои результаты с достижениями конкурентов и общими отраслевыми стандартами. Это дает прекрасную возможность количественно измерить общую успешность и производительность и наметить амбициозные, но адекватные цели.

Ключевые DevOps-метрики, которые необходимо отслеживать

В мире DevOps не все метрики одинаково важны, и понимание того, какие из них заслуживают внимания, может стать решающим фактором в успешном мониторинге и предотвращении «перегруженности оповещениями» (alert fatigue). Эффективные метрики DevOps позволяют получить ценную информацию, которая способствует принятию лучших решений и постоянному улучшению процессов.

Метрики DORA

Команда DevOps Research and Assessment (DORA) разработала четыре ключевых показателя, которые служат надежными ориентирами для оценки эффективности поставки программного обеспечения и успеха организации. Эти показатели, известные как метрики DORA, представляют собой четыре ключевых показателя успеха DevOps. Они дают полное представление о практике DevOps и считаются отраслевыми стандартами измерения производительности.

Давайте подробнее рассмотрим четыре метрики DORA:

  1. Частота развертываний (Deployment Frequency — DF)

  2. Время от коммита до развертывания (Lead Time — LT)

  3. Частота сбоев после развертывания (Change Failure Rate — CFR)

  4. Среднее время восстановления (Mean Time To Recovery — MTTR)

dora metrics
dora metrics

1. Частота развертываний (DF)

Метрика частоты развертываний измеряет частоту развертываний изменений кода в продакшене и релиза их конечным пользователям. Обычно она измеряется как количество развертываний за определенный период, например, за день.

Высокая частота развертывания свидетельствует о способности команды оперативно выполнять небольшие объемы работы, что снижает риски и повышает гибкость. Она также напрямую отражает, насколько быстро команда способна создавать ценность для своих клиентов.

Метрика DORA

Что она измеряет

Цель

Оценка

Частота развертывания

Как часто изменения кода развертываются в продакшене

Более высокая частота

Элита: Ежедневно или несколько раз в день

Высокая: от еженедельного до ежемесячного

Средняя: Ежемесячно — ежеквартально

Низкая: менее одного раза в квартал

2. Время от коммита до развертывания (LT)

Эта метрика измеряет время, необходимое для того, чтобы изменения в коде попали в продакшн. Чем меньше это время, тем быстрее команда способна адаптироваться к новым требованиям и предоставлять ценные услуги. Замедление процесса развертывания часто является следствием неэффективности в разработке или тестировании, что в целом замедляет весь процесс поставки.

Для расчета этой метрики достаточно знать время коммита и релиза.

Метрика DORA

Что он измеряет

Цель

Оценка

Время от коммита до развертывания

Время от коммита до развертывания в продакшене

Сокращение времени поставки изменений

Элита: Менее 1 дня

Высокая: 1–7 дней

Средняя: 1–4 недели

Низкая: более 4 недель

3. Частота сбоев после развертывания (CFR)

Эта метрика измеряет процент развертываний, которые приводят к сбоям, требующим отката или исправления. Более низкий процент сбоев свидетельствует о более высоком качестве и стабильности релизов, сокращении времени простоя и повышении удовлетворенности клиентов.

Метрика DORA

Что она измеряет

Цель

Оценка

Частота сбоев после развертывания

Процент развертываний, вызвавших проблемы в продакшене

Низкая частота сбоев

Элита: 0–15%

Высокая: 16–30%

Средняя: 31–45%

Низкая: 46–60%

4. Среднее время восстановления (MTTR)

Среднее время восстановления показывает, сколько времени требуется для восстановления после сбоя в продакшене. Сбои и простои — это неизбежные явления, но высокоэффективные организации отличает то, насколько быстро они могут обнаружить и устранить проблемы.

Быстрое восстановление минимизирует негативные последствия сбоев для пользователей и демонстрирует способность команды быстро реагировать на проблемы и устранять их.

Метрика DORA

Что она измеряет

Цель

Оценка

Среднее время восстановления

Среднее время восстановления после сбоя в продакшене.

Быстрое восстановление

Элита: Менее 1 часа

Высокий: 1–24 часа

Средний: 1–7 дней

Низкий: более 7 дней

Дополнительные DevOps-метрики и KPI

Помимо прочной основы, которую вы получаете благодаря отслеживанию и составлению отчетов по метрикам DORA, существуют и другие метрики, предоставляющие ценную информацию о различных аспектах жизненного цикла поставки программного обеспечения, состоянии и надежности системы, а также об эффективности работы.

5. SLA и SLO

Соглашения об уровне обслуживания (Service Level Agreements — SLA) и цели уровня обслуживания (Service Level Objectives — SLO) определяют ожидаемый уровень надежности и эффективности сервиса.

SLA обычно представляют собой договорные обязательства, которые определяют ожидаемый уровень сервиса. SLO — это конкретные, измеримые цели, которые вы устанавливаете для работы службы.

Соблюдение SLA и SLO имеет решающее значение для поддержания доверия клиентов и выполнения договорных обязательств. Частые нарушения могут свидетельствовать о проблемах, связанных с надежностью системы или планированием нагрузки.

6. Доступность и время безотказной работы

Метрики доступности и времени безотказной работы измеряют процент времени, в течение которого система или сервис доступны для конечных пользователей. Высокая доступность тесно связана с надежностью систем, а мониторинг времени безотказной работы помогает командам выявлять и устранять проблемы, которые могут привести к простоям.

7. Использование приложения и трафик

Метрики использования приложения и трафика, как правило, отражают количество пользователей, запросов, транзакций или других соответствующих событий, которые система или приложение обрабатывает с течением времени. Эти данные дают представление о масштабируемости и пропускной способности системы, позволяя оценить ее нагрузку.

Эти показатели также используются для оптимизации распределения ресурсов и выявления популярных функций. К числу типичных показателей относятся: ежедневные/ежемесячные активные пользователи (DAU/MAU), просмотры страниц и вызовы API

8. Производительность приложения

Метрики производительности приложения оценивают, насколько хорошо оно функционирует с точки зрения пользователя.

К числу таких показателей относятся:

  • Время отклика

  • Частота возникновения ошибок

  • Задержка

  • Пропускная способность

Мониторинг показателей производительности с помощью APM‑инструментов (Application Performance Monitoring), позволяет убедиться, что приложение соответствует ожиданиям пользователей и предотвращает их отток.

9. Покрытие тестами

Покрытие тестами представляет собой метрику, которая измеряет процент программного кода, покрытого автоматизированными тестами. Чем выше покрытие тестами, тем меньше вероятность, что необнаруженные ошибки просочатся в продакшн. Например, это могут быть модульные, интеграционные и сквозные тесты. Важно стремиться к высокому покрытию, но при этом стараться очень хорошо продумывать тесты, так как их поддержка также требует затрат.

10. Покрытие IaC

Покрытие IaC (Infrastructure as code) измеряет процент ресурсов инфраструктуры, которые управляются с помощью кода, а не ручной настройки.

Более высокий уровень покрытия IaC свидетельствует о более высокой согласованности, повторяемости и эффективности аварийного восстановления, что соответствует лучшим практикам DevOps.

11. Коэффициент перехваченных дефектов

Коэффициент перехваченных дефектов — это метрика, которая измеряет процент дефектов, попадающих в продакшен, по сравнению с теми, которые были обнаружены во время тестирования. Низкий коэффициент перехвата дефектов может указывать на недостатки в тестировании и QA.

12. Среднее время до обнаружения (MTTD)

Показатель среднего времени обнаружения (Mean Time To Detection — MTTD) измеряет среднее время, необходимое для выявления проблемы или инцидента после их возникновения. Чем быстрее мы можем обнаружить и идентифицировать проблемы, тем быстрее мы можем их решить. MTTD отражает эффективность стратегии наблюдаемости и оповещения вашей организации.

13. Среднее время наработки на отказ (MTTF)

Среднее время наработки на отказ (Mean Time To Failure — MTTF) представляет собой среднее время, которое система работает в продакшене без сбоев или критических инцидентов, нарушающих ее функциональность. В целом, увеличение MTTF свидетельствует о повышении надежности системы.

14. Метрики непрерывной интеграции (CI) (запуски, среднее время, частота отказов)

Метрики непрерывной интеграции (Continuous Integration — CI) помогают оценить производительность и эффективность системы. Они включают в себя количество запусков CI, среднее время, затрачиваемое на каждый запуск, а также частоту отказов сборок. Эффективные CI‑конвейеры снижают усилия и время простоя разработчиков, обеспечивая более быстрые циклы обратной связи. Высокий процент отказов или длительное время сборки указывают на области, требующие внимания и улучшения.

15. Количество новых уязвимостей (VOR)

Показатель выявления новых уязвимостей (Vulnerability Open Rate — VOR) демонстрирует, как быстро в ваших системах выявляются новые потенциальные угрозы безопасности. Эта метрика обычно измеряется при вводе в эксплуатацию нового кода. Отслеживание VOR позволяет командам определять приоритеты в области безопасности и снижать риски, устраняя уязвимости до того, как они будут использованы злоумышленниками.

16. Стоимость единицы продукции

Стоимость единицы продукции (Unit Cost) — это цена, которую вы платите за предоставление одной услуги или функции, связанной с вашим бизнесом. Измерение общих или совокупных затрат не всегда является надежным показателем экономической эффективности.

Однако измерение и отчетность по затратам на отдельные единицы продукции позволяют получить более точное представление о том, насколько эффективно вы используете свои ресурсы, поскольку они напрямую связаны с ключевыми бизнес‑показателями. В качестве примеров можно привести стоимость одной транзакции, стоимость одного пользователя, стоимость одного виджета и стоимость одной функции.

Как внедрить эффективные методы мониторинга

Успешная стратегия мониторинга заключается не только в том, чтобы измерять метрики, но и в том, как вы их анализируете и на основе этого принимаете соответствующие меры. Такой подход позволяет непрерывно улучшать процессы и повышать операционную эффективность.

Implementing effective monitoring practices
Implementing effective monitoring practices
  • Выбирайте правильные метрики — Не все метрики имеют одинаковое значение для каждой команды или организации. Важно определить, какие из них соответствуют вашим целям, будь то скорость, качество, надежность или экономическая эффективность.

  • Определите четкие цели и оценки метрик — Подумайте, почему вы измеряете эти показатели, и свяжите их с бизнес‑ или операционными задачами. Четко поставленные цели помогут сделать ваши усилия по мониторингу целенаправленными и эффективными. Чтобы мониторинг был максимально полезным, необходимо оценивать прогресс в сравнении с заранее определенным уровнем. Контрольные показатели можно сформировать на основе исторических данных.

  • Выберите правильные инструменты — Выберите инструменты мониторинга, которые будут соответствовать вашим потребностям и масштабам организации. Перед тем как сделать выбор, определите все свои нужды и требования. Оценка эффективности разных инструментов в рамках пробных периодов поможет вам подобрать наиболее подходящие именно для вас.

    Убедитесь, что выбранные инструменты легко интегрируются с вашими текущими рабочими процессами и предоставляют оперативную информацию в режиме реального времени, при этом укладываясь в бюджет. Используйте эти инструменты для автоматизации сбора, агрегирования и анализа метрик.

  • Настройте важные оповещения — Используйте инструменты, которые имеют встроенные функции обнаружения аномалий и оповещения. Это позволит вашей команде своевременно получать уведомления о возникающих проблемах. Однако не стоит создавать слишком много оповещений, так как это может вызвать перегрузку и привести к усталости от постоянного шума. Настройте оповещения, ориентируясь на критические пороговые значения. Определите приоритеты для оповещений, требующих немедленного реагирования. Это поможет вашей команде быстро реагировать на возникающие проблемы и сохранять эффективность работы.

  • Автоматизируйте устранение проблем там, где это возможно — В некоторых случаях существует возможность настроить автоматические предупреждения или даже устранять проблемы. Уделите время на реализацию таких функций, как автоматическое масштабирование, откат развертывания или автоматизация самовосстановления. Это позволит снизить необходимость вмешательства человека, разгрузив команды для более сложных задач.

  • Постоянно анализируйте и совершенствуйте — Мониторинг — это не процесс, который можно один раз настроить и забыть. Регулярно пересматривайте свою стратегию мониторинга, чтобы убедиться, что она соответствует вашим текущим целям и задачам. Избавьтесь от метрик, которые больше не приносят пользы, и введите новые, если это необходимо для решения актуальных приоритетных задач. После каждого инцидента проводите анализ ситуации, чтобы понять, что произошло и как предотвратить подобные проблемы в будущем.

Какие инструменты использовать для отслеживания метрик DORA?

Оценивать инструменты для отслеживания метрик DORA можно в соответствии с различными характеристиками, такими как удобство интеграции, простота использования и ориентация на конкретные области в рамках жизненного цикла разработки программного обеспечения.

Ниже представлен краткий обзор некоторых из лучших инструментов:

Тип инструмента

Название инструмента

Ключевые показатели

Аналитика и отчетность

Splunk, Grafana, Google Data Studio, Looker

Все четыре метрики

Платформы CI/CD

Spacelift, Jenkins, GitLab CI/CD, GitHub Actions, CircleCI

DF, LT

Мониторинг и управление инцидентами

Datadog, New Relic, PagerDuty, Prometheus

MTTR, CFR

Специализированные инструменты для метрик DORA

LinearB, Waydev, Velocity by Code Climate, Haystack

Все четыре метрики

Управление потоком создания ценности

Plutora, Tasktop Viz, ServiceNow

Все четыре метрики

Заключение

В мире DevOps метрики играют ключевую роль в понимании и оптимизации организационных процессов, связанных с разработкой и поставкой программного обеспечения. Отслеживая ключевые показатели, команды могут выявить области, требующие улучшений, повысить надежность систем и создать культуру непрерывного совершенствования. В этой статье мы подробно рассмотрели все важные метрики, которые необходимо отслеживать в рамках DevOps, и поделились эффективными методами их мониторинга и наблюдения.

Однако ценность метрик заключается не только в их отслеживании, но и в том, как они могут быть использованы для принятия обоснованных решений и внедрения улучшений. Независимо от того, являетесь ли вы новичком в области DevOps или стремитесь оптимизировать существующие процессы, понимание и мониторинг ключевых показателей являются необходимыми шагами на пути к созданию отказоустойчивых, эффективных и высокопроизводительных систем.

Материал подготовлен в рамках онлайн‑курса «DevOps Lead» — программа для тех, кто хочет научиться руководить DevOps-командами и процессами.

Теги:
Хабы:
+8
Комментарии0

Публикации

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS