DevOps с чего начать или Junior DevOps

Подход DevOps понемногу перестает быть мейнстримом, каким он был пару лет назад, и потихоньку переходит в разряд must-have. Что должен знать DevOps, чтобы попасть в тусовку? В каком стеке технологий нужно быть подкованным для уровня Junior DevOps? Давайте разбираться вместе, с чего начать DevOps обучение и куда двигаться дальше, если уже что-то знаешь.

Многие ребята думают, для того, чтобы стать Junior DevOps, достаточно иметь техническую базу, разбираться в CI/CD (Continuous Integration & Continuous Delivery) и методологиях типа Agile. В какой-то мере, это правда. Но не стоит забывать, что Junior DevOps − это уже специалист с неплохим опытом в IT, часто уровня Middle и Senior, набивший много шишек в командной работе и решивший «изменить жизнь в лучшую сторону». С чего начать изучение DevOps? Да хотя бы с того, что усвоить: девопс − не должность и не профессия, а культура, философия, набор практик в большом и неспокойном океане разработки. Это понятие включает в себя гораздо больше, чем просто применение инструментария на практике. Глобальный подход к бизнес-процессам компании и определенный способ мышления для управления проектами − даже так можно сказать. Ниже подробнее разберем, что же такое девопс, какие доходы у этих ребят и что делать специалистам, которые решили освоить девопс-методологию.

Что такое DevOps?

Есть мнение, что devops engineer − это изолированная профессия, должность в проекте, команде или компании. Мы уже упомянули выше, что DevOps представляет собой глобальный подход к процессам, в частности, связанным с разработкой программного обеспечения. В какой-то степени многие специалисты в командах системных администраторов и программных инженеров могут претендовать на роль девопс − сложно описать конкретный профиль и функции. Есть определенная техническая база и навыки, которые помогут очертить, что такое девопс: как минимум вы должны быть специалистом в сфере IT уровня Middle и выше с основательным техническим бэкграундом (например, Linux, Python, AWS), мыслить стратегически и иметь хорошие soft-skills. 

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

Если вы новичок в IT, трезво оцените свои силы − готовы ли на данном этапе интенсивно углублять технические скилы, параллельно учиться управлять процессами, командами и учить других. Важно не переоценить силы ради желания влиться в модную тусовку девопсов, а честно посмотреть на себя со стороны. И тем не менее, почитать информацию на тему «DevOps − что это?» не помешает.

DevOps зарплаты

Логично поинтересоваться, а какая зарплата DevOps? Если девопс − это такой себе многорукий Шива, то и вознаграждение он получает по своим множественным заслугам. Но прежде чем говорить о доходах, стоит повторить, что не существует четко определенной профессии «девопс-инженер» или «девопс». Собственно, поэтому девопс зарплата также будет довольно размыта в зависимости от вашего опыта и профессионализма. В среднем DevOps зарплаты колеблются в медиане от 700$ до 4000$ − сумма будет рассчитываться исходя из вашего опыта в работе с сетями, администрировании операционных систем, работе с базами данных, развертыванием приложением и вашего стека языков программирования. Если хотите узнать примерные DevOps зарплаты, поинтересуйтесь, сколько зарабатывают опытные системные администраторы, которые вышли за рамки привычных функциональных обязанностей и уже работают с инструментами девопс. А еще более простой и всем доступный источник на букву G, как говорят, вам в помощь. 

DevOps курсы

А как, собственно, стать девопсом и научиться применять эту методологию в своих проектах? Для этого многие компании, которые уже применяют этот подход у себя, запускают DevOps курсы − часто можно встретить довольно интересные программы бесплатного обучения с практикой. Сейчас очень популярны DevOps курсы онлайн − в принципе, удобная штука: нужен только компьютер, Интернет и учетка на каком-нибудь обучающем ресурсе, типа GoToTraining. Чтобы проходить курсы девопс с практикой, скорее всего, вам понадобятся системы контроля версий Git или Bitbucket − обычно там работают с домашними заданиями. Чему учат DevOps курсы? В основе большинства программ лежит теория о контейнерах, подходе «Инфраструктура как код», Continuous Integration & Continuous Delivery, а на практике учат создавать контейнеры и разворачивать свои приложения (например, на AWS, Azure, Google Cloud, OVH, iLand, GreenCloud).

Вопросы на собеседовании DevOps

Если вы нацелились стать девопсом, прошли обучение с практикой, и, возможно, даже получили сертификат, как подготовиться к собеседованию на такую роль? Какие вопросы на собеседовании devops задают соискателям рекрутеры?

Прежде всего, вас попросят рассказать о вашем опыте работы с операционными системами и администрированием сетей. Следующим важным пунктом будет стек языков программирования − вы можете работать с Bash, Java или Python, JS, Shell, Ruby, Perl, JAVA, Go, Pearl, PHP, С++, Symfony, Phalcon, Angular, Django, .NET, C# или Laravel, и это будет достаточным подтверждением, что вы понимаете код (да и самих разработчиков). Опыт работы с облачными сервисами (Amazon, AWS, Google, Microsoft Azure, Heroku, IBM, Office 365) − об этом тоже поинтересуются. 

Вопросы по контейнеризации и развертыванию приложений − тоже must-have. Умение обеспечивать отказоустойчивость сети, работа с данными, автоматизированными тестами − об этих навыках попросят рассказать поподробнее, как и об опыте написания сценариев.

Но кроме всех вышеперечисленных знаний и навыков, вас, скорее всего, будут проверять на умение работать с людьми и наличие менеджерских качеств. Как мы уже выяснили, DevOps − это про командную работу, эмпатию, налаживание коммуникации и глобальное стратегическое мышление. Если эти soft skills у вас развиты на высоком уровне, ваши шансы стать devops существенно повышаются.

Резюме DevOps

Что нужно указывать в своем резюме, чтобы попасть в поле зрения рекрутеров, которые ищут девопсов? Например, у вас нет опыта работы DevOps, но ваш опыт в в системном администрировании может впечатлить любого рекрутера − в своем резюме devops обязательно указывайте все в мельчайших подробностях. Расскажите о том, какой опыт работы с протоколами, коммутацией, маршрутизацией, обслуживанием сетей и с каким оборудованием сталкивались. С какими серверами работали, какие программные продукты внедряли в компаниях, в которых трудились. 

Расскажите о навыках работы с кодом, какими языками программирования владеете, и не помешает ссылка на ваш профиль в GitHub. Для достойного devops резюме там должны быть пара-тройка проектов с историей коммитов. Это поможет составить о вас положительное впечатление как о дельном специалисте. Расскажите о вашем опыте работы с контейнерами, облачными сервисами, автоматизированными тестами и других навыках, которые помогут охарактеризовать вас как потенциального девопса.

И если в целом, не забывайте о логической структуре резюме (отдельные блоки с опытом, навыками, местами работы, курсами и т.д.), размере (общая рекомендация − 2-3 страницы), шрифтах и, конечно, грамотности написания.

DevOps обязанности

Споры вокруг того, что же собой представляет философия DevOps на практике, такие же неумолкаемые, как и вокруг понятия «девопс-инженер». В книге «Философия DevOps. Искусство управления IT» Дженнифер Дэвис и Кэтрин Дэниелс раскрыли тот факт, что ценность подхода − это не только инструменты devops, а совместное решение проблем, сотрудничество и доверие в команде. Отдельные практики, как например, работа с сервисами AWS devops, CI/CD, умение поднять контейнер и развернуть приложение, не будут работать, если между людьми − стены непонимания. Поэтому невозможно четко очертить DevOps обязанности и выделить отдельную роль в проекте или команде для их выполнения. 

«Философия DevOps. Искусство управления IT» рассказывает о культуре девопс как об открытости к выявлению проблем и оперативному решению, что способствует улучшению не только продукта, но и повышению эффективности процессов. Автоматизация процессов с помощью инструментов девопс, распространение практик, выявление ошибок и предоставление доступа к решениям, установление контактов между людьми помогает переключать внимание с процессов на людей, как на ценный ресурс. А это увеличивает время, которое специалисты могут выделить на работу с инновациями вместо рутинных задач.

Но если углубиться и разобрать, с какими обязанностями работает девопс, можно сказать, что он обеспечивает эффективное взаимодействие системных администраторов и разработчиков, в чем-то их мирит и решает конфликты (или вообще предотвращает). Со стороны девопса необходимы действия в отношении разработки, раскрутки, тестов, мониторинга и поддержки приложения.

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

Исходя из этого, попробуем тезисно сформулировать DevOps-функционал:

  • Разворачивание релиза в продакшн
  • Объединение процессов разработки
  • Контроль сопутствующих элементов разработки
  • Создание инфраструктуры, которая обеспечит нормальное функционирование ПО
  • Создание среды для фиксации изменений
  • Выявление проблем и их устранение
  • Автоматизация всех процессов

Стоит отметить, что автоматизация − довольно важная сфера деятельности девопсов, которая охватывает синхронизацию данных, мониторинг, автоматизацию задач, связанных с деплоем и конфигурированием. 

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

FAQ

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

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

DevOps может зарабатывать от 700$ до нескольких тысяч, в зависимости от рынка, на котором работает компания, масштабов проекта, размеров команды и т.д. К примеру, доход девопса в США может составлять около 7000$ в месяц, в Канаде − около 9000$ в месяц. Зарплаты украинских девопсов значительно ниже − от 1500$ до 3000$ в месяц, но эта цифра может меняться как в большую, так и меньшую сторону в зависимости от опыта специалиста и объема его задач. Начинающий девопс, который только пробует себя в этой роли, может стартовать с 700$ и увеличивать свой доход вместе с расширением профессиональных знаний и навыков.

Модель DevSecOps (Developement Security Operations) − часть глобальной методологии DevOps. Но от привычного подхода девопс она отличается тем, что направлена на безопасность всех стадий разработки, а не на проверку конечного результата. С помощью DevSecOps-инструментов контролю подлежат все этапы программного инжиниринга − переход на микросервисы, непрерывная интеграция и непрерывная доставка, тестирование, развертывание приложений, слияние кода, релиз.

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

DevOps расшифровывается как «development and operations». Акроним DevOps вошел в IT не случайно − между разработчиками и эксплуатацией есть пробел в общении и взаимодействии. Поэтому методология девопс и была призвана устранить этот разрыв, одновременно повысив эффективность и скорость выпуска программных продуктов. За словом DevOps скрывается большое количество отдельных ролей − это и программный инженер, и инженер сетевой инфраструктуры, тестировщик, QA-инженер и руководитель проекта. DevOps эффективно объединяет в себе все эти роли.

Чтобы стать devops, нужен опыт во всех стадиях выпуска программных продуктов − разработке, тестировании, архитектуре, обеспечении безопасности, автоматизации. Но получить базовые знания недостаточно – необходима реальная практика с оценкой рисков безопасности и их устранением, автоматизацией тестирования, построением грамотной архитектуры, запуском частей кода в репозиторий и релизом. На курсах DevOps можно получить практику с инструментами, которые помогают решать эти задачи. Но научиться грамотно использовать инструментарий недостаточно. DevOps − это философия, соответственно, нужно учиться мыслить глобально и развивать в себе менеджерские качества, которые помогут в управлении процессами.

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