Лицо профессии. Знакомьтесь, DevOps-инженер!

Лицо профессии. Знакомьтесь, DevOps-инженер!

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

Для чего нужен DevOps-инженер?

Прежде всего, для эффективной и предсказуемой разработки и запуска ПО.

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

Именно эту целостность (как концептуальную, так и технологическую) и обеспечивает DevOps-инженер.

Его основная миссия – следить за нормальным прохождением всего жизненного цикла программного продукта (приложения). Если узкие специалисты (программисты, тестировщики, сисадмины и др.) работают только на вверенных им участках, то DevOps-инженер занят на всех этапах цикла:

  • на этапе проектирования – определяет основные требования к будущему приложению;
  • на этапе разработки – занимается развертыванием приложения и поддержкой разработчиков;
  • на этапе тестирования – взаимодействует с тестировщиками при проверке приложений на баги и определяет, готово ли оно к использованию;
  • на этапе запуска – отвечает за релиз приложения и т.д.

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

Основные обязанности DevOps-инженера

оценка и оптимизация процесса развертывания ПО;

синхронизация и автоматизация всех процессов, связанных с развертыванием приложения;

создание оптимальных условий для функционирования ПО;

подготовка операционной среды для внесения изменений;

поддержка и стандартизация тестового окружения;

создание инструментов для мониторинга запущенных приложений;

контроль производительности приложений;

реагирование на обнаруженные проблемы и внештатные ситуации в ходе развертывания ПО.

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

Трудовые будни такого специалиста всегда полны неожиданностей. Утром он может заниматься синхронизацией данных по приложению, в обед ему нужно срочно настроить автоматическую выкладку сайта на сервер, а вечером придется решать проблемы QA-отдела.

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

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

К счастью, платят DevOps-инженерам хорошо, а спрос на них только начал расти. По статистике, около 30% IT-компаний уже наняли таких специалистов или планируют сделать это в ближайшее время. Так что тем, кто готов встать между «дэвами» и «опсами», определенно есть, где развернутся.