DevOps-инженеры — это многопрофильные специалисты, которые умеют автоматизировать процессы и знают, как работают разработчики, QA и менеджеры. Они умеют программировать, быстро осваивают сложные инструменты и не теряются перед незнакомой задачей. DevOps-инженеров мало — им готовы платить по 200–300 тысяч рублей, но вакансий всё равно много.
В статье рассказываем, чем конкретно занимается DevOps и что нужно изучить, чтобы претендовать на такую должность. Бонусом — важные ссылки на книги, видео, каналы и профессиональное сообщество.
Чем занимается DevOps-инженер
В ситуации с DevOps важно не путать термины. Дело в том, что DevOps — это не какое-то конкретное направление деятельности, а профессиональная философия. Это методология, которая помогает разработчикам, тестировщикам и системным администраторам работать быстрее и эффективнее за счёт автоматизации и бесшовности.
Соответственно, DevOps-инженер — это специалист, который внедряет эту методологию в процесс работы:
- На этапе планирования DevOps-инженер помогает решить, какую архитектуру будет использовать приложение, как оно будет масштабироваться, выбрать систему оркестрации.
- Дальше настраивает сервера, автоматизированную проверку и заливку кода, проверку среды.
- Затем автоматизирует тестирование, решает задачи по деплою.
- После релиза важно собирать обратную связь от пользователей и внедрять улучшения. DevOps делает так, чтобы пользователи не замечали этих улучшений, а процесс обновления был непрерывным.
- И заодно решает десятки задач, которые помогают наладить систему работы разработчиков, QA, системных администраторов и менеджеров.
Всё, что написано выше, происходит в близких к идеальным проектах. В реальном же мире приходится стартовать в проекте, где планирование пропустили, с архитектурой ошиблись, а об автоматизации задумались, когда все проекты встали. И разобраться во всех этих проблемах, решить их и сделать так, чтобы всё работало — ключевой навык DevOps-специалиста.
На рынке кадров есть путаница. Иногда бизнес ищет DevOps-инженеров на позицию системного инженера, билд-инженера или кого-то ещё. Обязанности в зависимости от размера компании и направления тоже меняются — где-то ищут человека на консалтинг, где-то просят всё автоматизировать, а где-то требуют выполнять расширенные функции системного администратора, умеющего программировать.
Что нужно для старта в профессии
Вход в профессию требует предварительной подготовки. Просто прийти на курсы с нуля, ничего не понимая в IT, и выучиться до уровня junior не получится. Нужен технический бэкграунд:
- Идеально, если вы работаете полгода и больше системным администратором, специалистом по эксплуатации или тестированию. Или хотя бы имеете представление о том, как приложения стартуют, в какой среде они могут развиваться и что делать, если вы видите ошибку. Если опыта работы нет, пройдите любой курс по администрированию Linux, повторяя всё происходящее на домашней машине.
- Разберитесь, как работают сетевые технологии — научитесь устанавливать, настраивать и управлять локальными и глобальными сетями.
- Посмотрите, как и из чего устроено программирование — напишите несколько скриптов на Python или Go, попробуйте понять принципы ООП (Объектно-ориентированное программирование), почитайте про общий цикл разработки продукта.
- Пригодится знание технического английского — общаться на свободные темы не обязательно, достаточно уметь читать документацию и интерфейсы.
Не обязательно знать всё перечисленное досконально, для старта обучения DevOps достаточно минимального уровня подготовки. Если такой технический бэкграунд есть, попробуйте записаться на курсы.
- Освоите одну из самых высокооплачиваемых IT-профессий
- Выстроите процесс DevOps с помощью облачных сервисов уже во время обучения
- Пройдёте оплачиваемую стажировку в «Express 42» — лидере DevOps-консалтинга
Что должен знать DevOps
Хороший DevOps-инженер — это многопрофильный специалист с очень большим кругозором. Для успешной работы вам придётся разобраться сразу в нескольких IT-направлениях.
Разработка
DevOps напишет скрипт, который поможет разработчикам устанавливать код на сервер. Сделает программу, которая «на лету» тестирует отзывчивость баз данных. Напишет приложение для контроля за версионностью. Наконец, просто заметит потенциальную проблему в разработке, которая может появиться на сервере.
Сильный DevOps-специалист знает несколько языков, подходящих для автоматизации. Разбирается в них не досконально, но быстро напишет небольшую программу или прочитает чужой код. Если раньше с разработкой не сталкивались, начните с Python — у него простой синтаксис, на нём легко работать с облачными технологиями, есть много документации и библиотек.
Операционные системы
Знать все возможности каждой версии каждой системы невозможно — на такое обучение можно потратить тысячи часов и толку не будет. Вместо этого хороший DevOps понимает общие принципы работы на любой ОС. Хотя, судя по упоминаниям в вакансиях, большинство сейчас работают в Linux.
Хороший инженер понимает, в какой системе лучше разворачивать проект, какими инструментами пользоваться и какие потенциальные ошибки могут появиться в процессе внедрения или эксплуатации.
Облака
Рынок облачных технологий растёт в среднем на 20–25% в год — такая инфраструктура позволяет автоматизировать операции тестирования кода, сборки приложений из компонентов, доставки обновлений до пользователей. Хороший DevOps разбирается как в полностью облачных, так и в гибридных решениях.
В стандартных же требованиях к инженерам обычно значится GCP, AWS и Azure.
Сюда можно отнести и владение инструментами CI/CD. Обычно для непрерывной интеграции используется Jenkins, но стоит попробовать и аналоги. Их много, например, Buddy, TeamCity и Gitlab CI. Полезным будем изучить Terraform — это декларативный инструмент, помогающий удалённо поднимать и настраивать инфраструктуру в облаках. И Packer, который нужен для автоматического создания образов ОС.
Системы оркестрации и микросервисы
У микросервисной архитектуры есть много преимуществ — стабильность, возможность быстрого масштабирования, упрощение и повторные использования. DevOps понимает, как работают микросервисы, и может предупредить потенциальные проблемы.
Досконально знает Docker и Kubernetes. Понимает, как работают контейнеры, как строить систему так, чтобы можно было отключать часть из них без последствий для общей системы в целом. Например, умеет построить Kubernetes-кластер при помощи Ansible
Что ещё попробовать будущему DevOps
Перечислять инструменты, которые могут пригодиться в работе DevOps-инженеру, можно бесконечно. Кто-то работает над оркестрацией проектов, другие большую часть времени занимаются автоматизацией развертывания и тестирования, третьи повышают эффективность в управлении конфигурациями. В процессе будет понятно, куда копать и какие проекты пригодятся.
Вот ещё небольшой минимум, который поможет на старте:
- Разберитесь, как работает Git и Github, если ещё не сталкивались с этим. Установите GitLab на свой сервер.
- Познакомьтесь с языками разметки JSON и YAML.
- Установите и попробуйте поработать в базах данных — не только в MySQL, но и NoSQL. Попробуйте MongoDB.
- Разберитесь, как управлять конфигурацией сразу нескольких серверов. Например, с помощью Ansible.
- Сразу настройте мониторинг нагрузки и логи. Попробуйте связку Prometheus, Grafana, Alertmanager.
- Поищите лучшие решения для деплоя под разные языки — достаточно просто познакомиться, внедрять и разбираться будете на тренировочном или рабочем проекте.
Почему стоит начать изучать DevOps сейчас
На рынке DevOps-инженеров — кадровый голод. Это условно подтверждается количеством и качеством вакансий:
- В России на одном только HeadHunter постоянно доступно более 2 тысяч рабочих мест по этому ключевому слову.
- И всего 1 900 человек разместили резюме.
Учитывая, что размещение резюме не означает активный поиск работы, получается, что на одного специалиста приходится две, а то и три вакансии — такой ситуации нет даже на популярном рынке веб-разработки. Добавьте сюда ещё вакансии с Хабра и из Телеграм-каналов — нехватка специалистов огромная.
Не меньше востребован DevOps и в мире — если вы собрались на релокацию в США или Европу, то только на портале Glassdoor таких специалистов ищут больше 34 тысяч компаний. Из частых требований — опыт 1–3 года, умение работать с «облаками» и не бояться консалтинговых функций.
На фрилансе предложений в разы меньше — DevOps-инженеров в основном ищут в штат и на полный день.
Условный карьерный путь DevOps-инженера можно представить примерно так:
- Полгода–год работает системным администратором в небольшой IT-компании. Параллельно изучает язык, подходящий для автоматизации.
- Интенсивно учится на курсах, примерно полгода.
- Переходит на другую работу — в компанию, которая продаёт облачные решения, филиал крупной корпорации, к разработчикам больших проектов. Проще говоря туда, где есть потребность в постоянной автоматизации и внедрении. На начальной позиции это примерно 100 тысяч рублей.
- Несколько лет активно работает и учится, увеличивает доход в несколько раз.
- Становится экспертом в профессиональном сообществе и переходит в консалтинг. Или растёт до системного архитектора или IT-директора.
DevOps — это сложно. Нужно сочетать в себе навыки сразу нескольких профессий. Стать человеком, который готов предложить улучшение там, где другие IT-специалисты даже не думают о чём-то другом. За это много платят, но и объём знаний потребуется большой.
Сколько зарабатывают DevOps
Средняя медианная зарплата по данным за второй квартал 2019 года у девопсов находится в вилке между 90 и 160 тысячами рублей. Есть предложения дешевле — в основном 60–70 тысяч. Постоянно есть предложения до 200 тысяч, встречаются вакансии с зарплатой до 330 тысяч рублей.
DevOps-инженеры, в том числе начинающие, сейчас требуются в крупные банки, корпорации, облачные сервисы, торговые системы и другие организации, которые заботятся о поддержании своих IT-решений.
Отличным кандидатом на младшую вакансию с зарплатой в 60–90 тысяч станет начинающий системный администратор с опытом около года и профильным дипломом.
Что смотреть и читать для роста в профессии
Чтобы погрузиться в мир DevOps, попробуйте сразу несколько источников информации:
- Cloud Native Computing Foundation [YouTube, ENG] — много видео с конференций и образовательных вебинаров.
- DevOps Channel [YouTube, RUS] — видео докладов с профессиональной конференции DevOps в России.
- The DevOps Handbook [книга, RUS] — одна из самых популярных книг про философию DevOps. В книге есть общие принципы методологии, она рассказывает, на что обращать внимание в первую очередь при работе на любом проекте.
- Thomas Limoncelli «The Practice of System and Network Administration» [книга, RUS] — много теории и принципов о том, как должно быть устроено системное администрирование.
- Devops Weekly [книга, ENG] — еженедельный обзор новостей о происходящем в DevOps по всему миру.
- Devops_deflope [Telegram, RUS] — новости индустрии, анонсы конференций, ссылки на новые интересные статьи и книги.
- Devops_ru [Telegram, RUS] — русскоязычный чат, где можно спросить совета и попросить помощи по конфигам.
- Devops.com — большой международный сайт со статьями, вебинарами, подкастами и колонками крупнейших компаний в индустрии.
- Hangops_Ru — русскоязычное сообщество инженеров DevOps и сочувствующих.
- Лучшие книги по тому языку, которые вы будете использовать для разработки.
Где учиться на DevOps
Получить структурированные знания можно на курсе «DevOps-инженер» в Нетологии. Вы научитесь полному циклу методологии:
- Узнаете, как анализировать код и быстро использовать инструменты контроля версий.
- Разберётесь в лучших практиках непрерывной интеграции, тестирования и сборки.
- Научитесь управлять изменениями в приложениях и автоматизировать их.
- На практике изучите инструменты конфигурации и управления.
- Привыкните сразу выбирать и настраивать нужные службы для мониторинга.
Бонусом получите курс по программированию на Python — будете решать задачи ещё быстрее и проще. Всё на практике — используем AWS, GCP или Azure.
Этого достаточно, чтобы из начинающего инженера или системного администратора превратиться в востребованного DevOps и приятно поднять свой ценник на рынке труда.
Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.