∞ Обучение на инженера DevOps: как не имея опыта найти работу?

Рассказываем, как получить первый опыт и работу в DevOps. Какие знания, умения и навыки вам для этого понадобятся и к чему нужно быть готовым на собеседовании.
∞ Обучение на инженера DevOps: как не имея опыта найти работу?

Почему в DevOps нельзя прийти с нуля?

DevOps – набор практик, сочетающий разработку программного обеспечения (Dev) и IТ-операции (Ops). Эти практики направлены на сокращение жизненного цикла создания систем и непрерывную поставку программного обеспечения высокого качества. Конечная цель DevOps – оперативно выводить продукты на рынок, быстрее доставлять обновления программного обеспечения и безопасности, а также повышать надежность всего процесса разработки, внедрения и сопровождения.

Во многих IT-компаниях разные отделы отвечают за разработку, эксплуатацию, поддержку и управление. Методология DevOps стремится объединить их для повышения производительности и более плавного рабочего процесса.

Инженер DevOps – тот специалист, который внедряет набор практик DevOps в процесс работы.

Основные задачи инженера DevOps:

  • подготовка среды для создания продукта;
  • развертывание поставленного разработчиками релиза;
  • использование инструментов анализа качества разработки и автоматизации тестирования;
  • установка, конфигурирование и обеспечение работы веб-серверов и серверов инфраструктуры разработки;
  • автоматизация процессов тестирования и развертывания;
  • непрерывное развертывание и управление непрерывной интеграцией (CI/CD);
  • обеспечение бесперебойной работы приложений;
  • написание спецификаций и документации.

В связи с широким стеком технологий, набором обязанностей и навыков, которыми должен обладать специалист DevOps, ему необходим предварительный опыт. Чаще всего в эту профессию приходят системные администраторы, а также специалисты по эксплуатации или тестированию, обязанности которых близки к DevOps. Младшие специалисты в этой отрасли – редкость. Грейдирование в DevOps начинается со среднего уровня, где требуется опыт работы от трех лет.

Наличие технического бэкграунда поможет быстрее развиться в DevOps, но начать можно и с минимальными знаниями. Для этого нужно изучить базу в программировании и ряд инструментов.
∞ Обучение на инженера DevOps: как не имея опыта найти работу?

Что требуется знать для начала карьеры в DevOps?

О базовых знаниях, навыках и других нюансах работы DevOps мы расспросили у практикующего специалиста, старшего инженера DevOps компании iX.co, Андрея Мальцева. Он рассказал о своем опыте и дал ряд советов начинающим специалистам.

Моя карьера в DevOps началась с системного администрирования. Еще на уроках программирования в школе я понял, что настраивать компьютерные системы и заниматься автоматизацией процессов мне нравится больше, чем писать код.
В университете я работал техником на кафедре. Дальше последовала работа «эникейщиком» в ресторане. Позже я несколько лет работал с сетями в провайдинге, а уже после стал системным администратором в крупной международной компании. Постепенно удавалось расти и перейти в DevOps, так как задачи усложнялись, а компетенции и уровень ответственности повышались.
Часто можно услышать, что начинающему DevOps-специалисту нужно учить какой-то определенный набор технологий. Исходя из моего опыта, этот набор меняется каждые несколько лет, поэтому советую сфокусироваться на инструментах, которые будут нужны индустрии через несколько лет, а не прямо сейчас.
Сначала, изучите английский язык и практикуйте навыки общения. Так называемые soft skills важны, потому что специалист DevOps, который не умеет правильно коммуницировать, не нужен компании, особенно в наш век глобализации и удаленной работы.
Также стоит изучить паттерны проектирования, разработки и автоматизации. Они использовались во времена мейнфреймов и выделенных серверов, и продолжают использоваться сейчас, при повсеместной виртуализации и контейнеризации. Уверен, будут актуальны и в будущем. Ну и конечно же, изучайте операционную систему Linux, без нее в DevOps будет сложно.

Дадим еще несколько конкретных советов:

  1. Изучите язык программирования. Python – один из доминирующих языков в наши дни. Несколько менее популярен Go (Golang). Любой из этих двух вариантов отлично подойдет для начинающих специалистов;
  2. Ознакомьтесь с управлением серверами, поскольку это – одна из основных задач DevOps. Вам необходимо разбираться в аппаратном обеспечении (ЦП, архитектура, память) и в программной начинке (Windows, Linux);
  3. Изучите безопасность и основы работы в сети. Придется разобраться, как работают распространенные протоколы: HTTP, FTP, SSL и т.д. Также инженеру DevOps нужно обеспечивать безопасность развернутого программного обеспечения, предугадывать недостатки безопасности в коде и настраивать инфраструктуру сети;
  4. Изучите GIT. Распределенная система управления версиями позволяет разработчикам иметь много независимых веток кода, отслеживать изменения в файлах и хранить историю этих изменений. Быть экспертом в GIT нет необходимости, но работать с системой придется часто, поэтому разобраться в ней стоит;
  5. Узнайте, как создавать программное обеспечение. В DevOps процесс сборки заключается в создании отдельной версии программного обеспечения, которая будет работать на производственном сервере. Очень важно знать как можно больше об этой части жизненного цикла приложения;
  6. Изучите инфраструктуру как код. С помощью IaC можно быстро развернуть инфраструктуру, с помощью кода, а не вручную;
  7. Узнайте, как контролировать программное обеспечение и инфраструктуру. Развернутое в производстве ПО и инфраструктура, на которой оно установлено, должны контролироваться. Поэтому важно освоить инструменты мониторинга и оповещений;
  8. Изучите информацию о контейнерах и оркестровке. Инженеру DevOps необходимо обладать навыками создания, построения, развертывания и управления контейнерами в средах разработки и производства. Обязательны нужно изучить такие инструменты, как Docker и Kubernetes;
  9. Присоединитесь к сообществам DevOps. Обмен знаниями с опытными коллегами поможет вам быстрее освоиться в новой профессии и получить необходимые знания.

О DevOps-сообществах мы уже писали. Вот некоторые из них:

  1. Telegram-канал DevOps – русскоговорящее сообщество;
  2. Telegram-канал DevOps;
  3. форум для DevOps на Reddit Everything DevOps;
  4. крупное сообщество DevOps в соцсети LinkedIn DevOps.

Какие инструменты нужно освоить начинающим?

Из инструментов Андрей Мальцев рекомендует следующие:

  • операционные системы Linux или macOS. В мире DevOps с операционной системой Windows вы будете сталкиваться крайне редко. Под Windows для освоения Linux существуют Vagrant, VirtualBox и прочие приложения для виртуализации;
  • Docker – инструмент для автоматизации, развертывания и управления приложениями с помощью контейнеров. Этот инструмент важен, так как почти весь необходимый в DevOps системный софт может поставляться в контейнерах. А если не поставляется, то его можно (и нужно) упаковать самому;
  • Microsoft Visual Studio Code – редактор исходного кода, разработанный Microsoft для Windows, Linux и macOS. Из бесплатных универсальных IDE – Visual Studio Code подойдет лучше всего. Все, что может понадобиться в процессе работы в нем уже есть, или это можно доставить плагинами;
  • Kind, Minikube, k3s. Kubernetes сейчас крайне популярен. Чтобы начать его осваивать, достаточно компьютера и одного из этих трех инструментов для автоматизации операций с контейнерами на выбор;
  • Postman – инструмент тестирования API. В работе инженера DevOps часто нужно что-то проверить или протестировать. Базовые вещи проще делать cURL(ом), но в сложных или часто повторяющихся ситуациях подойдет Postman;
  • Менеджер паролей. Советовать какой-то определенный нет необходимости, поскольку их много на рынке. Начинающим DevOps стоит приучать себя не хранить и не передавать никакие секретные данные (в том числе и пароли) открытым текстом.
∞ Обучение на инженера DevOps: как не имея опыта найти работу?

Какие ресурсы, книги, видео и каналы пригодятся?

Начинающим специалистам будет полезен ресурс Developer Roadmaps. Сообщество DevOps расписало и оформило в виде дорожной карты базовые инструменты и знания, которые пригодятся на этапе обучения.

Книги:

  1. «Site Reliability Engineering: надежность и безотказность как в Google», Бейер Бетси, Джоунс Крис;
  2. «Continuous Delivery: практика непрерывных апдейтов», Вольф Эберхард;
  3. «Распределенные системы. Паттерны проектирования», Бернс Брендан;
  4. «Масштабирование приложений. Выращивание сложных систем», Атчисон Ли.

Об этих и других книгах для специалистов DevOps мы писали в отдельной статье.

Из курсов вам пригодятся все существующие от специалиста Mumshad Mannambeth: как на Udemy, так и на его YouTube-канале – KodeKloud. Полезно посмотреть и записи выступлений с конференций от CNCF и, к примеру, DevOops, а также другие конференции от JUG.ru Group.

Какие вопросы вам могут задать на собеседовании?

Чаще всего HR-специалисты, и даже инженеры DevOps не могут задать корректные вопросы соискателю. DevOps находится на стыке нескольких специализаций, но HR сдвигаются либо в сторону операционки, либо наоборот – в сторону разработки. Подготовиться придется всесторонне.

5 самых частых вопросов на собеседовании:

  1. Вопросы по операционной системе Linux: load average, inode, processes.
  2. Вопросы по сетям: маршрутизация, OSI model, TCP/UDP, IP subnets.
  3. Вопросы по программированию: Bash, Python, иногда Golang. Во время собеседования вас могут попросить написать функцию, которая выполняет конкретную задачу.
  4. Что такое Docker и какие особенности Linux он использует?
  5. Опишите, как вы видите простой CI/CD пайплайн?
  6. Стоит сюда включить и шестой вопрос: какие меры безопасности нужно предпринять, чтобы злые хакеры не взломали нашу инфраструктуру?

Чтобы подготовиться к собеседованию, сделайте следующее:

  1. Изучите информацию о предполагаемом работодателе. Вопросы на собеседовании могут касаться не только ваших профессиональных знаний, но и мотивации в выборе конкретной компании.
  2. Структурируйте информацию о вашем опыте. Даже если опыт в DevOps минимальный, на собеседовании вы можете перечислить знания и умения, которые получили самостоятельно, инструменты, которые использовали в процессе обучения, а также рассказать над какими личными проектами работали.
  3. Подготовьтесь к тестовому заданию. HR-специалист может попросить вас выполнить тестовое задание во время собеседования или привести примеры из личного опыта. Скорее всего вас попросят найти решение конкретной проблемы или привести в пример нестандартный кейс, с которым приходилось сталкиваться;
  4. Будьте готовы к проверке ваших soft-skills. Это важный аспект собеседования, так как специалисту DevOps нужно наладить коммуникацию, найти общий язык с разработчиками, командой по эксплуатации и заказчиками. Общение также происходит за пределами проекта, поэтому вы должны уметь отстаивать свое мнение, идеи, находить подход к коллегам, руководству и клиентам.

Где можно получить минимальный опыт в профессии?

Идеальный вариант – интернатура в крупных международных компаниях. Можно и в российских, но там реже практикуются стажировки и применять английский язык сложнее.

Это неоплачиваемая работа и не все могут себе такое позволить, но попробовать стоит – не прогадаете. Начинающий специалист напрямую столкнется с реальным миром крупных IT-систем, сможет получить навыки кросс-командного взаимодействия, а также получит возможность поработать с высококвалифицированными специалистами. Такая интернатура позволит быстрее построить карьеру и точно даст много полезного опыта и знаний.

Кроме варианта стажировки вы можете еще несколько:

  1. Получить базовые знания самостоятельно, следуя дорожной карте. Для самостоятельного обучения также доступны: видеолекции, книги и сообщества для специалистов DevOps;
  2. Закончить курсы. Средняя их продолжительность – один год, а на изучение отдельных инструментов уйдет несколько месяцев. За это время вы получите структурированные знания и сможете применить их на практике. Выбирайте курсы с возможностью сдать итоговый проект и обратной связью от преподавателя. После окончания вам выдадут сертификат, который можно добавить в резюме, отметив там практический опыт;
  3. Найти ментора. Если вы уже имеете минимальный опыт в профессии, попробуйте найти ментора. Опытные специалисты любят делиться знаниями, поэтому стоит обратиться к ним за советом или проработать вместе сложные вопросы.
***

Обучение новой профессии и поиск работы – нелегкая задача. Если вы подойдете к этому вопросу с ответственностью и настойчивостью, сможете устроиться на желаемую должность. Главное – получите необходимые знания, реально оцените свои способности и составьте резюме. Удачи в обучении и поисках работы мечты!

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик С#
от 200000 RUB до 400000 RUB
Go-разработчик
по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ