Изучаете возможности выстроить карьеру в области ПО? Независимый аналитик Кристофер Тоцци рассказывает на портале ITPro Today о том, чем занимается инженер DevOps и что нужно для того, чтобы им стать.
Если бы вам пришлось выбирать наиболее важный тип инженера в рамках современных процессов доставки ПО, то хорошим выбором был бы инженер DevOps. Поскольку эти специалисты играют важную роль практически на всех этапах разработки, развертывания и управления ПО, они являются жизненно важным активом для предприятий, зависящих от ПО.
В этой статье рассказывается о том, что именно представляет собой DevOps-инженер и за какие задачи он отвечает. В ней также объясняются навыки, необходимые для того, чтобы стать инженером DevOps, и даются советы по началу работы в этой области.
Что такое DevOps?
Прежде чем рассказать о том, чем занимается инженер DevOps, давайте обсудим само понятие DevOps.
DevOps — это подход к разработке и управлению ПО, в котором особое внимание уделяется сотрудничеству между разработчиками (которые отвечают за проектирование и написание кода) и операционными ИТ-командами (которые отвечают за управление приложениями после того, как разработчики их написали).
Благодаря тесной координации этих двух функций DevOps призван снизить вероятность трений и напрасных усилий, которые могут возникнуть, если разработчики не знают о проблемах, с которыми сталкиваются операционные ИТ-подразделения при управлении приложениями, и/или если операционные ИТ-подразделения имеют ограниченное представление о планах и логике разработчиков.
Что такое инженер DevOps?
Инженер DevOps — это человек, который специализируется на оказании помощи организациям в реализации подхода к доставке ПО на основе DevOps.
Другими словами, это специалист, отвечающий за реализацию подхода к доставке ПО, который предполагает тесную координацию между операциями по разработке ПО и операциями по управлению ПО.
В некоторых компаниях инженеры DevOps работают как отдельная команда, выступая в качестве связующего звена между командами разработки ПО и ИТ-операций. В других случаях в организациях вообще нет отдельных групп разработки и ИТ-операций, а разработка и управление ПО возлагается на команду DevOps.
Что входит в обязанности инженера DevOps?
Хотя конкретные обязанности инженера DevOps могут варьироваться, типичный специалист отвечает за выполнение следующих основных задач:
- Мониторинг и обслуживание систем. Инженеры DevOps играют центральную роль в мониторинге приложений и инфраструктуры, от которых зависит бизнес. Они выявляют проблемы, например, плохо работающие приложения, и принимают меры по их устранению.
- Помощь в разработке приложений и их обновлении. Поскольку инженеры DevOps участвуют в процессе развертывания и управления ПО, они могут предоставить ценные инсайты о том, как разработать новые или обновить существующие приложения таким образом, чтобы упростить их развертывание и управление ими.
- Разработка и тестирование ПО. От инженеров DevOps часто требуется помощь в написании кода для новых приложений или их обновлений, а также тестирование кода, чтобы убедиться, что он ведет себя так, как задумано.
- Развертывание нового ПО. Ответственность за развертывание ПО — процесс переноса нового приложения из среды тестирования в производственную среду, где конечные пользователи могут получить к нему доступ, — часто возлагается на инженеров DevOps.
- Управление и обновление инфраструктуры. Инженеры DevOps, как правило, играют ключевую роль в управлении и поддержке инфраструктуры, на которой размещаются приложения. Инфраструктура может состоять из локальных серверов, публичной облачной инфраструктуры или их комбинации.
- Внедрение мер безопасности. Хотя вопросы безопасности обычно не входят в число основных обязанностей инженеров DevOps, тем не менее DevOps-команды часто оказываются ответственными за устранение проблем безопасности, например уязвимостей приложений.
- Постоянное совершенствование систем. В большинстве компаний инженеры DevOps должны совместно с другими заинтересованными сторонами выявлять и использовать возможности для улучшения систем. Например, они могут искать способы повысить производительность приложений или сократить расходы компании на хостинг.
Одним словом, инженеры DevOps отвечают за решение целого ряда задач, охватывающих процессы разработки, тестирования и сопровождения ПО, а также инфраструктуру, от которой зависит его работа.
Как стать инженером DevOps
Если вы хотите стать инженером DevOps, то не существует простой формулы, которой нужно следовать, или одного курса, который нужно пройти. На самом деле, к работе в области DevOps могут привести многие карьерные пути. Некоторые DevOps-инженеры начинают в качестве разработчиков или инженеров по ИТ-операциям, а затем расширяют свой набор навыков, чтобы работать в DevOps. Другие проходят курсы или учебные программы, разработанные специально для DevOps.
Однако независимо от вашей карьеры или стратегии, которую вы рассматриваете для того, чтобы стать инженером DevOps, есть несколько ключевых шагов, которые вам необходимо пройти, чтобы получить квалификацию для работы в DevOps.
Шаг 1: Узнайте о функциях и обязанностях инженера DevOps
Начните с изучения того, чем именно занимается инженер DevOps. Выше мы описали основные обязанности инженеров DevOps, но вам следует более подробно ознакомиться с задачами DevOps, чтобы понять, как выглядит DevOps-инженерия в повседневной жизни.
Шаг 2: Ознакомьтесь с инструментами и технологиями DevOps
Хотя не существует единого набора инструментов, который должен знать каждый DevOps-инженер, большинство из них полагаются на определенные категории инструментов, которые помогают им выполнять свою работу.
Например, такие решения для инфраструктуры, как Ansible и Chef, помогают DevOps-инженерам автоматизировать управление инфраструктурой, а знание инструментов управления исходным кодом (SCM), например Git, и фреймворков для автоматизированного тестирования, например Selenium, важно для управления процессами разработки и тестирования ПО.
Понимание контейнеров и технологий оркестровки контейнеров, таких как Docker и Kubernetes, также часто необходимо для работы в DevOps. Не все команды DevOps используют эти технологии, но сегодня они широко распространены, особенно в тех компаниях, которые придерживаются современного, DevOps-ориентированного подхода к разработке и управлению ПО.
Шаг 3: Изучите кодирование и программную инженерию
Инженеры DevOps не обязательно должны быть экспертами в области программирования, но они должны хорошо разбираться в кодировании и знать популярные языки программирования, такие как Python и JavaScript.
Им также требуется глубокое понимание концепций программной инженерии, таких как различные типы архитектур приложений (например, микросервисы и трехуровневые приложения) и процессы, связанные с непрерывной интеграцией/непрерывной доставкой (CI/CD).
Шаг 4: Освойте навыки управления совместной работой
Поскольку взаимодействие между командами является основополагающим компонентом DevOps, инженеры DevOps должны понимать концепции, методы и инструменты, позволяющие организовать совместную работу над сложными проектами. Например, они должны изучить принципы, лежащие в основе agile-процессов. Также полезно знакомство с такими инструментами, как Jira и Trello, которые широко используются для управления проектами разработки ПО.
Шаг 5: Подтвердите свои навыки DevOps с помощью работы или сертификации
После того как вы приобрели основные навыки, необходимые для работы в качестве инженера DevOps, вам необходимо эти навыки продемонстрировать, чтобы работодатели отнеслись к ним серьезно.
Одним из способов сделать это является работа, которая требует от вас действий как от инженера DevOps. Даже если ваша официальная должность не включает DevOps, многие смежные с DevOps роли, такие как разработка ПО, тестирование или ИТ-операции, предоставляют возможность выполнять дополнительные задачи, которые пересекаются с задачами DevOps-инженеров. Например, если вы в настоящее время работаете разработчиком, вы можете на добровольных началах тесно взаимодействовать с командой ИТ-операций вашей компании, чтобы получить соответствующий опыт работы в DevOps.
Другой основной способ доказать, что вы готовы к работе в качестве инженера DevOps, — это получить соответствующий сертификат. Существует множество программ онлайн-обучения, предлагающих сертификацию по DevOps и смежным областям. Очные курсы по DevOps проводятся редко, хотя посещение занятий по программированию, управлению проектами или смежным областям может помочь вам повысить свою готовность к выполнению определенных аспектов работы в DevOps.
DevOps: часто задаваемые вопросы (FAQ)
Какие навыки необходимы инженеру DevOps?
В общем случае инженерам DevOps требуются навыки, позволяющие им постоянно сотрудничать с другими типами инженеров. Кроме того, они должны разбираться в программной инженерии, кодировании и ИТ-операциях. Знание средств автоматизации также важно для большинства DevOps-инженеров.
Каков процесс сертификации для получения статуса инженера DevOps?
Официального процесса сертификации для получения статуса инженера DevOps не существует. Для работы в этой области не требуется специальная степень или сертификат. Однако наличие сертификата DevOps от таких организаций, как DevOps Institute, может помочь вам подтвердить свою компетентность в этой области.
Какие инструменты используют инженеры DevOps?
Инженеры DevOps используют различные инструменты, начиная от менеджеров исходного кода, таких как Git, серверов непрерывной интеграции, таких как Jenkins, и заканчивая инструментами инфраструктуры как кода (IaC), такими как Terraform и др.
Как DevOps-инженер взаимодействует с другими командами?
Способ взаимодействия с другими командами в качестве инженера DevOps во многом зависит от того, как устроена ваша организация. В некоторых компаниях инженеры DevOps «встраиваются» в группы разработки обеспечения или ИТ-операций, где они работают непосредственно вместе с другими типами инженеров. В других компаниях вы можете работать в составе отдельной команды инженеров DevOps, которые взаимодействуют с другими типами команд.
Каковы перспективы трудоустройства инженеров DevOps?
Перспективы трудоустройства инженеров DevOps остаются радужными. По прогнозам, в период с 2018 по 2028 гг. рынок DevOps вырастет примерно на 21%, и инженеры DevOps останутся одним из самых востребованных типов инженеров.