Кто такие DevOps?

Разговоры и слухи вокруг DevOps становятся активнее и интереснее с каждым днем. Вся IT-отрасль (хотя, уже и не только она) спорит насчет новизны этого подхода. Руководители компаний не могут определиться, нужна им эта методология или пока лучше ограничиться Agile? Девопс − это набор полезных тулов или все же способ мышления? DevOps Engineer − кто это и как он может помочь бизнесу? Самое интересное, что «чем дальше в лес, тем больше дров». Владельцы бизнеса, слыша модное слово DevOps, решают, что в их компанию определенно нужен такой специалист. Зарплаты готовы платить в полтора-два раза больше, чем рядовому системному администратору. При этом четко не понимают, что же должен делать такой сотрудник. Какую роль и в какой команде он будет выполнять? А, может, девопса проще «вырастить» из своих? От непонимания функциональных обязанностей DevOps Engineer, этому мистическому персонажу часто насаждают роль «главного по тулзам». Или, возможно, «главного по коммуникации в команде». Бывает, что приписывают и роль «звезды» всего проекта. От «звезды» ждут магии в виде молниеносного релиза продукта без багов. Случается, что такой звездный сотрудник все же находится. Им может быть системный администратор, который стремиться расширять свои навыки. Или разработчик, которому надоело ждать помощи со стороны эксплуатации и он решил сам научиться тестированию. Или QA-инженером, который хочет попробовать себя разработке и администрировании. На самом деле, за понятием DevOps Engineer стоит несколько разных инженеров. Такой себе собирательный образ «универсального солдата», готового прийти на помощь команде. Кстати, очень часто в сети встречается термин DevOps-евангелист. На наш взгляд, это наиболее более корректный вариант названия этой роли. Так как DevOps − это скорее философия, а тот, кто ее проповедует − евангелист. Несет девопс-философию в массы − так будет проще.

Что такое DevOps?

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

Разработчики подтвердят, что разбираться с работой ОС, безопасностью хостов или маршрутизацией − им неинтересно. Ну совсем это не про разработку. Поэтому следующей попыткой стало привлечение в команду системного администратора. Он мог профессионально разобраться с этими вопросами, а стоимость его как специалиста была ниже. Такой админ становился частью команды проекта. Основными задачами было управление средой разработки и тестирования, сетевая безопасность и выявление системных багов.

Со временем, такие админы научились понимать требования к разработке в своей команде. Их работа упростила жизнь разработчикам и тестировщикам. Теперь команда легче справлялась с ошибками деплоя, тестами, обновлениями. Положительный опыт передавался на другие проекты, и теперь востребованными становились системные администраторы. В ход пошли инструменты, оптимизирующие процессы, например, Azure DevOps Server. Значит ли, что приложение Azure DevOps решит проблемы и баги на всех этапах выпуска продукта? Конечно, нет, ведь помимо этого существует ряд других тулов, с которыми должен уметь работать DevOps. Docker, AWS, Kubernetes, Terraform, Git, Bitbucket, OVH, iLand, GreenCloud и многие другие − список неограничен. Выходит, девопс это админы уровня Middle и выше, использующие инструменты Azure DevOps Server и подобные? Не совсем верно. Да, в арсенале девопса должен быть современный инструментарий, но лишь его недостаточно. Нужно понимать, для чего и зачем используется весь этот набор инструментов. Понимать глобально, на уровне всех процессов программной разработки.

Все же, DevOps Engineer − это не совсем системный администратор, и не совсем программный инженер. Здесь не стоит забыть и о роли Build/Release и QA-инженера. Частично их функции также выполняют администраторы, «претендующие» на роль девопс. Управление разработкой и инфраструктурой, планирование ресурсов, контроль тестирования − тоже добавляем к функционалу. Поддержка на пост-релизе, оценка рисков безопасности − также ложатся на плечи DevOps. А в некоторых продуктовых компаниях работу с процессами автоматизации обычно выполняет инженер автоматизации. Выходит, DevOps в какой-то мере − также инженер автоматизации? Особенность DevOps-инженера в том, что он совмещает несколько профессий − админа, разработчика, тестировщика и менеджера. Сложно, запутанно, неясно − разбираемся дальше.

Поговорим про DevOps вакансии, которые часто встречаются на сайтах по поиску работы. Точнее, про требования, которые компании выставляют для девопс. Возможно, это поможет нам понять, какие функциональные обязанности приписывают девопсам. Первый пример: «Понимание Zabbix, Prometheus, Iptables; продвинутое владение BASH и Ansible, Linux-гуру. В команде с разработчиками умеете искать баги приложений (PHP, Python, Java). Кропите над системной безопасностью и бекапом. Выжимаете максимум из инфраструктуры и умеет правильно ее построить, а CI/CD, MySQL, AWS для вас must». Что мы видим? Все требования указывают, что это функционал системного администратора уровня Middle. Есть немного от Build Engineer и CloudOps. Но в целом такая вакансия указывает на System Administrator уровня Middle.

Еще одна вакансия: «Требуется опыт построения инфраструктуры с высокой нагрузкой. Отличные знания стека языков программирования − PHP или Python. Навыки работы с базами данных Redis или MySQL. Навыки работы с виртуализацией − Docker, Terraform, Vault, KVM, LXC и знания скриптовых языков. Навыки работы с процессами CI/CD (Continuous Integration and Continuous Delivery) и Gitlab CI. Важно умение ладить в команде и договариваться с коллегами». На кого данное описание похоже больше − начитанный системный администратор или Build Engineer?

Помогли ли вам эти требования к кандидатам ответить на вопрос DevOps − что это? Согласитесь, что до конца не понятно, кто такой DevOps и какие функции должны быть обязательными у этой роли. Похоже, что компании слишком зациклены на самом термине девопс, и за это готовы раскошелится. Выдвигая такие требования к новым специалистам, руководители упускают из виду работающих в штате администраторов. А можно вполне поэкспериментировать с развитием навыков у имеющихся в команде админов, подающих надежды. Свой специалист будет более-менее знаком с задачами команды и компании в целом. Ему будут понятны бизнес-процессы и организация работы команд на проектах. Как минимум, он знает куда бежать в случае бага или сбоя тестирования. А еще, если он не интроверт, у него уже налажена коммуникация с коллегами.

А кто нанимает девопс? В больших командах должен быть кто-то, кто примет на себя ответственность за недочеты. Например, на этапе тестирования, деплоя, обновления или непосредственно эксплуатации. Этот же человек сможет построить систему взаимодействия членов команды на всех этапах. А если повезет, то у него получится научить всех участников процессов проактивной позиции. Прежде всего, нанимают девопс крупные компании, связанные с разработкой программных продуктов или со сложной IT-инфраструктурой. Раньше это были такие гиганты как Amazon, Adobe, Netflix, Walmart и Facebook. Сегодня позволить себе такого специалиста могут и не такие крупные игроки. Все больше компаний интересуются подходом DevOps. Довольно накладной эта роль будет для небольших стартапов, но там можно обойтись и без девопса.

Как стать DevOps

Выше мы искали ответ на вопрос «DevOps − что это?». Сейчас попробуем разобраться с тем, как стать DevOps и как выбрать курсы. Из тематической литературы вы, наверное, усвоили, что DevOps − это не сборник набор инструментов или утилит. DevOps − это более глобальный подход к Development and Operations. Философия, методология, набор подходов, инструментов − все это в комплексе формирует культуру девопс. Выбирая девопс курсы, нужно быть готовым учиться интенсивно, постоянно углубляя свои знания. Важно рассматривать всю взаимосвязь процессов разработки и подходить к обучению глобально. Возможно, курсы DevOps научат вас эффективно использовать инструменты на практике. Например, вы сможете легко развернуть свое приложение в AWS или поднять контейнер в Docker. Или научитесь одной командой собирать логи − согласитесь, неплохая оптимизация работы? Так или иначе, девопс курсы дают вам нужный инструментарий. А хорошие devops курсы − глобальное понимание того, как эти инструменты вы будете применять.

Любой системный администратор обучение этой методологии воспринимает как неплохой навык, который повысит его стоимость как специалиста. Но к инструментам, которые освещают devops курсы, стоит прибавить и гибкие навыки. Без них развитие в этом направлении невозможно. Один из важных принципов DevOps − коммуникация. Да, нужно уметь разговаривать, слышать и договариваться. Часто девопсы выступают в роли адвоката, который мирит разработчиков и эксплуатацию. Уметь находить ошибки не только в процессах, но и гэпы в общении внутри команды. Делиться выявленными багами и распространять пути решения проблем. Писать девопс-манифест и учить коллег им пользоваться − все это про роль DevOps. В любом случае, у такого работника должен быть хороший технический кругозор. Важно, чтобы он постоянно изучал новые технологии, подходы, инструменты, постоянно расширяя свой функционал.

DevOps курсы

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

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

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

Для зачисления на курсы DevOps онлайн,  в большинстве случаев, нужно пройти тест. Почему есть такое требование? Во-первых, не все хотят работать с новичками, которые ничего не смыслят в теме курса. Если кандидат не владеет языками программирования, на второй же лекции он впадет в ступор. Не имеет понятия об инфраструктуре сервисов − тоже дропнется в самом начале. Если никогда не работал с системами оркестрации и контейнеризации − не поймет, о чем речь. То есть если мыслить логически, зачем вам курсы DevOps, если вы не знаете базовых вещей? Кстати, отсюда вытекает и тот факт, что не совсем корректно девопсу присваивать уровень Junior DevOps. В девопсы идут люди с уже немалым опытом за плечами. Определить точку, в которой девопс был Junior, а потом стал Middle, будет субъективным. Статус DevOps будет расти в зависимости от расширения его практического опыта и стека используемых технологий.

Чтобы узнать, что такое DevOps, вы можете сэкономить время, почитав книги об этой методике. Их сейчас довольное большое количество и найти их несложно. Например, «Философия DevOps. Искусство управления IT» − Дженнифер Дэвис и Кэтрин Дэниэлс. Книга раскрывает всю глубину девопс-культуры и показывает реальные примеры из бизнеса. Кстати, авторы пишут, что девопс можно применять не только в отношении разработки. Этот подход вполне могут использовать и компании не из IT-отрасли. Довольно интересное мнение и множество практических кейсов.

Другой интересный пример − «Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему». Авторы рассказывают о девопс в художественном романе. Удачный сборник инструментов DevOps − «Continuous delivery. Практика непрерывных апдейтов» знакомит нас с инструментами, помогающими разработчикам. Вы узнаете о сборке, интеграции, тестировании, развертывании и мониторинге. Познакомитесь с инструментами контейнеризации и оркестрации. Чтобы расширить свои знания, можно воспользоваться мини-википедией на GitHub. В любом случае, почитать литературу, блоги, каналы и видео-ролики о подходе девопс никому не помешает. В любом случае, почитать литературу, блоги, каналы и видео-ролики о подходе девопс никому не помешает.

Какой бы спорной ни была эта методика (или философия), она действительно работает. Не стоит рассуждать над терминами «DevOps Engineer» и «девопс-евангелист». Лучше не задумываться над тем, кто был раньше − Development или Operations. Нужно просто брать и делать. Говорят, после знакомства с девопс ваш мир (и бизнес) не будет прежним.

FAQ

«Универсальные солдаты», «звезды» команды или начитанные парни, которые умеют многое. Сотрудники, к которым бегут если приложение не разворачивается в нужной среде. Сотрудники, которые могут настроить автотесты и команда вечером пятницы уйдет домой вовремя. Специалисты, которые найдут баг в коде на Git и смогут быстро его откатить до предыдущей версии. Ребята, которые поднимают контейнеры и управляют ими легко и непринужденно. Сложно описать одним предложением или даже абзацем, кто такие DevOps инженеры. Чтобы найти ответ на этот вопрос, стоит углубится в истоки девопс-философии. И дополнительно разобраться с этапами проектирования, на которых может понадобится помощь девопса.

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

Какие компании нанимают девопс? Где методология DevOps принесет наибольшую пользу? Фишка девопса в том, что он может совмещать в себе несколько ролей одновременно − администратора, разработчика, тестировщика и менеджера. По сути, девопс востребован в любом проекте, так как обладает умениями, которые пригодятся в большинстве бизнес-процессов. В продуктовых компаниях DevOps становится все более востребованной ролью. Построение грамотной архитектуры приложений, мониторинг процессов разработки, контроль релизов, автоматизация тестирования и многие другие возможности DevOps станут незаменимыми в процессе разработки программного продукта.

В DevOps обычно переходят специалисты уровня Middle и Senior. Медиану зарплат можно очертить так: от 700$ до 4000$, но это не «потолок». Есть много нюансов, которые будут предопределять зарплату девопса. Во-первых, рынок, на котором работает компания − за рубежом доходы девопсов могут обходить внутренний рынок в 1,5 − 2 раза. Опыт и наличие определенных знаний − компания будет оценивать специалиста по его работе с языками программирования, облачными сервисами и построением инфраструктуры, умением автоматизировать тесты и менеджерским качествам. Также значение имеет масштаб проекта − чем больше объем задач, тем выше зарплата девопсов на таком проекте.

Для того, чтобы стать специалистом по DevOps, нужно иметь в своем запасе определенные знания. Прежде всего, у вас должен быть немалый опыт работы с сетевой инфраструктурой и построением архитектуры облачных сервисов. Языки программирования − достаточно одного-двух, чтобы понимать код разработчиков. Лучшим вариантом будет пройти курсы DevOps, чтобы на практике разобраться с подходами Infrastructure as a code, Continuous Integration & Continuous Delivery, поработать с контейнерами и изменениями кода в системах контроля версий Git или Bitbucket. Для начала можно пробовать себя на проекте, в котором вы задействованы − если ваши девопс-инициативы будут поддержаны со стороны руководства, у вас будет поле для развития девопс-навыков.

error: Контент защищен.