DevOps: кто, как и зачем?
DevOps – один из самых неоднозначных и в то же время популярных IT-мемов последних лет. Одни говорят, что это – новая культура создания программных продуктов. Другие утверждают, что речь идет о кооперативных процессах внутри компаний. Третьи уверены, что DevOps – это официальное звание универсального солдата от мира IT. Истина, как всегда, где-то посередине.
DevOps – методология кооперации
Для начала перенесемся ненадолго в 2009 год. Как раз тогда в Бельгии впервые прозвучал столь обсуждаемый сегодня акроним DevOps. Именно он был выбран для обозначения методов, нацеленных на взаимодействие разработчиков и технических специалистов. Первые «подарили» термину частицу “dev” (от “development”), а вторые, соответственно, – “ops” (от “operations”).
Но зачем вообще было вводить новый термин и объединять разных специалистов?
Прежде всего, чтобы оптимизировать процесс выпуска и использования программных продуктов.
До 2009 года процесс этот был разделен на 5 отдельных звеньев-этапов: анализ требований, планирование, реализация, тестирование, внедрение и техподдержка. За каждый этап отвечали разные специалисты, которые между собой практически не пересекались. В крайнем случае, они могли решать что-то сообща с ближайшими «соседями». Например, тестировщики еще могли пойти на контакт с техническими специалистами, но вряд ли им удалось бы достучаться до аналитиков или самих разработчиков.
Понятное дело, что если в выпущенном продукте обнаруживался баг, вопросы начинали задавать с конца. То есть, первым делом претензии направляли к сисадминам, потом – к тестировщикам и т.д. Если вдруг дело доходило до разработчиков, у них наготове был универсальный ответ – «С кодом проблем нет, спрашивайте сисадминов». Последние, естественно, грешили на код. Получался замкнутый круг, и быстро решить проблему в таких условиях было крайне сложно.
Потому и решено было ввести новую методологию разработки программных продуктов и сервисов. То есть, те, кто говорит о DevOps как о новой культуре создания ПО, несомненно, правы.
Но правы и те, кто считает DevOps способом кооперации внутри компании. Принципы DevOps нацелены на объединение специалистов разных звеньев, а также интеграцию и синхронизацию всех рабочих процессов.
DevOps – это средство, которое объединяет программистов, тестировщиков и админов, обслуживающих определенный программный продукт или сервис. При этом не важно, используется ли этот продукт/сервис или находится на стадии продакшэна.
Если представить разработку, тестирование и эксплуатацию ПО в виде трех кругов, то DevOps окажется сектором, где эти круги пересекаются.
А как насчет профессии?
Те, кто говорит, что DevOps – это новая профессия, тоже правы.
Да, изначально DevOps был задуман как средство для преодоления пропасти между IT-специалистами разного профиля. Это целая методология с конкретными принципами и приемами реализации.
Но со временем термин стал использоваться и для обозначения человека, который занимается интеграцией разных IT-процессов здесь и сейчас. Правда, корректнее называть его DevOps-инженером.
По сути, это специалист уровня «все в одном», Если планировщики, тестировщики или сисадмины имеют собственные локальные зоны ответственности, то DevOps-инженер отвечает за все этапы разработки и/или использования программного продукта/сервиса.
Но неправильно было бы думать, что это просто сисадмин, который смыслит в Chef, или тестировщик, который может починить сервер. DevOps-инженер – это, прежде всего, носитель методов и приемов DevOps.
Несколько лет назад DevOps-тренд дошел наконец-то и до СНГ. Многие компании даже начали активно открывать вакансии для DevOps-инженеров. Но, к сожалению, мало кто четко понимает, что именно должен делать такой специалист и какую пользу он может принести бизнесу.
Поэтому в следующий раз мы расскажем более подробно о том, кто такие DevOps-инженеры и чем они занимаются.