Natalia Habrukh 01 октября 2020

?‍?️ Как я стал инженером DevOps: история специалиста компании Wargaming

Инженер DevOps компании Wargaming Сергей Макаренко рассказывает о лучших технологиях, проектах, недостатках профессии и работе в крупной международной компании.

В предыдущих статьях о DevOps мы писали о том, Чем занимается DevOps-инженер? Обзор базовых практик и Как и зачем становиться DevOps-инженером. Другие публикации по DevOps доступны по ссылке: https://proglib.io/tag/DevOps.

В этом материале Сергей Макаренко (LinkedIn) рассказал о своем профессиональном пути.

Почему DevOps

Я учился в СПБГПУ на факультете технической кибернетики. Работал в разных отраслях: бизнес-консалтинге, IT-аутсорсинге, банковской и телевизионной сферах, телекоме, гемблинге, в индустрии компьютерных игр, в госкомпании.

Решать приходилось различные задачи: писать код, администрировать, заниматься ITIL, управлять проектами и людьми. В процессе я получал все необходимые для текущей работы навыки.

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

О текущей работе

Изначально мне было интересно, как оно – в геймдеве? Поэтому я выбрал компанию Wargaming – это разработчик и издатель популярных компьютерных игр: World of Tanks, World of Tanks Blitz, World of Warships и многих других. Ради работы переехал в Беларусь. Компания помогла мне с релокацией: сопровождала процесс переезда на всех этапах.

Причина такого выбора – большая, известная и интересная в плане задач компания, поэтому я работаю на нее уже 2 года. Численность сотрудников Wargaming превышает 5000 человек в 17 филиалах по всему миру. Самый большой офис расположен в Минске, здесь трудится более 2200 человек. Мое подразделение называется Platform, мы производим общие для всех игр сервисы.

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Кто такой инженер DevOps

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

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

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

Для меня DevOps – то, что позволяет компании быстро доносить до клиентов свои услуги и продукты в стабильном, производительном, качественном и безопасном виде, а также помогает задействованным в процессе производства людям выполнять работу максимально продуктивно.

Следовательно инженер DevOps – тот, кто сможет эффективно наладить весь процесс с помощью внедрения конкретных практик, путем обсуждений, построения необходимой инфраструктуры, написания кода.

О рабочем дне

Мой обычный день без дежурства выглядит примерно так:

  • Разбор того, что пришло за ночь: сообщений в почте и мессенджерах, сработавших триггеров и инцидентов (при этом инциденты, которые ночью были критичными, скорее всего уже были решены дежурным инженером);
  • Корректировка плана на день;
  • Stand-up митинг с проектной и/или структурной командой, частью которой я являюсь;
  • Решение различных задач согласно плана на день:
  1. Решение каких-либо проблем на стейджинг- или продакшн-окружениях с тем, чтобы они больше не повторялись;
  2. Улучшение процессов/инфраструктуры для различных систем и сервисов;
  3. Курирование в том или ином виде каких-либо проектов;
  • Различные встречи при их наличии;
  • Написание плана на следующий день.

Несколько раз в месяц один специалист из нашего структурного подразделения дежурит 24 часа, и во время этого периода он должен решить связанные с сервисами в нашей зоне ответственности проблемы и инциденты.

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

О рабочих проектах и ошибках

В Wargaming я начинал с улучшения работы стейджинг-окружений и встраивания новых сервисов, которые были внедрены в существующую инфраструктуру.

Один из последних крупных проектов, в которых мне довелось участвовать перезапуск World of Tanks в Китае. Требовалось за короткое время развернуть все необходимые сервисы, выполнить интеграции с китайскими партнерами, изменить существующие технические и организационные процессы.

Так как Китай это особенный регион, необходимо было учесть его нюансы. Благодаря слаженной работе всех ответственных за этот проект, его получилось успешно запустить в срок.

Своей личной победой я считаю автоматизацию процесса тестирования, сборки и деплоя, в результате чего сейчас все происходит без участия человека или с минимальным его участием.

Если говорить о рабочих ошибках, то однажды ночью я перепутал консоли, и команда на перезапуск была отправлена не тому сервису. Так как он резервируется, ничего действительно страшного не произошло, но выводы можно сделать такие: нужно высыпаться, максимально автоматизировать все процессы, при необходимости ручной работы писать для себя план действий и план отката.

Плюсы и минусы профессии DevOps-инженера

Из плюсов можно отметить, что данная профессия позволяет непрерывно развиваться и сразу видеть, какую пользу ты приносишь.

Из минусов – зачастую работа может быть сопряжена с большим количеством стрессов, но к этому со временем привыкаешь.

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

Новичкам в профессии советую уделять время получению фундаментальных знаний и расширять кругозор.

10 лучших технологий DevOps

Из технологий, которые мы в той или иной степени используем в компании и которые актуальны лично для меня, могу выделить следующие:

CI/CD (Pipeline as Code)

Инфраструктура как код

Контейнеризация и оркестрация

Облачные сервисы

Observability и мониторинг

Service mesh

Централизованное логирование и трейсинг

API gateways

Feature toggle

Микросервисы и микрофронтенды

Полезные книги, курсы и каналы на YouTube

Книги, которые я рекомендую прочитать как опытным специалистам, так и новичкам:

  • Дженнифер Дэвис и Кэтрин Дэниелс «Философия DevOps. Искусство управления IT».
  • Джин Ким, Джордж Спаффорд, Кевин Бер «Проект “Феникс”. Роман о том, как DevOps меняет бизнес к лучшему».
  • Джин Ким, Патрик Дебуа, Джон Уиллис, Джез Хамбл «Руководство по DevOps».
  • Бетси Бейер, Дженнифер Петофф, Крис Джоунс «Site Reliability Engineering. Надежность и безотказность как в Google».

Об этих и других полезных для DevOps-специалистов книгах мы писали в материале – ТОП-10 книг из библиотеки специалиста DevOps.

Вдобавок могу посоветовать читать книги об операционной системе Linux и языках программирования.

Отчеты об индустрии DevOps:

От частной глобальной технологической компании ThoughtWorks(англ.)

От американской исследовательской компании DevOps Research and Assessment (DORA)(англ.)

Полезные Тelegram-каналы: devopsminsk и devops_deflope.

Каналы на YouTube с записями с различных конференций: CNCF, DevOpsDays, Ontico, Jugru.

***

DevOps – сложная и неоднозначная сфера. Судя по истории героя этой статьи, вам понадобится потратить немало времени, чтобы стать востребованным специалистом. Для освоения новой профессии или повышения квалификации есть и более легкие пути. К примеру, вы можете пройти курс DevOps от онлайн-университета GeekBrains.

Вы узнаете обо всех необходимых для работы практиках и инструментах DevOps, в том числе о тех, которые приводил герой публикации. Преподающие на курсе специалисты и сотрудники крупных компаний расскажут, как настроить сервер для локальной сети, помогут освоить облачные технологии, контейнеризацию приложений с Kubernetes и Docker. Также вы научитесь налаживать процессы непрерывной интеграции и доставки кода, а личный куратор поможет разобраться со всеми проблемными моментами, которые могут возникнуть в процессе обучения.

РУБРИКИ В СТАТЬЕ

МЕРОПРИЯТИЯ

Комментарии 0

ВАКАНСИИ

Программист С++ (Middle)
по итогам собеседования
Programmer Unity
Краснодар, по итогам собеседования
Unity Developer
по итогам собеседования

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

BUG