Фото:
Тренды

Охота на DevOps-инженеров: в чем их сила и почему за ними будущее ИТ

Несколько лет назад на сайтах по поиску работы появились вакансии на должность DevOps-инженера. Тогда мало кто понимал, что такое DevOps и что делает представитель этой профессии. Сейчас ситуация немного улучшилась, но все равно — не так много даже технических специалистов понимают, что это такое. Разобраться в сути профессии и самой концепции DevOps помогает технический директор ГК Иннотех Антон Якимов.

Ситуация с DevOps-инженерами сложная, поскольку на них сейчас очень большой спрос. Многие крупные компании буквально охотятся за ними, но найти получается не всегда. Кстати, частично вина за дефицит хороших специалистов лежит на руководителях компаний, которые следуют за IT-модой и приглашают на работу DevOps-инженеров просто потому, что так делают очень многие крупные компании. Мировые гиганты, такие как Google, Amazon и Facebook, никогда и ничего просто так не делают, а значит, DevOps действительно помогает компаниям работать? Если коротко — то да. А ниже я расскажу почему.

Что такое DevOps?

Это сокращение термина Development Operations, который появился 11 лет назад. Сначала его использовали в социальных сетях, но затем он попал и в бизнес. Сейчас DevOps — это целая философия, которая дает возможность разработчикам быстрее и эффективнее выполнять свои задачи. Эта концепция неразрывно связана с популярным сегодня понятием «цифровая трансформация».

Если коротко, то DevOps — методология, которая дает возможность разработчикам, тестировщикам и системным администраторам работать оперативнее за счет «дирижирования» процессом разработки и технического обслуживания DevOps-инженерами.

Крис Шорт (Chris Short), главный менеджер по маркетингу облачных платформ Red Hat и издатель рассылки DevOps’ish, поясняет суть концепции при помощи аналогии: «У руководителя такой команды одна цель — занять по итогам гонки максимально возможное место с учетом имевшихся у команды ресурсов и выпавших на ее долю испытаний. При этом гонка планируется не от старта к финишу, а наоборот, от финиша к старту. Вначале ставится амбициозная цель, а затем определяются пути ее достижения. После чего они разбиваются на подзадачи и делегируются членам команды».

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

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

Ну, а теперь поговорим о DevOps-инженерах

Что должен знать DevOps? Одно из лучших  определений необходимого для этого специалиста объема знаний дал адепт самой концепции DevOps Джо Санчес. По его словам, инженер должен разбираться в процессах разработки, поставки и эксплуатации ПО разного типа, иметь большой опыт администрирования разных операционных систем, понимать программный код, а также работать с Chef, Puppet, Ansible.

Кроме того, любой DevOps инженер должен знать:

  • Python в хорошем объеме.
  • Bash и Powershell — для Linux и Windows соответственно.
  • Систему контроля версий и желательно несколько систем управления конфигурацией, в основном Ansible.
  • Платформу оркестрации контейнеров. Чаще всего это Kubernetes или OpenShift, но могут быть и другие.
  • AWS, Azure или других облачных провайдеров.
  • Системы мониторинга InfluxDB или Prometheus, ELK-стеком или аналогичные инструменты сбора логов приложений.
  • Как создавать конвейеры сборки и поставки приложений.

А еще специалист должен иметь развитые soft skills, причем не только из отрасли разработки, но и менеджмента, управления административными процессами. И очень желательно — разговаривать и писать на английском языке с уровнем не ниже Intermediate.

Что должен делать DevOps?

 

Источник

Главное — это внедрение самой концепции в процесс работы компании. Именно по этой причине инженеры — ценные специалисты. Они должны уметь:

  • На этапе планирования помочь определиться с архитектурой приложения, масштабированием и т. п.
  • Настраивать сервера, автоматизировать различные проверки кода при его вливании в основную ветку разработки, плюс автоматизировать подготовку и проверку среды для последующего исполнения приложения.
  • Автоматизировать тестирование, решать задачи по поставке собранных артефактов в разные среды исполнения.
  • Наиболее важный этап работы DevOps-инженера — релиз проекта. Когда приложение выходит в релиз, нужно автоматизировать как поставку релиза в продуктивную среду, так и обеспечить автоматический откат релиза в случае ошибок с одновременным сбором обратной связи от пользователей для последующего внедрения улучшений. В идеальной ситуации процесс обновления должен быть непрерывным (как можно более частым).
  • Много чего еще — мелкие и крупные задачи, которые решаются путем коммуникаций с разработчиками, сотрудниками, отвечающими за  качество, системными администраторами и линейными менеджерами.

Чтобы все работало, как нужно, специалист по методологии DevOps должен постоянно со всеми взаимодействовать — как по горизонтали, так и по вертикали. Есть мнение, что в процесс внедрения и поддержания практик DevOps должны быть вовлечены абсолютно все сотрудники компании, включая руководителя компании и даже уборщицу. 

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

Где нужен DevOps?

Чаще всего эти специалисты нужны компаниям и организациям, чья деятельность тесно связана с разработкой приложений или сервисов. Либо же компаниям, в ведении которых много серверов, и они, естественно, должны работать как единая система. Пример крупнейших компаний, которые нанимают DevOps — Google, Facebook, Amazon, Adobe. Компаниям меньшего масштаба DevOps-инженеры тоже нужны. Ведь только DevOps, если мы говорим о хорошем, крепком специалисте, может привести в порядок весь поток процессов внутри корпорации. Если компания очень большая, то таких специалистов может быть несколько, иногда речь идет даже о 2-3 или более DevOps подразделениях.

А вот небольшим организациям, стартапам, где работает всего 5-10-20 человек, DevOps не очень нужны. Например, компания торгует компьютерами в паре торговых точек. Ей просто еще нечего оптимизировать. В большинстве случаев стартапам и малому бизнесу хватает хорошего технического директора, который как раз сможет и с сотрудниками коммуницировать, и разработку направлять, и оборудование контролировать.

Кроме того, DevOps вряд ли пригодятся и крупным компаниям, которые не взаимодействуют напрямую со своими клиентами и базируют свои процессы на коробочных стабильных ИТ-решениях, не требующих частого обновления. Пример — автомобилестроительная компания, где все общение с клиентами идет по e-mail и телефону. Клиенты таких компаний — относительно небольшой список дилеров, за каждым из которых закреплен отдельный менеджер. Документооборот понятен и прозрачен, управление корпоративной информационной системой производится при помощи классических методов, DevOps здесь не требуется.

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

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