Радарные радара 2019 года посоветовали организациям принять четырех ключевых метрик, которые были опубликованы в действительно хорошо полученной ускоренной книге. Причина этого решения состоит в том, что эти метрики были доказаны надежным источником информации для классификации команд в трех категориях, основанных на их выступлении.
Для тех, кто не знает о тех показателях метрики, позвольте мне поделиться кратким резюме каждого:
Частота развертывания
Это количество развертываний в течение определенного периода времени. Ожидается, что высокопроизводительные команды развертывают несколько раз в день. Это очень коррелирует с помощью следующей метрики.
Время заказа для изменений
Пришло время между преданным предательством, и этот код попадает в производство. Ожидания для высокопроизводительной команды состоит в том, чтобы развернуть изменения между одним и одной недели.
Среднее время восстановить (или МТТР)
Это среднее время, которое необходимо вернуться к услуге, когда в производстве произошел провал в производстве. Например, время, которое нам нужно восстановить из разбитой базы данных или из фиксации, который разбивает функцию. Ожидается, что высокопроизводители восстанавливают свои услуги менее чем за день.
Изменить частоту отказов
Соотношение между неудачными изменениями и изменениями успеха в сервисе. Например, если мы развертываем четыре раза в неделю, а три наших развертывания потерпят неудачу по какой-то причине (в коде есть ошибка, трубопровод — это Flaky), наш CFR будет 75%. Ожидается, что высокопроизводительные имеют уровень отказов изменений ниже 15% процентов.
Учитывая, что резюме, я хотел бы поделиться некоторыми выводом, которые я надеюсь, что вам интересно для вас.
Прежде всего, позвольте мне поделиться с вами следующей диаграммой:
Это (как-то) карта Уэрти, которая коррелирует товар практики или инструмента со своим значением. Значение каждой практики и инструмента определяется только на практике DEVOPS и ориентированы в основном на способность улучшать или отражать практику по команде. Вот почему, например, самоорганизующие команды имеют более вероятность улучшения одной команды, чем просто реализация CD-трубопровода. Конечно, эта карта не совсем объективна, и она только основана на моем опыте и обратной связи, которую я собрал у некоторых клиентов и коллег.
Диаграмма ниже показывает, как существует три возможных типа приемных, в зависимости от их практики и инструментов. Я думаю, что неудивительно, что более относимые практики близки друг к другу на диаграмме, и что практики, которые находятся в верхнем левом углу, являются ключом для высокопроизводительных. Тем не менее, я хотел бы поделиться некоторыми идеями, которые я думаю, интересны:
Маловероятно, что небольшая команда будет заинтересована в принятии четырех ключевых структур метрики. Вероятно, они даже не осознают метрики.
Сбор четырех ключевых метрик имеет сильные технические соображения и затраты на то, что малопроизводители не могут принимать краткосрочные. (Больше рассуждения позже)
Меньше выполнения команд будет иметь менее надежные метрики, что может ограничить полезность структуры. Низкопроизводительные должны будут собираться и рассчитать эти метрики вручную, что увеличивает соотношение ошибки. Четыре ключевых метрики не за команду, являются на команду и поставляемость. Таким образом, в конце концов, четыре ключевых метрики полезны для команд, но они не измеряют общую производительность команды, а их производительность, учитывая артефакт или бизнес-единицу. (больше на это позже)
Сбор четырех ключевых метрик
Довольно сложно и требует набора практик, которые не будут приняты низкими исполнителями в краткосрочной перспективе. Радарные разумные работы гласит, что эти метрики могут быть собраны на уровне трубопровода и что GOCD уже дает способ рассчитать их Отказ Тем не менее, метрики, которые обеспечивают GOCD Непрерывные метрики доставки , которые немного по-другому. Нам нужно быть осторожным о получении четырех ключевых метрик только с трубопровода по нескольким причинам:
MTTR вряд ли измеряется через трубопровод. Мы не измеряем время, чтобы исправить сборку, но чтобы восстановить услугу. В настоящее время с распределенными архитектурами и X-AS-A-A-A-Service, причем прикованные к раковину много к 1 прямые зависимости между единицами развертывания, эта метрика упадет до минимального гарантированного значения.
Частота развертывания не частота доставки. Мы измерим, сколько раз мы развертываем изменения, но они могут быть отключены под функцией переключателя. Это, безусловно, означает, что мы измеряем технические характеристики, но это не напрямую коррелировало для эффективности бизнеса команды.
Изменение отказоустойчивости — это сложный, поскольку нужно общее понимание того, что означает неудача. Похоже, что есть конвенция о сокращении концепции провала трубопроводов, однако это не будет измерять надежность команды по предоставлению функций. Чтобы измерить надежность команды, нам нужно будет связать сборки, с выпуском, и способ создать взаимосвязь между сбоем службы (или ошибками) с выпуском.
Время заказа для изменений также действительно сложно, поскольку изменения не могут быть рассмотрены доставляются до тех пор, пока они не будут служить клиенту. Изменения развернуты, но отключены под функцией переключателя, не могут быть измерены. Эта информация обычно не доступна в трубопроводе.
Как видите, эти задачи даже трудны для высокопроизводителей, поскольку они требуют большого понимания живых систем, и большая часть этой информации обычно не легко доступна. Я полюблюсь больше по техническим соображениям позже.
Четыре ключевых метрики не измеряют производительность команды
Они предвзяты к конкретным результатам или артефактам. Еще распространено команда, стать средним или высоким исполнителем в артефакте, но низкий исполнитель в другом артефакте. Если вы находитесь на трансформационном этапе в вашей организации, команды будут работать в разных средах в зависимости от бизнес-единицы. Обычный сценарий — это команда, которая имеет обслуживание в новой инфраструктуре и работает также в устаревших системах. Это может привести к ситуациям, когда команды разочарованы путем сравнения и уменьшают их производительность еще больше на устаревшие системы. Таким образом, вопрос в том, сделайте четыре ключевых эффективности команды мер по метрике или производительность бизнес-единицы? Это вина команды, чтобы быть недоступным на устаревшей системе, но хорошо выполнять на другом бизнес-подразделении? Что произойдет, если у нас есть две команды, работающие вместе в одном деловом блоке, и они имеют разные четырех ключевых метрик? Четыре ключевых метрики лучше всего использовать для понимания динамики бизнес-единицы. Доказано, что хорошая оценка на четырех ключевых метриках позволяет команды управлять волатильными бизнес-подразделениями. Организации могут стратегически использовать эти ключевые метрики для улучшения своей динамики и воспользоваться волатильностью их основного домена, улучшая общую производительность.
Автоматизация четырех ключевых метрик
Четыре ключевых метрики определенно должны быть собраны из живых систем, однако у нас еще нет инструментов для этого легко. Большинство компаний наращивают инфраструктуру вокруг своих собственных услуг, чтобы собрать их или инструментировать свои трубопроводы, чтобы выдвинуть новые метрики на свои приборные панели.
Должно быть возможно иметь платформу собирать эти метрики на организационном уровне, однако задачи различны:
Какой сбой службы должен быть восстановлен, зависит от команды. Доступность полностью зависит от бизнес-устройства, а единица развертывания может повлиять на несколько бизнес-единиц. Кроме того, разные услуги могут повлиять на одно бизнес-единицу путем переходных зависимостей и каскадной недостаточности на распределенных архитектур, полагающихся на одноранговые прямые коммуникации (например, HTTP, GRPC Communication). Доступность может быть частично гарантирована автоматическими выключателями, уменьшая консистенцию.
Может быть несколько развертываний того же сервиса (горизонтальная масштабируемость)
Там могут быть несколько версий одного и того же сервиса (канареец)
Со всей этой сложностью в виду Техническое решение для сбора этих метрик необходимо оспаривать много существенной сложности и много ответов. Я предлагаю, но непроверенную, возможное решение, которое можно использовать постепенно.
Сначала соображения: информация, которую нам нужно для измерения четырех ключевых метрик, не в одном месте. Он разбросан по всему различным системам, и опрос этой информации из нескольких источников будет неуправляемым. Если нам нужно получить информацию об фиксации, и информация о том, когда она была развернута (возможно, через вашу облачную инфраструктуру, если таковые имеются и в вашем трубопроводе), и их живой статус, мы получили бы с изображением, как это:
Сложность увеличивается экспоненциально с различными сервисами CI/CD (GOCD, Дженкинс, Действия GitHub, Travis, Gitlab, добавьте свой собственный), Различные доставные единичные инфраструктуры (AWS EC2, AWS ECS, Azure K8S, GCP K8S, Heroku) и Различные платформы репозитории Git (Github, gitlab, bitbucket). По этой причине было бы разумно изменить модель до более ориентированной и толчковой системы, с одним источником информации.
Для этой платформы большинство заметных Перекрестные функциональные требования не важно:
Наличие Не важно, сервис может быть вниз в течение нескольких часов или дней, данные не являются критическими. Производительность Не является проблемой, любой низкоуровневый экземпляр в любом поставщике облака может поддерживать необходимую пропускную способность. Задержка часов или дней в обработке данных не является проблемой. Безопасность не может быть проблемой, потому что не должно быть никакой конфиденциальной информации. Масштабируемость Не будет проблемой: нагрузка будет довольно низкой, так как большинство этих метрик требуют взаимодействия пользователя. Организационные трубопроводы собираются дросселировать нагрузку сами по себе, так как они естественно неэффективны по сравнению с компьютерами.
По моему опыту, что было бы самым важным Перекрестные функциональные требования будет Конфиденциальность Поскольку эти метрики могут быть легко отнесены для мониторинга индивидуальных или командных характеристик токсичными организациями, нарушая безопасное пространство.
Топология, которую я бы порекомендовал, это проявляется, это проявляется, живя вместе с артефактом, который был развернут, поэтому его можно потянуть агентом и отправлять на метрический центр. Что-то похожее на это:
Этот метрический концентратор может быть что-то домашнее, стандартный сервер, или кластер PROMETHEUS (или любой подобной технологии), которые могут согревать эти метрики и отправлять их на вашу приборную панель предпочтения (Grafana, DataDog, новую реликвию …). Более подробная картина будет:
CD-трубопровод записывает файл манифеста, который будет содержать журнал изменений в развертывании и некоторую важную информацию о контексте развертывания (например, Canary/Full Release развертываемых).
Эта информация будет легко доступна для метрического агента, который будет размещен с доставкой (например, POD, похожий на шаблон SideCar), который раскрывает информацию для Метрический хаб .
Собирающийся компонент по компоненту, это будет краткое изложение обязанностей:
Манифест является потенциально статическим документом, который будет содержать информацию о текущем развертывании. Эта информация будет заполнена компакт-дископровода и будет частью артефакта сборки:
- Контекст: канарейка/полный выпуск
- Название команды
- Поставляемое имя
- Построить идентификатор
- Изменить набор (список)
- Совершать хэш
- Температеж
Метрический агент должен быть легким демоном, который вытащит информацию от проявления и зарегистрируют в метрический концентратор.
Метрический концентратор или метрический реестр, будет отвечать за агрегацию информации различных метрических агентов. Вероятно, это должен быть тонкий слой на вершине Statsd Server или PROMETHEUS.
Зонд Лейтивности будет нести ответственность за уведомление метрического агента любого изменения в статусе бизнес-единицы. Обычно сервис будет частью единого бизнес-единицы, но для устаревших систем это обязательно (поскольку большинство бизнес-единиц являются частью этого единого артефакта). Зонд LIVE может быть реализован как простые проверки здоровья, поэтому они также могут быть использованы из балансировщиков нагрузки.
Резюме
- Четыре ключевых метрики не являются постоянными метриками доставки.
- Четыре ключевых метрики могут быть преднамеренно использованы организациями для разработки бизнес-единиц.
- Четыре ключевых метрики — это задача самостоятельно, трудно измерить, и даже сложнее автоматизировать, что делает их необоснованными для низких исполнителей без поддержки.
- Использование четырех ключевых метрик для измерения одной команды, не учитывая бизнес-подразделение, может быть неприятно.
- Четыре ключевых метрики также являются хорошим показателем превосходства архитектуры, MTTR является ключом в этой области.
Оригинал: «https://dev.to/kmruiz/four-key-metrics-and-team-performance-2p4f»