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

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

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

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

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

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

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

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

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

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

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

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

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

    , Бейер Бетси, Джоунс Крис; , Вольф Эберхард; , Бернс Брендан; , Атчисон Ли.

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

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

Чаще всего 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 нужно наладить коммуникацию, найти общий язык с разработчиками, командой по эксплуатации и заказчиками. Общение также происходит за пределами проекта, поэтому вы должны уметь отстаивать свое мнение, идеи, находить подход к коллегам, руководству и клиентам.

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

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

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

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

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