Сейчас DevOps-инженеры довольно востребованны: в их услугах нуждаются различные компании, чья деятельность в той или иной степени связана с ИТ-отраслью. В профессию приходят как разработчики, системные администраторы и реже — тестировщики, так и полные новички (обычно это становится возможно благодаря стажировкам).
Меня зовут Евгений Цигельников, и я ведущий DevOps-инженер в направлении интеграционных решений в Лиге Цифровой Экономики. В этом материале поделюсь опытом и расскажу, чего ожидать новичкам в DevOps на старте карьеры и как преодолевать первые трудности.
DevOps-инженер связывает и синхронизирует все этапы разработки программного обеспечения: от составления технического задания до релиза.
По сути, DevOps занимается автоматизацией рабочих процессов, чтобы доставка кода в продакшн занимала минимальное время, а также налаживает взаимодействие команд тестирования, поддержки и разработки. DevOps-инженер должен разбираться и в администрировании, и в разработке, и в тестировании.
Со стороны hard skills это очень творческое направление — можно построить инфраструктуру или автоматизировать работу совершенно разными способами, приходится разбираться в процессах ИТ-бизнеса. Последнее, кстати, будет актуально для тех, кто в будущем планирует строить свой стартап. А еще это отличная профессия для общительных людей.
Кроме того, велики возможности для развития — если надоест, можно уйти в разработку, архитектуру или менеджмент. Ну и, конечно, это перспективная и высокооплачиваемая профессия.
Но не плюсами едиными — есть и подводные камни. О них расскажу ниже и подкреплю кейсами из практики. Кстати, если бы ко мне на собеседование пришел джун, разобравшийся в этих вопросах, его шансы получить офер значительно повысились бы.
1. Помнить о soft skills
Я работал сисадмином в поддержке, меня редко касалось общение с менеджером или заказчиком. Когда стал DevOps-инженером, удивился, что весь календарь забит встречами. Казалось — а работать-то когда?!
В будущем станет понятнее, как оптимизировать этот аспект — наработаются шаблоны, станете определять тему по одному подзагу. Отмечу, чтобы привыкание прошло легче, важно не пренебрегать написанием технической документации, например, в ситуации, если вы разрабатываете пайплайн и команда заказчика использует ваши наработки.
Так как я из senior-админа стал DevOps с грейдом, я бы сказал, middle с минусом, но с хорошим техническим бэкграундом, моя адаптация прошла быстро. Я пару раз сходил на конфколл с ментором и уже разобрался. Если в работу вливается специалист без бэкграунда, адаптация может занять 3–4 месяца, а на звонках его будет сопровождать ментор.
В общем, я считаю, что в нашей профессии решающие — именно мягкие навыки. Хоть про них говорят мало, а если и упоминают, то в самую последнюю очередь.
Так, DevOps-инженеру приходится общаться с отделом разработки, тестировщиками, менеджерами, заказчиком, в конце концов. Придется объяснять, проговаривать те или иные особенности, да еще и не по одному разу. А еще — слышать пожелания заказчика и даже быть немного продажником.
Одних «ораторских навыков» недостаточно: нужно быть еще и переводчиком с технического на человеческий. Иначе есть риск, что собеседник ничего не поймет, а, как я уже упоминал, значительная часть нашей работы строится на коммуникациях.
Обычно «переводчиками», объясняющими технические аспекты неподготовленной аудитории, бывают бизнес-аналитики. Но и мы не исключение.
2. Обращать внимание на список обязанностей
Расскажу о случае, непосредственным свидетелем которого я был. Мой знакомый переходил с должности php-программиста на DevOps. В какой-то момент его пригласили в компанию N, и он принял офер. И получил следующий список обязанностей: работа с системами хранения данных, развертывание приложения в Kubernetes, настройка гипервизоров и сетевой инфраструктуры… По сути, он выполнял обязанности нескольких специалистов. Ему приходилось работать по 12 часов. Уволился он примерно через месяц.
Когда только выбираете место для трудоустройства, обязательно обращайте внимание на список обязанностей — от DevOps-инженера зачастую хотят ну очень многого. Специалист превращается в эдакий «швейцарский нож», и им пытаются заменить половину ИТ-отдела: настроить сеть, посмотреть запросы в базе, оптимизировать их… И это далеко не все, что может взбрести в голову людям, которые поверхностно понимают, что такое DevOps.
Если в вакансии указаны, например, настройка Cisco, поднятие гипервизора, написание пайплайнов и документации — и все это требуется от одного человека, работодатель явно стремится совместить четыре направления в одном человеке.
Будьте внимательны и соотносите свои пожелания и возможности с перечнем требований в вакансии.
3. Ознакомиться с принципами кибербезопасности
Я начал присматриваться к теме с февраля 2022 года — тогда в логах писались сообщения, создавались бэкдоры, рассчитанные на то, что нерадивый сисадмин развернет приложение с «дыркой» и поставит инфраструктуру под угрозу.
С того момента начали закручиваться гайки, компании усердно избавлялись от «мусора» в приложениях. Службы безопасности ужесточили правила работы с open source, с имеющимися инструментами, подходами и так далее. Согласование действий со службой безопасности усложнилось.
Увеличилась личная ответственность, появились дополнительные правила. Понятия о безопасности расширились. В ходу насыщенная цифровая гигиена: я, например, начал следить за тем, на что ранее почти не обращал внимания.
Активно интересоваться темой я начал месяца три назад, так как слежу за рынком. Отмечу, что все чаще в вакансиях появляются требования к проверке уязвимости и прочим аспектам кибербеза. Сейчас усиленно изучаю это, хожу на курсы, читаю материалы по теме.
При чем тут DevOps? Приведу банальный пример: вы развернули базу данных и забыли поставить пароль или поменять дефолтный. Данные утекли. Да, это может допустить человек на такой должности — если читаете чаты по кибербезу, наверняка знаете подобные случаи.
Поэтому настоятельно рекомендую озаботиться изучением кибербезопасности: это поможет не только в самой работе, но и прибавит вам стоимости как специалисту DevSecOps, причем на порядок.
Организации регулярно сталкиваются с угрозами кибербезопасности, которые к тому же становятся все изощреннее. Потому не стоит ее игнорировать. Особенно это актуально для госкомпаний. Нужно понимать, что тестируется на безопасность, какие инструменты при этом используются, каким образом проходят проверки, где случаются «взломы», как проверять код на уязвимость, следить за эксплойтами и так далее. Это, конечно, уже уровень senior+, но всегда будет огромным преимуществом для специалиста грейдом ниже.
4. Держать руку на пульсе
Для DevOps просто необходимо постоянно мониторить рынок и изучать новые технологии. Я рекомендую присмотреться к open source. Если работаете в России, еще и к реестру софта, одобренного Минцифры. Кроме того, полезно знать один из этих языков программирования: Python, Go или JS.
Все это пригодится во время выбора инфраструктурных средств при проектировании.
Сам я подписан на множество айтишных каналов — даже не могу выделить пару-тройку лучших. Это прокачивает, на мой взгляд, именно общую насмотренность. В общем, ищите и подписывайтесь!
Есть канал с чатами по различным технологиям в ИТ: если вас что-то интересует, вы хотите попробовать новый софт в своем стеке и не знаете, где спросить, воспользуйтесь этой ссылкой.
И, разумеется, читайте «Хабр».
5. Практиковаться
Завершу этим пунктом — как и для других специальностей, связанных с ИТ, в DevOps необходимо постоянно практиковаться. Нужно актуализировать свои знания и навыки, чтобы оставаться востребованным специалистом.
Когда я определился, что в ближайший месяц-полтора займусь DevOps, мне дали стек технологий OKD 3: Nexus, Jenkins и так далее. В общем, вещи, которые я раньше не использовал.
Я начал готовиться дома: поднял virtual box, там виртуальные машины на CentOS, плейбуками раскатил OKD… Я до конца не понимал, что происходит: это было мое первое погружение в Kubernetes. Два-три дня я боролся, потом все-таки поднял кластер. Для меня это было значимое событие.
Дальше стал разбираться, читать литературу. За полтора месяца поднаторел до достойного уровня: когда пришел на проект, мне было намного легче осваиваться.
Если в вакансии есть Kubernetes, можно закинуть в Google или ChatGPT запрос «как подготовиться к работе с Kubernetes» и получить пошаговый алгоритм.
Кстати, советую использовать именно песочницу — тут нет страха что-то сломать. Это увеличивает полет фантазии, и обучение проходит быстрее. Сделайте ее дома и экспериментируйте час-два в день: открывайте вакансии, смотрите, что требуется, и если видите что-то незнакомое — вперед! Ищите обучающие видео или читайте статьи, а после пробуйте «пощупать» (конечно, если не мешают лицензии и прочее). Только постоянная практика дает реальные возможности для роста.
Бонус. При активном изучении DevOps я следовал вот таким схемам: https://roadmap.sh/devops. По ним сразу видно, что необходимо в работе, и можно понять, на что сделать упор. Роадмапы своевременно обновляются, так что вы ничего не упустите. А если нажмете на интересующий блок в схеме, вас перекинет на роадмап по этой теме или выдаст краткую выжимку основной информации. Это позволит подходить к обучению максимально вдумчиво.
Желаю удачи на тернистом, но интересном пути развития.