👨🔧️ Как и зачем становиться DevOps-инженером?
Хотите узнать, зачем в современном IT нужны DevOps-инженеры и почему такой должности не было раньше? Объясняем максимально просто.
Что такое DevOps и кто такой DevOps-инженер
DevOps – это в первую очередь философия, которая с годами превратилась в должность. А DevOps-инженер – человек, который модернизирует бизнес в соответствии с этим подходом. За счёт применяемой этим специалистом методологии процессы внутри команды становятся быстрее, а труд разработчиков приносит больше пользы.
Данную статью мы подготовили при поддержке нашего партнера – онлайн-университета GeekBrains. На факультете DevOps саму профессию, необходимые практики и инструменты можно освоить с нуля.
А поподробнее?
Представим, вас уже взяли на должность, связанную с DevOps в компании, создающей сайты на заказ. В компанию обращается клиент ООО «Большая Корпорация». Разработчик Василий и дизайнер Анна читают требования, резво принимаются за дело и вот уже готов первый прототип. Тестировщик Ольга проверяет его и передаёт клиенту.
Вроде бы пока всё идёт нормально, но есть одно «но»… «Большая Корпорация» не была бы самой собой, если бы не вносила правки по одной. Уже на пятой правке после смены цвета всех кнопок с бирюзового на аквамарин, Василий, Анна и Ольга начинают рвать на себе волосы – после каждого изменения необходимо переделывать, тестировать и размещать на сервере клиента весь сайт.
Тут на сцену и вступаете вы – DevOps-инженер. Вы быстро разворачиваете pipeline (букв. англ. «система труб»). Только вместо жидкости по этим трубам «течёт» код, а созданная вами система непрерывной интеграции и тестирования собирает и проверяет всё вместе, значительно ускоряя рабочий процесс.
Теперь при каждом изменении не нужно привлекать к работе всю команду – достаточно воспользоваться построенной системой. Она сама подготовит и разместит на сервере весь проект, а при обнаружении проблем автоматически передаст их ответственному работнику. Таким образом, некачественный код отсеивается сразу, а необходимый результат оказывается у клиента быстрее, увеличивая прибыльность и скорость работы всей команды.
Осталось разобраться, почему же эта практика называется DevOps. Всё просто: Dev (Development) – разработка, а Ops (Operations) – эксплуатация. Вот и вся расшифровка этого страшного термина.
Инструменты и навыки DevOps-инженера
Опытный DevOps-инженер должен понимать, как создать быструю и долговременную систему. Поэтому огромным плюсом будет умение строить в своём сознании «карты» инфраструктуры, описывающие, какой элемент за что отвечает.
Естественно, свою задачу вы будете выполнять не вручную, а с помощью специальных программ, технологий и средств автоматизации:
- средства виртуализации и контейнеризации – Docker, LXC (контейнеры Linux), OpenVZ, QEMU. Их общая задача – запустить несколько систем (виртуальных машин) или копий одного приложения (контейнеров) на одном физическом сервере. Библиотека программиста посвятила этой теме множество публикаций: когда какой контейнер использовать, разница между Docker и Kubernetes, проверка безопасности;
- управление инфраструктурой – Ansible, Hashicorp Terraform, инструменты мониторинга архитектуры и облачного мониторинга;
- автоматическое тестирование – Cypress, Mocha (читается «мо́кка»);
- непрерывное развёртывание/интеграция – GitLab CI, Teamcity, Jenkins, в том числе плагины к Jenkins.
Если вы хотите стать DevOps, придётся хорошо изучить эти и множество других инструментов. Для работы надо разбираться и в Linux, понимать внутреннее устройство операционной системы.
Материалы для чтения, изучения и просмотра
Если вы твердо решили идти в DevOps, помогут следующие ресурсы:
- Пошаговый туториал от специалиста по Ansible (англ.). Ansible – программа для управления конфигурацией, позволяющая удаленно контролировать и настраивать сервера. Отличается тем, что использует уже существующую SSH-инфраструктуру, в то время как подобные программы (Chef, Puppet) требуют настройки специальных систем доступа.
- Материалы от корпорации Microsoft (англ.)
Есть информация и на русском:
- Курс Управление вычислениями Института Биоинформатики на Stepik рассказывает о контейнеризации и пайплайнах.
- Список и описания инструментов DevOps компании Merion Networks.
- Для желающих копать ещё глубже есть библиотека материалов на русском.
- На нашем сайте есть специальные теги DevOps и Контейнеры.
Карьера в DevOps
Если вы только пришли в IT-индустрию, требования к DevOps-инженерам могут показаться сложными или даже страшными, но бояться нечего. Чтобы устроиться на первую должность по этой вакансии, имеет смысл несколько раз поучаствовать в этой роли в хакатоне или проекте в группе разработчиков, дизайнеров и других специалистов, заинтересованных в профессиональном развитии. Такой подход принесёт не только опыт, но и контакты в индустрии.
В первую очередь в DevOps стоит идти системным администраторам и всем, кому интересны и знакомы Linux-системы. Полезны будет и другие знания по системному администрированию, но именно эта ОС используется в сфере DevOps чаще всего.
DevOps также является логичным продолжением карьеры для людей, профессионально связанных с настройкой IT-инфраструктуры и строительством сетей.
Финансовые перспективы
Конечно, DevOps – дело само по себе интересное, но вас ведь не заставят работать без зарплаты. Давайте посмотрим и сравним, сколько платят DevOps-инженерам разных уровней за рубежом и в России.
Чтобы узнать, как дела обстоят в США, воспользуемся инструментом StackOverflow Salary Calculator.
Медианная зарплата DevOps-инженера в Нью-Йорке составляет 131 тыс. долл. в год (10.8 тыс. долл./мес.), что даже по американским меркам довольно неплохо.
Российские зарплаты рассмотрены в исследовании Яндекса. Как указано в их материале, имея всего год опыта, вы сможете рассчитывать на 115-125 тыс. руб./мес.
Конечно, в каждой компании квалификация определяется по-разному, но общепринятым является разделение DevOps-инженеров на те же группы, что и разработчиков: Junior, Middle и Senior. Зарплата DevOps-специалиста стремительно увеличивается с ростом его опыта. Junior и Middle могут рассчитывать на 100-150 тыс. в месяц, а закоренелые DevOps-«волки» получают от 200 тыс. руб.
Хочу научиться программировать с нуля, но не знаю, с чего начать. Что делать?
Можно учиться самостоятельно (долго) или пойти на курсы с преподавателями (быстро). Плюс нужно учитывать, что джунов много, конкуренция выше и работодатели повышают порог вхождения при найме на работу. Чтобы получить актуальные знания, мы в proglib.academy запустили курсы:
- Основы программирования на Python.
- Профессия Python-разработчик.
- Алгоритмы и структуры данных.
- Математика для Data Science.
- Профессия Data Science.
- Frontend Basic: принцип работы современного веба.
- Профессия Фронтенд-разработчик.
- Обработка естественного языка. Полный курс.
На подходе еще больше 10 курсов для взрослых и детей.