Существует множество разных причин для перехода различных организаций в DevOps.
Я постараюсь перечислить те, которые часто появляются.
Сокращение времени на изменение цикла
Часто между запросом на изменение и его развертыванием и использованием в организации часто проходит много времени. Сначала он планируется разработчиками в одном из циклов разработки, а после его доставки - в одном из циклов выпуска. Оба цикла включают тестирование, и в случае обнаружения проблем оба цикла сбрасываются. Интегрируя отделы разработки и эксплуатации, мы можем оптимизировать оба процесса.
Проблемы программного и аппаратного обеспечения
Вспомните карикатуру «Bugs Bunny», в которой Bugs и Daffy спорят, сезон уток или кролик? Теперь представьте, что мы сделали это с разработчиками и операциями, где разработчики утверждают, что это аппаратная проблема, а операции утверждают, что это программная проблема. Для конечного пользователя это различие без разницы. Они просто хотят, чтобы это было исправлено.
Собрав вместе разработчиков и операции, им придется решать проблемы. И может оказаться, что это была программная и аппаратная проблема.
Мы против них
Во многих компаниях расстояние между тестировщиками и разработчиками росло, потому что они были отдельными отделами, а цикл разработки становился все более формализованным и стандартизированным.
С появлением Agile разработчики и тестировщики стали работать вместе, и мы начали видеть точку зрения друг друга на цикл разработки и, возможно, даже стали уважать ее.
Нечто подобное должно происходить между разработчиками и операциями, потому что, как зрелые области, так и процессы далее формализуются и стандартизируются, расстояние между этими отделами увеличивается. Таким образом, одна из проблем традиционной модели заключается в том, что она выглядит как «мы» против «них» как для разработчиков, так и для операций. Оба не совсем понимают сложность обязанностей другого.
Ожидания / положительные стороны
С DevOps обе специальности изучат некоторые навыки, традиционно выполняемые другими. Никто не ожидает, что системный администратор станет инженером-программистом, или разработчик - сетевым инженером, но ожидается, что оба они возьмут на себя часть обязанностей другого. Это означает, что когда вам действительно нужны дополнительные руки, они там.
И у разработчиков есть определенные плюсы: теперь у вас больше контроля над тестовыми средами, вам будет проще развертывать программное обеспечение для пользователей, и в вашей организации будет больше людей, чтобы поделиться своей любовью к ремеслу.