Как стать специалистом по DevOps: история Михаила Чинкова

Illustration of three people observing a painting of a hockey player on a gallery wall, surrounded by more artwork. Illustration of three people observing a painting of a hockey player on a gallery wall, surrounded by more artwork.

Вероятно, самым сложным в этой истории является ее оглавление. С одной стороны, нужно каким-то образом идентифицировать свою профессию. Например, в блоге mkdev есть статьи о пути Java-разработчика, PHP-разработчика, тестировщика. А я тогда кто?

Поэтому я назвал свою историю "путь DevOps-специалиста", чтобы всем было более-менее понятно. Однако знайте, что на самом деле тайтл DevOps-инженера, пестрящий в вакансиях всех городов и стран -- это такой Кот Шредингера в IT-индустрии. Потому что DevOps -- это не человек, а инженерная культура.

Как я не хотел стать специалистом

Я никогда не интересовался ни устройством компьютера, ни программированием. В школе за пределами спортивных кружков я больше тяготел к таким предметам, как литература, история и обществознание. Хотя это были скорее склонности к наукам, нежели реальный интерес. Когда мне было 14, вместо меня Windows 7 на компьютер установил товарищ моего папы. Для удаления очередного порно-баннера в попытке скачать пиратский софт я звонил по объявлению в газете и платил 400 рублей из собственной копилки. Копилка пополнялась в основном за счет школьных шабашек по расклеиванию листовок и курьерской работы.

Так вышло, что мне не хватило 7 баллов для поступления на бюджет экономического факультета желаемого вуза в любимом с детства Питере. В конечном итоге я остался в Пензе, где родился и вырос, на специальности “Информационные системы и технологии”. Тем летом я также сдавал ЕГЭ по информатике, потому что в те времена этот экзамен был ну очень простой.

Я сопротивлялся грустной реальности где-то год. Преподаваемый язык программирования Си наводил на меня страх и ужас. Все лабораторные были скатаны у двух однокурсников, простенький код для курсовой по программированию был заказан за 1000 рублей. После летней работы курьером за 8000 рублей в месяц я стал понимать трагичность жизни с высшим образованием без знаний и нормальной работы. При мыслях о возможном отчислении из универа я видел на другом конце провода презрение общества, армию и пустоту в мыслях о будущем. Поэтому, не мечтая о программировании, я решил попробовать стать сисадмином.

Как я на самом деле стал специалистом

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

А дальше были попытки терроризировать HR местных компаний письмами с просьбой взять меня на работу, заход в аутсорсинг медиа-стриминга на 10 тысяч рублей в месяц и быстрый уход на другую работу, где в проекте использовался AWS. С этого момента я стал слышать слово DevOps гораздо чаще и начал углубляться в суть. Сразу понял, что DevOps -- это не что иное, как культура, которая решает насущные проблемы бизнеса в IT за счет технических и коммуникационных плюшек. Так появилась идея выйти за пределы “настрой-почини” в специалиста, который видит действительные проблемы внутри инженерной кухни и помогает их решать.

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

Это был тот самый каноничный Web-Operations lifestyle, вычитанный ранее из книг. В него помещались 5 движков баз данных на 15 кластерах, таких, как Cassandra и MongoDB. Там были попытки создать CI/CD pipeline, чтобы ребята могли деплоить свой монолит по 20 раз в день на сотню боевых инстансов EC2. Там был пресловутый on-call и подъемы в 3 часа ночи по московскому времени, когда в Штатах был пик пользовательского трафика. Там вылезали подводные камни того, что вы там вместе с разработчиками набедокурили днем.

Happy-end

Далее, через год после работы над iFunny, я нашел работу в Берлине, где и обитаю на момент написания статьи. Те 10 тысяч рублей в аутсорсе, что я получал за два года до переезда, уже кажутся чем-то, что с тобой не происходило никогда. Рост доходов, непрерывное обучение и райские условия работы в IT-компаниях уже кажутся само собой разумеющимися параграфами в твоей жизни. К хорошему быстро привыкаешь, правда ведь?

В итоге между моментом, когда я решил работать в IT и моментом, когда рекрутеры и коллеги начали произносить в мою сторону слова Senior Engineer, прошло чуть менее пяти лет. Это не было просто, но было очень интересно. Думаю, что дальше будет еще интереснее.

Вопросы

Какой совет дашь новичкам, который редко встречается или считается необычным, спорным?

Очень банальный совет, но никак не могу обойти его стороной: больше делай, меньше фильтруй и рефлексируй. IT это молодая индустрия, в ней нет протоптанной карьерной дороги или какого-то верного пути. Не занимайся перфекционизмом, ибо если ты джун, то все равно напишешь говн… эмм, код сомнительного качества, да и хорошего от тебя никто со старта не ждет.

Начинай работать в среде, где меньше барьеров. Скорее всего, это будет либо стартап, либо аутсорс-контора. Работай на скорость, смотри результаты, проводи работу над ошибками и фигачь дальше. Ибо будучи молодым и амбициозным бойцом, скорость -- это твой навык номер один со старта.

Менеджеры и лиды зачастую предвзяты к новому и субъективны -- и это нормально, ведь они такие же люди, как и ты. Поэтому самая верная обратная связь -- связь от системы, которую ты разрабатываешь. Чем быстрее ты вносишь изменения в систему, тем быстрее и точнее ты получаешь обратную связь.

Как ты сохраняешь свои навыки актуальными? Как постоянно растёшь и становишься лучше как разработчик?

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

Топ 3 книжек для новичка

Попробую оставить статью актуальной на ближайшие лет 5 и включу только классику, проверенную временем и сообществом:

  • Виктор и Наталья Олиферы: Компьютерные Сети
  • Эндрю Таненбаум: Операционные Системы
  • DevOps Handbook для понимания того, зачем вообще сегодня нужен DevOps и как он выглядит в каноничном виде

Топ 3 сайта/рассылки/источника-инфы на которые должен быть подписан каждый разработчик

Я забил на все рассылки, корпоративные и лично-технические блоги, ибо оно все заставляло меня постоянно реагировать на любой незначительный пшик в индустрии. Сейчас я слежу за новостями и новыми идеями в Telegram-каналах "Devops & SRE Library" и "DevOps Deflope News". Последняя тема это изначально подкаст о DevOps, который весьма интересно слушать.