В 2020 году проводилось
первое исследование состояния DevOps в России при поддержке компаний Экспресс 42 и Онтико. Наш эксперт,
Игорь Курочкин - автор первого исследования. Для исследования использовалась методология из
книги Accelerate и отчетов
State of DevOps. Исследование заняло
6 месяцев и включало в себя анализ предыдущих исследований, формулировку гипотез, подготовку опросника, анализ результатов и составление отчета.
В результате исследования получилось опросить
889 представителей индустрии и получить срез по текущему состоянию инженерных подходов и процессов, практик и инструментов в российских компаниях и командах. Получилось проверить гипотезы как инженерные практики влияют на эффективность поставки, коммерческие и некоммерческие показатели компаний, определить ключевые метрики и профили эффективности, сравнить результаты с исследованиями компаний DORA и Puppet.
В отчете раскрыты следующие темы:
- Профили эффективности команд. На основе ответов респондентов выполнена кластеризация и выделены три статистически значимых профиля эффективности. Деление на четыре профиля, как в исследованиях DORA, оказалось недостаточно устойчивым для российского рынка, поэтому использованы три группы — High, Medium и Low;
- Ключевые метрики (4 key metrics). Срок поставки (Lead Time for Changes) — время от Commit до успешного запуска кода в Production окружении. Частота развертывания (Deployment Frequency) — как часто изменения кода применяются на Production окружении или публикуются конечным пользователям. Время восстановления (MTTR) — сколько времени в среднем требуется для восстановления сервиса после инцидента или дефекта повлиявшего на пользователей. Неуспешные изменения (Change Failure Rate) — процент изменений на Production окружение которые заканчиваются деградацией сервиса и требуют устранения последствий;
- Применение ключевых метрик для анализа эффективности. Показано, что при сопоставлении реальных команд с профилями эффективности только около 16% респондентов полностью соответствуют одному из профилей. В остальных случаях команды находятся между профилями, что подтверждает ограниченность использования усредненных профилей без дополнительных инструментов анализа;
- Инструменты для практик Infrastructure as Code и CI/CD. Среди оркестраторов лидирует Kubernetes — 52% респондентов. Docker Swarm используют 12%. Наиболее распространенные CI-системы — Jenkins и GitLab. Самый популярный инструмент управления конфигурациями — Ansible, далее следует Shell. Большинство команд используют ОС семейства Linux, при этом не менее 25% продолжают использовать Windows;
- Внутренние платформы, платформенные команды, предоставление платформенных сервисов. Не выявлено значимой связи между возрастом платформы и профилем эффективности. При этом платформы команд профиля High в среднем предоставляют больше сервисов и программных интерфейсов и чаще сопровождаются активной поддержкой и обучением со стороны платформенных команд;
- Практики непрерывной интеграции и поставки, влияние архитектуры. Подтверждено, что более высокий уровень автоматизации CI/CD связан с лучшими показателями по всем ключевым метрикам. Сам факт использования микросервисной архитектуры не коррелирует напрямую с профилем эффективности, однако архитектура, обеспечивающая автономность команд, является значимым фактором для профиля High;
- Связь Agile и DevOps. DevOps без Agile встречается редко. У 50% респондентов Agile практики появились заметно раньше DevOps, около 20% начали внедрение одновременно. Отсутствие и Agile, и DevOps практик является характерным признаком профиля Low;
- Паттерны команд и способов взаимодействия из Team Topologies. Инфраструктурные команды присутствуют примерно у 50% респондентов. Отдельные DevOps команды отметили 45%, при этом они чаще встречаются у профиля High. Кросс-функциональные команды и отдельные команды SRE также значительно чаще представлены в профилях High и Medium, чем в Low;
- Соотношение Dev, QA, OPS команд и инженеров. Для профиля High характерно меньшее количество инженеров тестирования и эксплуатации на одного разработчика по сравнению с Medium и Low, что отражает более высокий уровень автоматизации и зрелости инженерных практик.
Подробнее в
отчете,
статье и записи выступления на конференции
DevOpsConf 2020: