DevOps — что это, зачем, и насколько востребовано?
Несколько лет назад в IT появилась новая специальность DevOps-инженер. Она очень быстро стала одной из наиболее популярных и востребованных на рынке. Но вот парадокс — частично популярность DevOps объясняется тем, что компании, нанимающие таких специалистов, часто путают их с представителями других профессий.
Эта статья посвящена разбору нюансов профессии DevOps, текущем положении на рынке и перспективам. Мы разобрались в этом сложном вопросе при помощи декана факультета DevOps в GeekBrains в онлайн-университете GeekUniversity Дмитрия Бурковского.
Итак, что же такое DevOps?
Сам термин расшифровывается как Development Operations. Это не столько специальность, сколько подход к организации работы в средней или крупной компании при подготовке продукта или сервиса. Дело в том, что в процессе подготовки участвуют разные отделы одной компании, и действия их далеко не всегда хорошо скоординированы.
Так, разработчики, например, не всегда знают о том, какие проблемы возникают у пользователей, которые работают с выпущенной программой или сервисом. Техподдержка — знает все отлично, но она может быть не в курсе того, что «внутри» ПО. И тут приходит на помощь DevOps-инженер, который помогает координировать процесс разработки, способствует автоматизации процессов, улучшает их прозрачность.
Концепция DevOps объединяет людей, процессы и инструменты.
Что должен знать и уметь DevOps-инженер?
По мнению одного из наиболее известных адептов концепции DevOps Джо Санчеса, представитель профессии должен хорошо понимать нюансы самой концепции, иметь опыт администрирования как Windows, так и Linux-систем, понимать программный код, написанный на разных ЯП, работать Chef, Puppet, Ansible. Понятно, что для разбора кода нужно знать несколько языков программирования, и не просто знать, но и иметь опыт разработки. А еще очень желателен опыт тестирования готовых программных продуктов и сервисов.
Но это в идеале, такой уровень опыта и знаний найдется далеко не у каждого представителя IT-сферы. Вот набор минимально необходимых для хорошего DevOps знаний и опыта:
- ОС GNU/Linux, Windows.
- Не менее 1 языка программирования (Python, Go, Ruby).
- Язык сценариев командной оболочки — bash при работе с Linux и powershell в случае Windows.
- Систему контроля версий — Git.
- Системы управления конфигурацией (Ansible, Puppet, Chef).
- Хотя бы одна из платформ для оркестрации контейнеров (Kubernetes, Docker Swarm, Apache Mesos, Amazon EC2 Container Service, Microsoft Azure Container Service).
- Умение работать с облачными провайдерами (например: AWS, GCP, Azure и др.) с использованием Terraform, знать как развертывается приложение в облако.
- Умение настраивать конвейер CI/CD (Jenkins, GitLab), ELK стек, системы мониторинга (Zabbix, Prometheus).
А вот список навыков, которые чаще всего указывают специалисты по DevOps на Хабр Карьере.
Кроме того, DevOps-cпециалист должен понимать потребности и требования бизнеса, видеть его роль в процессе разработки и уметь строить процесс с учетом интересом заказчика.
А что с порогом входа?
Список знаний и опыта не зря был подан выше. Теперь становится проще понять, кто же может стать DevOps-специалистом. Получается, что проще всего перейти в эту профессию для представителей других IT-специальностей, в особенности — системным администраторам и разработчикам. И тем, и другим можно быстро нарастить недостающий объем опыта и знаний. Половина необходимого набора у них уже есть, а нередко — и больше половины.
А еще отличные DevOps-инженеры получаются из тестировщиков. Они знают, что и как работает, в курсе недостатков и недоработок ПО и «железа». Можно сказать, что тестировщик, который знает языки программирования и умеет писать программы — без пяти минут DevOps.
А вот представителю нетехнической специальности, никогда не имевшему дело ни с разработкой, ни с системным администрированием, будет сложно. Конечно, ничего невозможного нет, но все же новичкам нужно адекватно оценивать свои силы. Времени на получение требуемого «багажа» потребуется немало.
Куда может устроиться DevOps?
В крупную компанию, работа которой напрямую либо косвенно связана с разработкой приложений и администрированием «железа». Максимальный дефицит в DevOps-инженерах — у компаний, предоставляющих большое количество сервисов конечным потребителям. Это банки, операторы связи, крупнейшие интернет-провайдеры и т.п. Среди компаний, которые активно нанимают на работу DevOps-инженеров — Google, Facebook, Amazon, Adobe.
Внедряют DevOps и стартапы с мелким бизнесом, но все же для многих из этих компаний приглашение DevOps-инженеров, скорее, дань моде, чем реальная необходимость. Конечно, бывают и исключения, но их не так много. Небольшим компаниям нужен, скорее «и швец, и жнец, и на дуде игрец», то есть человек, который в состоянии работать по ряду направлений. Хороший СТО способен справиться со всем этим. Дело в том, что малому бизнесу важна скорость работы, оптимизация рабочих процессов критична для среднего и крупного бизнеса.
Вот немного вакансий (следить за новыми можно на Хабр Карьере по этой ссылке):
Зарплата DevOps в России и мире
В России средняя зарплата DevOps-инженера составляет около 132 тысяч рублей в месяц. Это расчеты калькулятора зарплат сервиса Хабр Карьера, произведенные на основании 170 анкет на 2-е полугодие 2020 года. Да, выборка не такая уж и большая, но в качестве «средней температуры по больнице» вполне подходит.
Есть зарплаты в размере 250 тысяч рублей, есть — около 80 тысяч и чуть ниже. Все зависит от компании, квалификации и самого специалиста, конечно.
Что касается других стран, то статистика по зарплатам тоже известна. Хорошую работу провели специалисты Stack Overflow, проанализировав анкеты около 90 тысяч человек — не только DevOps, но и вообще представителей технических специальностей. Оказалось, что Engineering Manager и как раз DevOps получают больше всех.
DevOps-инженер в год получает около $71 тыс. По данным ресурса Ziprecruiter.com, зарплата профессионала в этой сфере составляет от $86 тысяч в год. Ну, а сервис Payscale.com показывает и вовсе приятные глазу цифры — средняя зарплата DevOps специалиста, по данным сервиса, превышает $91 тыс. И это — зарплата младшего специалиста, старший же может получать $135 тыс.
В качестве заключения стоит сказать, что востребованность DevOps постепенно растет, спрос на специалистов любого уровня превышает предложение. Так что если есть желание — можно попробовать себя в этой сфере. Правда, нужно помнить, что одного желания — недостаточно. Нужно постоянно развиваться, учиться и работать.