10 мифов и легенд о DevOps

Зародившись в относительно недалеком 2009-м, движение DevOps сегодня творит небывалые вещи. Пока любой мало-мальски серьезный проект жаждет себе в штат такого специалиста, далеко не каждый вовлеченный в разработку специалист полностью осознает, что на самом деле скрывается за столь звучной формулировкой. Мы собрали топ-10 самых распространенных утверждений / заблуждений о DevOps и попытались разобраться, что из них ложь, а что намек-добрым-молодцам-урок). Правда, у нас бы ничего не получилось без наших IT-mythbusters — Сергея Пономаренко (тимлид IT-отдела), Николая Трофимовича, Станислава Соломенина и Олега Курницова.

DevOps — не профессия, а, в первую очередь, культура создания продукта — YEP

Зачастую в объявлении о поиске нового специалиста скупо указывается «нужен DevOps», что нередко вгоняет этого самого специалиста в когнитивный ступор: так чего же или кого же все-таки не хватает работодателю? Действительно, кто-то считает DevOps методологией для автоматизации и увеличения числа релизов, кто-то — для уменьшения ошибок, а кто-то, авторитетно подняв палец вверх, скажет, что DevOps — это, прежде всего, человек, и без него жизнь у программеров, сисадминов и QA-шников не та.

Здесь наши консультанты единодушны: DevOps-инженер один в поле не воин, и просто включив Бэт-сигнал на крыше Готэма, проблем не разгрести.

Например, мнение Сергея Пономаренко таково: «Я согласен с основным высказыванием, DevOps — это, прежде всего, культура. Культура взаимоотношений между частями одной команды, разными командами и целыми компаниями. Основная ее идея — это общение, тесное сотрудничество людей, выполняющих разные роли, и за счет этого упрощение, ускорение разработки и доставки более качественного и своевременного продукта клиенту.
Сейчас многие компании, менеджеры думают: «Вот наймем девопса, он нам все автоматизирует — и будет всем счастье». Да, DevOps-инженер может упростить и улучшить какие-то процессы, но без внедрения DevOps-процессов на всех стадиях работы над проектом какого-то грандиозного эффекта это не даст».

Олег Курницов добавляет: «Да, DevOps — это не человек однозначно. DevOps — это набор практик, которые позволяют разрушить границы между Ops и Dev. DevOps — это про совместную работу на общее благо».

В реальной жизни человек-DevOps — это чаще всего такой продвинутый админ — 50/50

Кто на самом деле может стать DevOps-инженером? Могут ли в эту сферу перейти, скажем, разработчики?

В целом Олег Курницов согласен с утверждением, что DevOps — это такой эволюционировавший админ, который стал вникать в процессы разработки. Про переметнувшихся разрабов он также слышал, но лично не встречал.

Сергей Пономаренко же старается быть более либеральным, давая надежду даже нетехнарям: «Я думаю, практически любой может стать DevOps-инженером. Да, я встречал бывших программистов, тестировщиков, ставших DevOps. Я думаю, только людям с гуманитарным образованием и соответствующей профессией будет тяжелее перейти в инженеры, но это тоже реально».

Решил поддержать всех мечтающих о DevOps-стезе, но «идеологически» далеких от этого направления, и Николай Трофимович, замечая, что на его памяти «в DevOps приходят из любой сферы: админ, разработчик, тестировщик, таксист, доктор, продавец, филолог и т.д.»

DevOps-инженер — это больше про опыт, нежели про знание конкретного софта — 50/50

Можно ли вообще стать DevOps инженером с нуля? А есть ли шанс остановиться на определенном этапе и сказать: теперь я достиг потолка?

Тут мнения наших экспертов разошлись. Сергей Пономаренко, например, уверен, что все возможно: «…долго и упорно обучаясь, можно стать кем угодно с нуля, если нравится выбранный путь».

Станислав Соломенин, наоборот, настроен скептически: «…нет, практически невозможно, без бэкграунда системного администратора или программиста. С учетом специфики профессии, придется по ходу дела усваивать знания из каждой области, так или иначе связанной с разработкой».

В общем, думайте сами, решайте сами, а пока вот вам приятный бонус — совет для начинающих — от Николая Трофимовича, как все-таки стартануть в данном направлении: «прочитать кучу непонятных поначалу и по большей части ненужных потом, статей на форумах; затем можно поискать свое место в команде — вроде как и инфраструктуру не админишь, но и код писать разработчики не подпускают (правда, не очень то и хотелось…). Желательно иметь тот багаж знаний, который нужен на текущем проекте: будет фигово, если админил одноранговую сетку на Windows XP, и вдруг приходится прикручивать сбор логов из Java-приложения в ELK-кластер, развернутый на Linux… в облаке… с iptables на борту…»

…Воодушевляет? Тогда добавим сверху единогласное мнение наших специалистов, что покой девопсу только снится, как, впрочем, и всей IT сфере.

Сергей Пономаренко: «Нет, потолка просто нет, в современном мире просто невозможно угнаться за новыми технологиями, облаками и изменениями в них. Постоянное обучение становится основной составляющей не важно какой профессии: программиста, тестировщика или DevOps-инженера. Это как гонка, только стоит остановиться на минуту, день — и все, тебя обогнали более молодые и гибкие, и ты уже плетешься в хвосте, пытаясь впитать тонны новой информации».

DevOps — это своего рода полевые архитекторы — NOPE

Многим ребятам вообще не понравилось это сравнение. Кто-то посчитал его некорректным. Олег Курницов поясняет: «Я не согласен. Скорее это человек, который расскажет разработчикам, как будет себя вести то или иное окружение в работе и откроет глаза на не всегда очевидные для них вещи».

DevOps — это заговор сисадминов, чтобы заставить разработчиков делать чужую работу — NOPE

Первое правило бойцовского клуба — никогда не говорить о бойцовском клубе. То есть наши заговорщики собеседники не видят ничего крамольного в действиях DevOps относительно других участников проекта. Наоборот, участие девопса приветствуется на любом уровне менеджмента проекта — утверждают они.

Олег Курницов: «Это холивар :) Но нет, в некоторых компаниях на стартах проекта нет выделенного человека, который будет отвечать за инфраструктуру, и поэтому разработчикам приходится вникать во все тонкости, и для них «манна небесная», когда DevOps заходит на проект :)»

Сергей Пономаренко сам факт заговора не отрицает, но при этом с улыбкой добавляет: «Ну нет, я бы сказал, что это заговор сисадминов, чтоб заставить делать свою работу и не перекладывать какие-то косяки на другие отделы, а работать сообща над их решением =)»

То, о чем в приличном обществе нельзя говорить, но так хочется знать — зарплата. Зарплата, поговаривают, огромная — 50/50

Согласно Stack Overflow, самые высокие зарплаты среди ИТ-специалистов США приходятся именно на DevOps-разработчиков. Они же лидируют по уровню дохода в Индии, Германии и Великобритании. А как же у нас (стране, регионе)?

Сергей Пономаренко: «Да, ситуация с зарплатами в DevOps-среде «интересная», уже даже мемы и комиксы появляются на эту тему. Сисадмин, просто написав «DevOps» у себя в резюме, моментально привлекает внимание рекрутеров и просит на 50–100% больше =).
В нашей стране DevOps (к сожалению, хехе) еще не догнали программистов (или, как сейчас модно говорить, Software Engineer) по зарплатам, но стремительно приближаются к этому.
С одной стороны, это обусловлено тем, что от инженера требуется очень много учиться и буквально поглощать знания, с другой стороны — хайповостью и модой на данную профессию».

Олег Курницов: «Если ты заходишь с нуля, без опыта работы на проектах, то можно просить среднюю по стране. В Беларуси с этим в целом хорошо, но вилка довольно широкая. Про регион сложно судить, но я думаю, объективно меньше Минска в два раза».

Устоявшегося перечня требований к DevOps-инженерам нет, а значит, они должны знать все — NOPE

Выдыхаем, все не так страшно. Хоть Сергей Пономаренко и кивает головом, мол, «True-true», Олег Курницов категорически отметает такой абсолютистский подход: «Не знаю ни одного человека, который будет знать все. Да и нереально это. Как правило, специалист знает одно или два облака, систему оркестрации, систему менеджмента, какой-то язык для скриптов и пару всяких штук в обвесе. Реально очень много всяких инструментов есть и вариантов их комбинации».

У DevOps-инженера свой неповторимый набор софт скиллз — 50/50

Про стрессоустойчивость говорить не будем, это и так понятно, но чем еще должен обладать успешный специалист в этой отрасти? 

И опять единства нет в наших рядах. Николай Трофимович, например, считает, что этот момент функционально не так уж и важен, мол, никому нет дела до личностных качеств, когда по большей части «нужна обезьянка контейнеры двигать либо умные штуки в облаке прикручивать. Как и везде (не привязываясь к делению на Dev или Ops) — надо будет че-то почитать, потом че-то написать».

Коллеги Николая, немного подумав, все-таки выводят формулу идеального DevOps-инженера, подчеркивая, что ничего необычного в этом наборе нет. Для Сергея Пономаренко он должен быть коммуникабельным — «в этой сфере и интроверт разговорчивым станет», уметь работать в многозадачном режиме — «вот у нас у некоторых ребят уже по 4 монитора, все задачи не влазят на два. А мы все ищем, где же у них еще два глаза спрятаны =)».

Станислав Соломенин убежден, что «самое главное качество в профессии — быть командным игроком. Так же важно не забывать, что DevOps — это не должность или человек. Это набор практик которых придерживается вся команда (а лучше вся компания). Надо уметь слушать и договариваться».

Подводит итог вышесказанному Олег Курницов: «Вообще весь процесс Agile и DevOps как его части — это про софт скиллз. Ибо главное — это слушать, слышать и говорить :)».

Таких не берут в стартапы — NOPE

Мол, задача стартапа — выпустить максимально быстро минимально жизнеспособный продукт, чтобы проверить новую идею. То есть в большинстве случаев стартапы могут обойтись без DevOps.

Ребята с такой расстановкой приоритетов категорически не согласны. Так, например, Сергей Пономаренко отмечает: «Ну, стартапы — это отдельная большая тема, они все очень разные, на то они и стартапы. В каких-то стартапах могут быть большие полноценные команды со строгими процессами и распределенными ролями. В других — два программиста и дизайнер, где каждый и швец, и жнец, и девопс, и тестировщик.
Кроме того, многое зависит от зрелости стартапа: на старте они могут работать маленькой командой, а после, получив понимание востребованности продукта, набрать большую команду».

Олег Курницов также обращает внимание, что немаловажную роль в этом вопросе играет финансовый аспект: «Стартап умеет считать деньги. И если нет человека, который продумывает архитектуру среды, чтобы она масштабировалась, была отказоустойчивой и вообще легко адаптировалась, то  рано или поздно придет «Технический долг» и заставит переделывать всё с нуля».

Программер переиграет девопса в программировании, сисадмин — в администрировании, а тестировщик — на своем тестировочном поле (но это не точно) — 50/50

…Ценность же DevOps-man-a в другом… В чем? С этим утверждением собеседники согласны отчасти.

Сергей Пономаренко замечает, что «DevOps — это связующее звено между программистами и тестировщиками, часто между разными командами и иногда даже между конечными пользователями и разработчиками». Олег Курницов приводит в пример собственный опыт: «Ну, тест планы и тест кейсы я точно писать не буду. А вот интеграционное/нагрузочное тестирование точно за нами». Ценность же DevOps-а ему видится в его умении поговорить, прийти ко всем заинтересованным сторонам и согласовать правила игры. Помочь с решением проблем и сделать их жизнь легче/лучше».