👨🔧️ Как я стал инженером 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, мы производим общие для всех игр сервисы.
Кто такой инженер DevOps
DevOps – это прежде всего методология, но в какой-то момент на рынке труда появилась и должность инженера DevOps. Есть люди, которые не согласны с самим существованием таких специалистов. Проблема еще и в том, что явной нормативной базы или общепринятого понимания круга обязанностей инженера DevOps не существует – как, например, в Google сделали для термина SRE.
Из-за этого в разных компаниях должностные инструкции – явные или неявные – могут сильно различаться. Мой опыт говорит о том, что сложности с определением круга обязанностей для той или иной должности всегда были и всегда будут.
Бывает и так, что в компаниях есть должности, которые с таким названием существуют только внутри них. Так что остается либо подводить какую-то общепринятую нормативную базу, либо приносить пользу и ценности компании и ее клиентам вне зависимости от записи в трудовой книжке.
Для меня DevOps – то, что позволяет компании быстро доносить до клиентов свои услуги и продукты в стабильном, производительном, качественном и безопасном виде, а также помогает задействованным в процессе производства людям выполнять работу максимально продуктивно.
Следовательно инженер DevOps – тот, кто сможет эффективно наладить весь процесс с помощью внедрения конкретных практик, путем обсуждений, построения необходимой инфраструктуры, написания кода.
О рабочем дне
Мой обычный день без дежурства выглядит примерно так:
- Разбор того, что пришло за ночь: сообщений в почте и мессенджерах, сработавших триггеров и инцидентов (при этом инциденты, которые ночью были критичными, скорее всего уже были решены дежурным инженером);
- Корректировка плана на день;
- Stand-up митинг с проектной и/или структурной командой, частью которой я являюсь;
- Решение различных задач согласно плана на день:
- Решение каких-либо проблем на стейджинг- или продакшн-окружениях с тем, чтобы они больше не повторялись;
- Улучшение процессов/инфраструктуры для различных систем и сервисов;
- Курирование в том или ином виде каких-либо проектов;
- Различные встречи при их наличии;
- Написание плана на следующий день.
Несколько раз в месяц один специалист из нашего структурного подразделения дежурит 24 часа, и во время этого периода он должен решить связанные с сервисами в нашей зоне ответственности проблемы и инциденты.
О рабочих проектах и ошибках
В Wargaming я начинал с улучшения работы стейджинг-окружений и встраивания новых сервисов, которые были внедрены в существующую инфраструктуру.
Один из последних крупных проектов, в которых мне довелось участвовать – перезапуск World of Tanks в Китае. Требовалось за короткое время развернуть все необходимые сервисы, выполнить интеграции с китайскими партнерами, изменить существующие технические и организационные процессы.
Так как Китай – это особенный регион, необходимо было учесть его нюансы. Благодаря слаженной работе всех ответственных за этот проект, его получилось успешно запустить в срок.
Своей личной победой я считаю автоматизацию процесса тестирования, сборки и деплоя, в результате чего сейчас все происходит без участия человека или с минимальным его участием.
Если говорить о рабочих ошибках, то однажды ночью я перепутал консоли, и команда на перезапуск была отправлена не тому сервису. Так как он резервируется, ничего действительно страшного не произошло, но выводы можно сделать такие: нужно высыпаться, максимально автоматизировать все процессы, при необходимости ручной работы писать для себя план действий и план отката.
Плюсы и минусы профессии DevOps-инженера
Из плюсов можно отметить, что данная профессия позволяет непрерывно развиваться и сразу видеть, какую пользу ты приносишь.
Из минусов – зачастую работа может быть сопряжена с большим количеством стрессов, но к этому со временем привыкаешь.
В целом, для работы инженером DevOps нужно обладать всесторонне развитым кругозором, иметь способность критически мыслить и быстро принимать правильные решения.
Новичкам в профессии советую уделять время получению фундаментальных знаний и расширять кругозор.
10 лучших технологий DevOps
Из технологий, которые мы в той или иной степени используем в компании и которые актуальны лично для меня, могу выделить следующие:
Централизованное логирование и трейсинг
Полезные книги, курсы и каналы на 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.
Хочу научиться программировать с нуля, но не знаю, с чего начать. Что делать?
Можно учиться самостоятельно (долго) или пойти на курсы с преподавателями (быстро). Плюс нужно учитывать, что джунов много, конкуренция выше и работодатели повышают порог вхождения при найме на работу. Чтобы получить актуальные знания, мы в proglib.academy запустили курсы:
- Основы программирования на Python.
- Профессия Python-разработчик.
- Алгоритмы и структуры данных.
- Математика для Data Science.
- Профессия Data Science.
- Frontend Basic: принцип работы современного веба.
- Профессия Фронтенд-разработчик.
- Обработка естественного языка. Полный курс.
На подходе еще больше 10 курсов для взрослых и детей.