В отчете о состоянии DevOps за 2017 год говорится, что «процент неудачных изменений» составляет около 31–45%. Хотя интуитивно это звучит правильно, отслеживаются ли они как инциденты? Нет. Потому что они исправляются довольно быстро, обычно во время валидации.
Проблема, которую быстро устраняют, по-прежнему остается проблемой. Если вы не сообщаете об этом как таковом, это проблема.
Таким образом, чтобы точно сообщать о частоте отказов, требуется дисциплина. У нас нет стимула сообщать подобные вещи, потому что мы хотим, чтобы все работало, и делаем все возможное, чтобы это произошло.
Если ваша цель на самом деле состоит в том, чтобы все работало, вам нужно честно говорить о неудачах, чтобы предотвратить их в будущем. Похоже, что команда лжет (возможно, себе, но, конечно, руководству) о неудачах, потому что их цель — добиться чего-то. появляться работать.
Это разные вещи. Например, возьмем старую шутку о том, что QA создает ошибки: «Мой код был в порядке, пока QA не заполучил его, а потом они сделали все эти ошибки!». Ошибки были всегда, но разработчик не знал о них. Целью оперативной группы должно быть фактическая надежность, и их руководство должно стимулировать их как таковое. Это означает, что если они введут дополнительный мониторинг, который приведет к обнаружению новых проблем, их следует вознаграждать, а не наказывать за последующее снижение показателей надежности.
TL;DR, как вы доказываете, что DevOps, в частности автоматизация развертывания, снижает процент неудачных изменений?
Если вы пытаетесь мотивировать изменения в своей организации, вам не следует пытаться что-либо доказать, а предоставить доказательства того, что другие организации говорят о своих собственных преобразованиях. Если вы пытаетесь измерить уже существующие процессы и оправдать их дальнейшее существование, вам следует отслеживать стандартные показатели надежности, такие как среднее время ремонта (MTTR).
Но принципы DevOps заключаются не только в повышении надежности. Даже проектирование надежности объекта – это не просто повышение надежности. Скорее, вы хотите попасть в соответствующий уровень надежности – то, что приносит пользу бизнесу, но не мешает развитию. И это поднимает вопрос о настоящей мотивации в DevOps: дать возможность измениться. Вы хотите позволить бизнесу быстрее реагировать на стимулы рынка, что происходит за счет уменьшения трения разработчиков, увеличения скорости развертывания, автоматизации ручных процессов и т. д., оставаясь при этом в приемлемых пределах надежности. Это означает, что вам нужно измерить надежность, но вам также необходимо измерить скорость, потому что ваша цель — увеличить последнюю, сохраняя при этом первую относительно статичной.