Карьера в IT: должность DevOps engineer

Представляем новую статью из цикла «Карьера в IT». Она посвящена должности DevOps engineer — такие специалисты работают на стыке областей разработки и системного администрирования, обеспечивая эффективность процесса поставки ПО.

DevOps (development + operations) — это зародившаяся в 2009 году методология, нацеленная на взаимодействие программистов и системных администраторов для увеличения частоты выпуска релизов. Соответственно, DevOps engineer — специалист, который работает на стыке этих двух должностей и занимается автоматизацией жизненного цикла приложения (включая проектирование, разработку, тестирование, развертывание, поддержку и мониторинг).

По данным ДОУ, среднему украинскому DevOps инженеру 28 лет, он имеет зарплату $1200-2700 и опыт работы 4 года.

Задача и обязанности

Главная задачам DevOps инженера — максимально увеличить предсказуемость, эффективность и безопасность разработки ПО.

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

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

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

В обязанности DevOps engineer входит:
— Развертывание поставленного разработчиками релиза в производстве;
— Интеграция и углубление процессов разработки в поставку;
— Стандартизация окружения разработки;
— Настройка инфраструктуры на особенности разрабатываемого ПО;
— Подготовка продуктивной среды к частым внесениям изменений;
— Обнаружение и исправление проблем;
— Автоматизация процессов.

«Автоматизация всяческая, мониторинговые системы, синхронизация данных и прочее. Например, такая задача — практически по одному клику поднять уменьшенную копию продакшн инфраструктуры, чтобы одна из команд могла развернуть свой бранч для тестирования».

«Автоматизация различных задач, связанных с деплоями софта, который разрабатывается, деплоями системного софта, конфигурированием. Обеспечение мониторинга, реакция на различные внештатные ситуации. Улучшения платформ в плане снижения цены за инфраструктуру, в плане производительности и простоты. Предоставление различных доступов для разработчиков (например, в репозитории, VPN). Дизайн систем, их архитектура».

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

В ходе работы DevOps engineer использует инструменты, автоматизирующие выделение системных ресурсов и управление. К таким инструментам относятся различные средства управления конфигурациями, виртуализации на разных уровнях, автоматизации операционных процессов, облачные инструменты выделения ресурсов по требованию.

«Я постепенно „переехал“ в DevOps из Dev отдела. В работе приходится активно контактировать с Dev, Ops и QA отделами, c другими отделами реже. Если описать должность DevOps одной фразой, я бы сказал так — создавать инструментарий для Dev, Ops, QA etc отделов, чтобы им было легче и удобнее работать».

«Создаем новые виртуальные машины, пишем сервисы для их дополнительного мониторинга и так далее».

«Я вчера поднял teamcity/gradle+gitlab и настроил автоматическую выкладку сайта по коммиту в репу на сервер. Вот чем-то таким девопсы и занимаются».

Преимущества и недостатки

Главное достоинство профессии DevOps engineer — рост интереса компаний к концепции DevOps. По данным EMA, около 30% компаний уже реализовали или планируют реализовать DevOps в ближайшее время. То есть спрос есть — без работы хороший специалист не останется.

Самих DevOps специалистов привлекает то, что в работе они имеют 100% загрузку, в отличие от профессии системного администратора.

«Нравится фактор неожиданности — это делает работу довольно интересной и не превращает в рутину».

Другой плюс — широкая специализация:

«На мой взгляд, девелопмент проигрывает оперейшеналу по простым причинам. Девелопер имеет в руках инструмент, которым он делает свою работу — синтаксис языка и какие-то там языковые примочки и особенности. Оперейшенал инженер знает кучу всего, на чем строится современные информационные системы, как они работают, и изучение какого-то Ruby мало чем будет отличаться от изучения системы мониторинга Ganglia».

Некоторых привлекает то, что результат работы можно «потрогать руками»:

«Для меня построение сложных систем и поддержание их в реальной жизни интереснее, чем чистый код, который запускают в лабораторных условиях. Грубо говоря, ехать на настоящей лошади по степи и потом мыть её, скрести, кормить — это гораздо интереснее и приносит больше удовлетворения, чем сферический конь в вакууме».

Недостатки профессии, похоже, не отличаются от таковых у системных администраторов:

«Ночные неожиданности».

Как стать и куда двигаться дальше

Большинство DevOps инженеров — это системные администраторы, выучившие инструменты программирования, или же разработчики, разобравшиеся с тонкостями процессов operations. Желательно иметь базовое техническое образование, разбираться в вопросах, связанных с системным администрированием и автоматизацией различных задач.

«В голове нужно иметь библиотеку по всем доступным технологиям, начиная от методов кодирования сигналов до последнего модного продукта Open Stack».

Необходимые качества:
— Аналитический склад ума;
— Стрессоустойчивость;
— Умение не сдаваться даже в безвыходных ситуациях.

«Важно понимать, что не разработчики плохие и делают такой продукт, а просто поставить себя на их место и помочь».

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

«На самом деле, лучше просто быть хорошим специалистом в _ЛЮБОЙ_ своей области, которая тебе нравится, и жить полной жизнью. И неважно, кто это — DevOp или химик нефти».


P.S. Спасибо за помощь в написании статьи Алексею Асютину и еще 5 украинским DevOps инженерам, которые поделились с DOU таинствами своей профессии. Приведенные в статье цитаты взяты из их рассказов.


Остальные статьи цикла:
— Карьера в IT: должность Team Lead
— Карьера в IT: должность Software Architect
— Карьера в IT: должность Project Manager
— Карьера в IT: должность CTO
— Карьера в IT: должность QA engineer
— Карьера в IT: должность QA Automation engineer
— Карьера в IT: должность Бизнес-аналитик
— Карьера в IT: должность системный администратор
— Карьера в IT: должность Data Scientist / Machine Learning Engineer
— Карьера в IT: должность Technical Writer
— Карьера в IT: должность Delivery Manager
— Карьера в IT: должность Software Product Manager

Похожие статьи:
Организатор: SmartMe UniversityТренер: Фридман Виталий На данном мастер-классе Виталий Фридман, главный редактор Smashing Magazine, поделится...
Considering every city, town and village in Spain hosts a yearly celebration of some kind, 1000 is an obvious gross understatement when it comes to numbering the amount of actual Spanish Fiestas that are held each year. Every...
Мы попросили ведущих участников IT-отрасли рассказать, как они оценивают 2017 год для украинского IT-рынка, какие ключевые...
Американська компанія Amazon створила у Словаччині великий центр гуманітарної допомоги українським біженцям. Його...
Приглашаем Вас посетить бесплатное вводное занятие по курсу «Тестирование ПО». На вводном занятии Вы сможете...
Яндекс.Метрика