В любом процессе разработки участвует три команды:
При классическом подходе к разработке все эти команды работают независимо друг от друга. У каждой своя зона ответственности, а код от других команд они получают не в потоке, а порциями. Из-за этого возникают задержки и недопонимание: тестировщики тестируют неактуальную сборку кода, сисадмины сидят без работы, пока код не будет готов, разработчики не задумываются о результате.
Чтобы избавиться от этих задержек и недопонимания, была придумана методология DevOps — особый подход к организации команд разработки. Он позволяет выстроить конвейер, на котором разработчики, тестировщики и сисадмины работают в едином потоке и вместе отвечают за результат — код, выпущенный в релиз для пользователей.
Методология DevOps — это комбинация из двух факторов:
Чтобы всё это работало, нужен специальный человек — DevOps-инженер. Именно он налаживает коммуникацию, разрабатывает и настраивает инструменты для совместной работы, служит проводником между всеми командами.
Сейчас DevOps становится новым стандартом, но этот подход не лишён некоторых недостатков.
Дороговизна для небольших компаний. Некоторые DevOps-инструменты стоят недёшево: нужно покупать лицензию для использования, закупать сервера для развёртывания, поддерживать инфраструктуру. Кроме того, для работы может понадобиться нанять DevOps-специалиста, зарплата которого обычно начинается от 150 000 ₽ и может доходить до 400 000 ₽. Небольшим компаниям такое не по карману. При этом требования к скорости релиза у них обычно не такие высокие, а барьеры между командами меньше, поэтому они могут эффективно работать и без DevOps-подхода, а свободные деньги лучше потратить на развитие и наём более квалифицированных разработчиков.
Неправильное понимание принципов DevOps. DevOps появился недавно, и его принципы ещё не устоялись. Из-за этого иногда возникает недопонимание:
Из-за таких ошибок может показаться, что DevOps вообще не работает. Но тут проблема не в DevOps, а в неправильном подходе к его внедрению.
На современном рынке DevOps-подход обычно используют три группы компаний.
IT-агентства. Это компании, которые что-то разрабатывают на заказ для других компаний. Для них разработка — главный продукт, поэтому они часто первыми внедряют разные инновации. И DevOps позволяет быстрее выпускать продукт за меньшие деньги, что важно для их клиентов.
IT-компании. Те, кто зарабатывает именно на программах и сайтах, вроде Яндекса. Без DevOps они не смогут быстро выпускать свой главный продукт и выживать среди конкурентов.
Крупные компании с IT-отделами. Обычно это фирмы, которые занимаются чем-то другим: крупные супермаркеты, застройщики, заводы. У них есть основная деятельность, но её нужно поддерживать: разрабатывать сайт, делать сервисы для внутренней аналитики, создавать мобильные приложения. Поэтому нужен IT-отдел, а в нём необходим DevOps.
Без DevOps сейчас обходятся только небольшие фирмы, у которых настолько маленькая команда, что процессы сами идут достаточно быстро. Но даже они внедряют в процессы элементы DevOps: автоматизацию, системы контроля версий и конвейеры. Так что в скором времени DevOps-специалисты, скорее всего, будут в каждой компании, связанной с IT.