Приветствую всех, друзья!
Когда за создание приложения или интернет-платформы берется большая группа людей и каждый отвечает за разные аспекты деятельности, может возникнуть неразбериха. И если веб-сервис перестает работать, можно услышать от коллег, мол, эта проблема по вашей части. Все перекидывают ответственность друг на друга, а по итогу в минусе остаются пользователи. Им нет дела до того, кто именно должен исправить поломку, ведь они хотят только положительный результат.
Чтобы сплотить разработчиков и сотрудников из поддержки, быстро решить проблему и устранить конфликт интересов, появилось направление DevOps. Сегодня я расскажу вам о таком специалисте, как DevOps-инженер: кто это такой и чем занимается, плюсы и минусы профессии, заработок и обучение.
Кто такой DevOps-инженер
Для начала поговорим, что такое DevOps. Это не инструменты и не сервисы. Это концепция, культура, целый комплекс методов, технологий и правил взаимодействия сотрудников из разных команд.
DevOps-практики направлены на объединение работников, устранение разрозненности и распределение ответственности за всю работу на каждого члена команды.
Несмотря на то что веб-разработчики трудятся над написанием кода, тестировщики ответственны за его проверку, а системные администраторы занимаются эксплуатацией, все участники, которые задействованы в создании продукта, берут на себя ответственность именно за конечный результат, а не только за свою часть работы.
Барьер между разработкой и поддержкой стал рассеиваться. Проблемы не перекладываются друг на друга, команда действует сообща, каждый пытается внести свою лепту в решение проблемы. В этом и состоит вторая составляющая DevOps-практик. Важно не только сплочение, но и реальное решение проблем.
Поэтому проекту нужны не конкретно DevOps-инженеры, т. е. люди, которые внедряют девопс-практики в коллективную среду, а тот результат, что они помогают достигать. В некоторых фирмах даже нет такой должности, а обязанности этого сотрудника поделены между всеми участниками проекта.
Простыми словами, DevOps-инженер – это специалист, который понимает, как проходят все этапы разработки, умеет автоматизировать процессы производства и способен выполнять работу сисадмина, разработчика, тестировщика и менеджера.
Хотя работодатели и готовы назначить заработную плату от 200 000 руб. и больше, все равно ощущается дефицит этих сотрудников из-за сложности обязанностей.
DevOps-инженер должен делать все для решения проблем при производстве и реализации продукта. Для этого в работе специалисту необходимо придерживаться:
- Автоматизации всех процессов.
- Ускорения выхода продукта в свет.
- Моментальной обратной связи от потребителей.
Насчет автоматизации понятно: все повторяющиеся действия выполняются автоматически, быстро, отлажено и четко.
Второе – это важный пункт для заказчика. Всем производителям выгодно представлять свое творение раньше, чем конкуренты придумают что-то похожее. Это осуществимо благодаря слаженности в действиях всех частей команды проекта. И это самое единство организует DevOps-инженер.
Обратная связь от клиентов предполагает внесение корректировок и обновление приложения сразу после получения жалоб от пользователей.
По этим пунктам понятно, что обязанности DevOps-специалиста распространяются на все этапы жизненного цикла веб-продукта: от выбора архитектуры и написания кода до выпуска приложения и мониторинга отзывов пользователей.
Обязанности специалиста
Если ознакомиться с описанием вакансий на эту должность, можно заметить разнообразие требований к сотруднику. Сразу понятно, что работодатели ищут многопрофильного специалиста со знаниями во многих компетенциях. И не все до конца понимают, что именно должен делать DevOps-инженер в рамках своей должности. Поэтому я расскажу о часто встречающихся требованиях.
DevOps-инженеры все процессы стараются автоматизировать, упростить и ускорить. Они знают специфику задач своих коллег, учитывают пожелания и мнение заказчика. Эти специалисты склеивают воедино все части проекта и, как я уже говорила, принимают участие в каждом этапе разработки и после нее.
Они участвуют в выборе архитектуры приложения, масштабировании, системы оркестрации. Инженер помогает настраивать сервера, автоматизирует тестирование, подготавливает окружение и среду разработки продукта, мониторит работоспособность всех инструментов и процессов, работает с облачными технологиями.
После релиза DevOps-специалист налаживает обратную связь от пользователей, внедряет улучшения и обновляет продукт.
Помимо этого, минимизирует затраты, налаживает работу всех специалистов, решает не один десяток мелких и часто срочных задач, организует совместную работу в команде и передачу опыта между коллегами.
Но это идеальная картина проекта. В реальности же могут пропустить планирование, ошибиться с архитектурой, об автоматизации вспомнить перед самым релизом и прочие подобные ситуации. В этом случае задача DevOps-специалиста обеспечить бесперебойную работу и вывести команду из застоя.
Знания, умения и личные качества
DevOps-инженера можно назвать многопрофильным специалистом со знаниями из различных сфер IT-деятельности: программирования, мониторинга, работы с базами данных, операционными системами и системами сборки, оркестрации и конфигурации, облачной инфраструктуры.
Специалист обязательно должен знать несколько языков программирования. В первую очередь это необходимо для автоматизации. Пригодятся языки Python, Bash, Ruby, Go, PowerShell. Достаточно знать основы синтаксиса, скрипты для автоматизации, понимать объектно-ориентированное программирование.
Разбираться в операционных системах надо, чтобы определять сервер для установки приложения, среду для запуска, инструменты для работы, возможные ошибки, которые могут возникнуть. Нужно понимать общие принципы работы на любой операционной системе, но чаще используют Windows или Linux.
Хороший DevOps-инженер должен уметь разбираться и работать с облачными провайдерами. Они автоматизируют многие процессы и экономят время, силы и деньги, что будет полезно не только для специалиста, но и для клиента.
И вот еще тот минимум, что надо знать:
- системы оркестрации, такие как Docker и Kubernetes,
- системы конфигураций Chef, Ansible, Puppet,
- системы сборки GitLab, Jenkins,
- языки разметки JSON и YAML,
- базы данных,
- сервисы мониторинга и оповещений,
- сервисы логирования,
- настройки кибербезопасности,
- процессы CI/CD,
- английский язык,
- периодическая таблица DevOps.
Список того, что нужно знать и уметь DevOps-специалисту можно продолжать долго. Но только практикуясь станет понятно, что именно изучать и как.
Для DevOps-инженера важны и личные качества:
- системное мышление,
- внимательность,
- хорошая память,
- коммуникабельность,
- ответственность,
- работоспособность,
- исполнительность,
- быстрая обучаемость.
Это только основные требования. Конкретные условия зависят от работодателей.
Карьера и заработная плата DevOps‑инженера
На рынке наблюдается огромная нехватка DevOps‑специалистов. Это касается как России, так и зарубежных стран.
Вакансий достаточно много, особенно на специализированных IT-сайтах и сервисах по поиску работы. Больше предложений для сотрудников на полный день в офисе. Если же говорить о фрилансе, то тут меньше проектов.
Специалисты могут найти работу в банке, IT-компаниях и в любых других организациях, которые разрабатывают приложения или управляют большим количеством серверов. К примеру, DevOps‑инженеры есть в таких известных гигантах, как Amazon, Facebook, Netflix.
Но кроме крупных организаций, где надо объединить много разноплановых специалистов и команд, такой работник может пригодиться и более мелким предприятиям.
Часто на эту должность идут бывшие сисадмины, с которыми DevOps-инженеров иногда путают. Эти две должности может и похожи чем-то в определенном плане, но все же подход к работе у них разный. Системный администратор всегда знает, что ему надо выполнить завтра. Он имеет список задач, которому следует.
У DevOps-инженера такой роскоши нет. Сегодня он может заниматься одним, завтра делать совершенно другое, а послезавтра появится еще что-то новое, что необходимо для команды.
И если после года или два работы сисадмин изучит дополнительный язык для автоматизации, пройдет курсы или займется самостоятельным обучением, то вполне может стать DevOps-специалистом.
Или же DevOps-инженер может сразу получиться из выпускника университета или специализированного курса, из программиста или тестировщика. Практически любой может стать специалистом в этой области, нужно лишь желание учиться.
Новички на старте получают 40–80 тыс. руб., а средняя зарплата по России находится на уровне 100–200 тыс. руб.
В регионах DevOps-инженерам платят от 100 000 до 140 000 руб. В Москве и Санкт-Петербурге зарплаты выше: от 120 000 до 400 000 руб.