Чем на самом деле занимается DevOps-инженер и зачем вам его нанимать
Компании, внедрившие методологию DevOps, быстрее выводят новые сервисы на рынок, опережают конкурентов и улучшают бизнес-показатели. Обычно за ее внедрение отвечает отдельный специалист — DevOps-инженер.
Павел Селиванов, ведущий DevOps-инженер VK Cloud (бывш. MCS), рассказал, что делает такой инженер, какие у него задачи и что необходимо для эффективного использования DevOps.
Зачем компаниям методология DevOps
DevOps culture — это методология, которая помогает автоматизировать все этапы создания программного обеспечения: от разработки, сборки и тестирования до развертывания, выпуска и доставки пользователям. За счет этого команда работает эффективнее и выпускает на рынок более качественные цифровые продукты, например, приложения для клиентов.
Быстрый выпуск продуктов на рынок. За счет автоматизации рутинных операций компании выводят на рынок новые продукты и обновления раньше конкурентов. Например, согласно отчету DORA о состоянии DevOps в 2019 году, командам с низким уровнем внедрения DevOps на переход от тестовой версии до выкатки ПО в прод требуется от месяца до полугода, с высоким — от одного дня до недели.
Повышение лояльности клиентов. Автоматизация процессов снижает влияние человеческого фактора на конечный результат: система не может пропустить строку кода или забыть о тестах. В итоге, следует из отчета DORA, снижается количество релизов и обновлений, которые ухудшают обслуживание клиентов. А также сокращается время восстановления после инцидента или бага, влияющего на пользователей.
Команды с лучшими результатами | Команды с хорошими результатами | Команды со средними результатами | Команды с низкими результата-ми | |
Частота провалов — количество релизов и обновлений, которые ухудшают обслужива- ние клиентов | 0-15% | 0-15% | 0-15% | 46-60% |
Время восстанов-ления после инцидента или бага, влияющего на пользова-телей | Менее одного часа | Максимум день | До одной недели | От недели до месяца |
Чем занимается DevOps-инженер
Как правило, организации, которые внедряют методологию, нанимают DevOps-инженера. Этот специалист занимается автоматизацией на всех этапах: от разработки, сборки и тестирования до развертывания, выпуска и доставки продукта пользователям.
Среди обязанностей DevOps — налаживание взаимодействий между разработчиками, системными администраторами, тестировщиками и менеджерами. Он выступает своего рода евангелистом для команды разработки: рассказывает, как правильно выстроить процессы, какие DevOps-практики и инструменты использовать.
Найм специалиста: что нужно знать DevOps-инженеру
Поскольку DevOps-инженер отвечает за автоматизацию процессов на всех этапах разработки, он должен понимать, как устроен процесс разработки, а также владеть навыками и инструментами DevOps.
Понимание процессов. DevOps-инженер должен знать, как устроен весь процесс: от построения архитектуры до доставки приложения пользователям. Чем занимаются разные участники команды, какие у них цели и задачи.
Языки программирования. Для автоматизации разработки DevOps-инженеру приходится писать скрипты и программы — необходимо знание одного или нескольких языков программирования. Язык может быть любым, но сейчас в среде DevOps наиболее распространены Python, Go и Bash.
Операционные системы. DevOps-инженер должен разбираться в средах для развертывания приложений и запуска кода. Как правило, он базово знаком со всеми ОС и глубоко разбирается в Windows или Linux.
Непрерывная интеграция и доставка (CI/CD). CI/CD — методология, которая позволяет автоматизировать интеграцию кода в репозитории, сборку, тестирование и запуск приложений в продакшн. Если интеграция непрерывна, то каждый раз при добавлении нового кода запускается автоматическое тестирование. В итоге приложение работает стабильнее.
Облачные технологии. Для переноса разработки в облачную среду и сокращение затрат на инфраструктуру DevOps-инженеру необходимо разбираться в решениях и инструментах, которые есть на облачных платформах.
Управление версиями. Это методика работы с кодом в версиях, которая позволяет отслеживать исправления и истории изменений для упрощения анализа и восстановления кода. Самая популярная система управления версиями на сегодня — Git.
Системы оркестрации и микросервисы. Для доставки и развертывания современных приложений используют контейнеры и микросервисы. Технология позволяет разбить приложение на много маленьких частей, разрабатывать и обновлять их независимо друг от друга. Для управления контейнерами используют системы оркестрации. Одна из популярных сегодня — Kubernetes.
«Минимальный опыт работы DevOps-инженера, претендующего на middle-позицию, — три-пять лет. Переход с позиции middle на senior занимает от года, но все зависит от конкретного человека — насколько он готов развиваться.
Инженеры с большим опытом становятся архитекторами решений. Такой специалист не только выстраивает в компании процесс непрерывной разработки, но и проектирует системы с учетом бизнес-задач. Часто он же отвечает и за RnD — разработку технологической стратегии развития компании».
Что стоит знать о DevOps-инженерах:
- Чем занимается DevOps-инженер: он внедряет в компании методологию DevOps и автоматизирует процесс разработки.
- Компании, внедрившие методологию DevOps, быстрее выводят на рынок новые продукты, сокращают затраты и повышают лояльность клиентов.
- У специалистов по DevOps одни из самых высоких зарплат в отрасли. В России в среднем платят 120 тысяч в месяц, в некоторых компаниях — 200-300 тысяч рублей. Суммы без учета налогов, страховых взносов и соцпакета.
- DevOps-разработчик должен понимать процессы, знать язык программирования, разбираться в ОС, облачных технологиях, системах оркестрации, CI/CD и уметь работать с системой контроля версий.