15 февраля

Как стать DevOps-инженером и оказаться на стыке стабильности и эффективности всех процессов веб-разработки

Поговорили с Максимом Леоновым (Senior DevOps-инженер и, по совместительству, наш ментор) о том, кто такие девопсы, каков путь становления и что же вас ждет, когда его пройдете.
— Расскажи про себя: как пришел к этой профессии, где учился, какие-то курсы проходил?

— Я Максим, мне 28, живу и работаю пока в Минске. Как я стал девопсом? Так сложилось, что моя мама с детства направляла меня, "Макуш, учи информатику, будет на хлеб с маслом". Я особо не сопротивлялся, попал в лицей на физмат, затем поступил в БГУИР, по окончанию попал на распределение в банк. Отрабатывал системным администратором, параллельно учился и пытался "войти в айти". По иронии судьбы, отучился в TeachMeSkills на java-разработчика. Это были одни из их первых курсов, их я совмещал с еще одной работой. Разработчиком я так и не стал, много ленился и пропускал в обучении :)

К концу отработки искал наиболее эффективный путь, как можно попасть в IT-сферу. Ушел в другую компанию на позицию администратора, но со сменным графиком два через два, для того чтобы посвятить свободное время своему обучению. Тогда я целился в разработку и не оставлял надежд стать джава-программистом. Узнав от своего друга и бывшего коллеги, что существуют такие девопсы, я заинтересовался. Начал подробнее узнавать, кто такие, формировать представление, что они делают. И, по удачному стечению обстоятельств, я заполучил в одну из частных компаний тестовое задание на девопса, в мае 19-го года. Тогда я выполнил его за 3 месяца, получив приглашение на свое первое собеседование.


— А почему так долго? Везде такие тестовые?

— Нет, это мой индивидуальный путь, я был обычным сисадмином, который владеет рядовыми знаниями сети, администрирования систем на базе ОС Windows. Нужно было выучить огромный объем информации, а взять его неоткуда. На курсы не ходил — все сам искал. Качество изучения материала сильно хромало, потому что не понимаешь, — что из этого правильно, что неправильно, не ориентируешься в огромном потоке информации из интернета. А таск (задача) был слишком большой и непонятный, для его реализации надо было знать множество технологий. Там использовалось сразу все: и облачные сервисы AWS, и какие-то внутренние сервисы, и свои сервера, и docker, и git, и даже какая-то часть пайплайн CI/CD, — для меня это было всё незнакомо.


— Что в целом нужно знать, прежде чем устраиваться на работу?

— Как и у любой другой профессии, есть определенный стек (стек технологий или набор технологий). Он нужен для того, чтобы работать. И его спрашивают непосредственно на собеседовании. В моём случае это были знания по: линукс части, основы сетей и адресации в интернете, AWS, GitlabCICD, docker, docker-compose, основы kubernetes, английский уровня A2.

Если мы будем говорить про девопс в целом — я считаю, что он делится на некоторые категории. Есть девопсы, которые вырастают из администраторов, становятся девопсами в инфраструктуре, то есть они занимаются оптимизацией структуры и управлением серверов, а есть cloud или веб-девопсы, как я, которые больше занимаются разработкой совместно с командой разработчиков и т.д. У них отличается немножечко стек основной, и, в зависимости от этого, мы должны изучать определенные технологии. Если представить круги эйлера, то в них есть что-то отличное, но в общем и целом ядро у них совместное.
— Есть такое, что в компаниях эти функции выполняет один и тот же человек?

— Да, может быть что угодно, у девопса настолько широкая практика, что может быть девопс-разработчик, может быть девопс-сисадмин, девопс-инженер, кто угодно. То есть он совмещает слишком многое. Это слишком размазанная профессия. На текущий момент очень много девопсов, которые переросли из разработки, какие-то лиды, которые заменяют девопса на проекте и курируют девопс часть.


— А можешь рассказать, в чем вообще заключается профессия?

— Я не буду говорить про какие-то академические знания, я говорю про то, как это понимаю, чувствую и вижу, с чем я работаю. Есть команда разработчиков, которая создает продукт, на моей практике чаще всего это веб-продукт, и девопсы — это инженеры, которые позволяют этим разработчикам работать. Как правило, в их обязанности входит настройка инфраструктуры и environment (это среда разработки, в которой существует продукт). Обычно процесс делится на девелопмент часть, стейдж часть и продакшен, т.е. непосредственно конечный продукт, который видит пользователь.

В хорошей компании, на мой взгляд, существует девопс именно для того, чтобы создать корректное взаимоотношение между средой разработки и командой, между живой средой — продакшн средой и конечным пользователем. Автоматизировать все процессы, минимизировать ошибки, которые могут сделать люди во время разработки. И задача девопса — это, в первую очередь, создание инфраструктуры проекта, в котором мы находимся. То есть это какая-то выдача ресурсов, создание ролей, пользователей, разграничение ролей, выдача прав для различных пользователей и команд (когда у разработчиков — одни права, у тестировщиков — другие права, у пма — третьи). Чаще всего это регулируется на уровне структуры и создается девопсом.

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

И одна из главных задач девопса — это управление инфраструктурой проекта, его масштабирование и обеспечение отказоустойчивости системы, а также устранение уязвимостей. Просмотр нагрузки на проект, как приложение реагирует на события в текущий момент времени, сколько оно потребляет ресурсов, нужно ли нам эти ресурсы увеличивать или уменьшать, чтобы оптимизировать стоимость и ресурсы, затрачиваемые в проекте.


— Получается, девопсы подключаются на самом старте разработки проекта?

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

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

Но на практике бывает что угодно. Есть студенты, которые разрабатывают продукты, есть маленькие веб-студии, которые разрабатывают продукт без сторонних инженеров, есть fullstack-разработчики, а не просто фронт или бэк. То есть огромное количество людей, подходов, чего угодно, все мы люди и все мы разные :)
— Какие знания нужны, когда только идешь на курсы? Возможно ли пойти и научиться прям с нуля?

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


— А твои знания программирования? Они не помогали в этом?

— Мы не используем ООП так широко и часто, у нас свои фичи есть, свои сервисы и тулзы (tools, вспомогательное ПО, предназначенное для выполнения специфических задач), которые подразумевают свой язык разработки. Если мы говорим про Kubernetes — у него свой язык, у Terraform — свой. Конечно мы можем использовать Python-скрипты для оптимизации нашего кода и работы, но это не панацея. И на текущий момент, нужно ли знать девопсу питон, — это спорный вопрос. Будет плюсом, но не обязательно. Я в своей работе не использую ни один из классических языков программирования в полной мере.


— Получается администраторам легче войти в эту профессию, чем программистам?

— Мой ответ: однозначно да. Девопс очень похож на сисадмина, который узнал, что такое веб-технологии и вошел в IT-сферу. А еще из девопса очень легко вырасти в архитектора. Того, кто прогнозирует всю структуру. Если раньше архитектором были какие-то супер-лиды, которые познали большое количество технологий, использующихся в проектах, где и какие конкурируют и т.д., — то сейчас гораздо проще в архитектора вырасти с девопса.

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


— А курс на TeachMeSkills на кого больше рассчитан?

— Я думаю, он больше рассчитан на людей технически подкованных, но не специалистов. На людей, которые имеют представление, что такое комп, как он крутится-вертится, работали с ним, но без каких-то особых знаний. И, возможно, для нулевых. Зависит от преподавателя, просто придется больше разбираться :)
— Что насчет soft skills и коммуникаций? Ты много общаешься в команде? И на каком языке?

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

Английский нужен будет в любом случае, так как вы столкнетесь с проблемой блока в коммуникациях. На собесах спросят про уровень, даже если компания не использует его в работе. Вся документация на английском языке, все команды, используемые в программировании, тоже. Так или иначе мы работаем не на Беларусь, Украину или Россию.


— Можно ли устроиться с уровнем А2, а потом подтянуть его в процессе?

— Безусловно, я так устроился. Мой английский — это были школьные знания, компьютерные игры и документация. Все остальное я выучил непосредственно на работе.


— Приходилось приукрашивать свои знания на собеседованиях?

— Нет, это мой личный подход. Я никогда никого не обманывал, никогда не врал. Я говорил, что у меня такие-то знания и я знаю как делать это и это. Если я чего-то не знаю, то "к сожалению, я с этим не сталкивался ранее". Искренность всегда мне была только в плюс.


— Так как коммуникаций много, интровертам в профессии будет не очень комфортно?

— Нет, почему? На рынке существует огромный спрос и потребность в девопсах. Я, например, прошел за две недели 24 собеседования. И далеко не везде это огромные команды с регулярными коммуникациями. Иногда требуются и специалисты, которых не видно и не слышно, но надо, чтобы всё чётко работало.


— А в какие компании приглашают?

— Белорусских компаний не очень много, это в основном маленькие студии или гиганты аутсорса. Продуктовых почти нет. Но сложно вообще отслеживать, откуда пишут. Если не захожу на Linkedin, мне пишут в телеграмм, на почту, везде. Очень многие пишут из Украины, Польши, Восточной Европы.


— Это потому что у тебя есть опыт или на новичков тоже спрос?

— Нет, новичкам так не будут писать. Но так как спрос слишком большой, все равно будет перепадать.


— Как долго идет испытательный срок, когда ты уже устраиваешься на работу?

— Зависит от компании или студии, где ты будешь работать, от проекта. Но мы будем говорить о большинстве, чаще всего компании предоставляют три месяца. Мы ничем не отличаемся от классического разработчика. Я точно знаю, что я среди своих друзей и в своей семье первый айтишник. Но на текущий момент довольно много кто пришел в девопс. Кто-то работает в епаме, кто-то в варгейминге или где-то еще. И они были или бывшими админами, или вообще никем в сфере айти, и все они получали минимум 500 долларов на уровне испытательно срока. А то и больше.


— У тебя есть советы, как пройти собеседование? Какие-то тонкости собесов?

— Конечно, есть. Советую только то, чего придерживаюсь я.


— Быть честным? :)

— Да, быть честным! Если не знаешь — говори, "я не знаю". Можно смягчить свои слова, говори "я с этим не сталкивался, я не могу ответить на этот вопрос". Это смягчает углы.

Нужно быть вежливым, улыбчивым. У меня это в характере, поэтому мне это легко дается. Но я знаю точно, когда ты улыбаешься и шутишь, — ты просто снимаешь напряжение в две секунды. Я проходил собеседования, в том числе полностью на английском языке в европейские компании, Германию и т.д., где люди не знают русский. Ты начинаешь с какой-то шутки, заготовленной или нет — не важно, люди расслабляются, и потом говоришь, "извините, я не супер английский эксперт, это мой английский, которой есть, надеюсь мы найдем общий язык". И люди к тебе располагают.

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

Выучить технологию это временно — а быть человеком надо всегда :)

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


— А сколько этапов было?

— Из 24 собеседований большинство предлагали этап собеседования с hr-ом, это первичное выяснение твоих скилов и навыков, они запрашивают по определенным скриптам твой уровень владения технологий, чем ты пользовался, что ты знаешь. Если это будет джун, то будут спрашивать, имел ли ты опыт работы с каким-нибудь сервисом, какими технологиями и, может, есть ли какой-нибудь тестовый проект на гите. Но это редкость.

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

Последним этапом ждём фидбэк, обычно его передаёт hr-специалист спустя какой-то срок согласования, результатом будет оффер или отказ.


— Новичкам одинакова важна и теория, и практика?

— Любой пробел скажется. Вы поймете на собеседовании, что и где не понимаете, как сделал я. Я прошел четыре собеседования, составил себе лист вопросов, которые у меня были от интервьюеров и на которые я не смог дать ответ. Так я получил четыре отказа и на 5-ом собесе я получил оффер на $2500. Просто потому что подготовился, это не сложно.


— Получается можно в начале походить на собесы, которые тебе не сильно интересны, чтобы подготовиться к тому самому, куда именно хотел бы устроиться?

— Ну не факт, что мы угадаем. У каждой компании свой список технологий. На текущий момент мы имеем слишком большое выбор среди технологий по каждому из направлений и, ответив на ответы в одной компании, мы не факт что попадем в вопросы другой компании.

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

Если мне говорят, что у вас проблемы в сервере, что мы не можем достучаться, твои действия? Я должен сказать, что должен знать, открыт ли порт, какие правила там, доступен ли сервер с этого региона и т.д.

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


— Отлично, вот мы устроились, какой дальше идет карьерный рост? Как быстро растешь от позиции джуна и дальше? И какая зарплатная вилка?

— Зависит от всего :) И от погоды, если ты болеешь — ты не сможешь учиться. Но нужно быть готовым, что айтишник/девопс/разработчик — это человек, который учится нон-стоп. Ты не можешь сказать, что теперь я знаю достаточно и тебе не нужно учить. Нет. Если ты подписался — значит все, будь готов развиваться.

Говоря обо мне, я считаю, что мне повезло и я вступил в профессию мягко. После того, как я получил предложение о сотрудничестве, я работал там некоторое время бесплатно, месяца полтора. Потом три месяца за полставки, ну то есть в полную меру, но за пол статьи, так сказать, что-то около $300. Потом получил свою первую заработную плату, сравнимую со средней зарплатой джуна-программиста. В тот момент я развивался внутри компании, проходил курсы на udemy и ютуб.

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

Есть специализированные компании, которые это делают, как епам, или сам развиваешься. Ну и часто мы работаем овертайм. И пока ты джун, рассчитывать на переплату не нужно. Это не будет твоя обязанность, ты можешь работать свои 8 часов и уходить, но развиться быстрее не получится.

Хочешь развиваться — развивайся, IT — это твоя жизнь. Ты потом думаешь об этом, разговариваешь об этом, узнаешь что-то, это занимает твою жизнь на столько, на сколько может занять. Ты это любишь, иначе бы уже не делал. Или ты плохой специалист и будешь джуном/мидлом всегда.

Но если тебе снится код, значит ты уже выгораешь. Съешь кит-кат, сделай перерыв. Отвлекись на хобби, сходи на свидание.

Спустя полгода мне повысили зп еще на 30%. Была такая практика в компании — рассмотр твоих скилов и навыков, что ты выучил и узнал. И тебе повышали или не повышали зп, в зависимости от того, чего ты достиг.

Часто в компаниях ты приходишь и прописываешь свой рост. Я хочу по истечению такого срока выучить такие и такие технологии, знать такие и такие сервисы, познакомиться с такими паттернами разработки. И ты потом говоришь, вот мой список, это я ачивнул (достиг), хочу плюс $200. Они просто будут приперты к стенке, раз ты это обозначил заранее и показал результат своей работы — вариантов не будет.
— А сколько просить, чтобы не продешевить?

— Я бы сказал людям не наглеть, айтишники и так получают достаточно. Зарплаты в $300 хватит, чтобы прожить в Беларуси. Зарплата в $600 уже выше, чем у моей мамы со стажем 20 лет. Если вы через год будете зарабатывать $1000, вы не потерпите год за $500? Смешно. Мы вкладываемся в свое будущее, будущее отплатит нам.


— Как дальше развивалась твоя карьера?

— Чуть больше года я отработал в чудесной частной компании, но там места для джуна/мидл девопса не было. Я подхватывал маленькие проекты, где-то страховал лидов, разработчиков и так далее, настраивал какие-то сервера. Я не сопровождал ни один из проектов, и учить меня не было ресурсов и возможностей. Все техлиды были заняты, и я пошел на курсы епама, для того чтобы апнуть (повысить) свой скилл.

У епама вышел курс по клауд девопс, а я учил амазон изначально и записался на этот курс. Чтобы попасть на него, нужно пройти собеседование с hr-ом. Она позвонила мне, начала задавать вопросы и предупредила заранее, что этот курс рассчитан на трудоустройство, то есть я должен уволиться с компании и все время уделять курсу. Он длился 4-5 месяцев.

Я сказал, что мне это не интересно, работа у меня есть, я не хочу уходить, был бы рад просто поучиться у вас, чтобы себя улучшить. И мне девочка предложила пройти собеседование, раз у меня есть опыт. Я согласился, и мне позвонила hr, которая непосредственно хантит людей на вакансию девопса. Она спросила, сколько хочешь, я там наобум назвал сумму на 70% выше текущей зп, т.к. цели трудоустроиться у меня не было. Я хотел узнать, чем пользуются девопсы, какие технологии стоит заметить и что учить дальше. Хотел составить собственный план развития. И мне назначали собес с техническими специалистами.

В епам большое количество вакансий, у меня был собес сразу на три позиции, и три лида почти два часа задавали вопросы о технологиях, как и что работает. По окончанию собеса мне дали 2 оффера, в направлении Big Data и AWS. На зп, которую я попросил.

И это была большая проблема для меня, потому что я уходить не собирался. Мне нравилась моя компания, меня все устраивало, я развивался там, пусть и не так быстро, как я мог. Но я пошел к начальнику и сказал, слишком большая разница в сумме, чтобы я мог это игнорировать. Мне сказали, Максим, нет для тебя места на такую зп, иди учиться и потом вернешься. До сих пор искренне благодарен этой компании и опыту в ней :)


— Сколько по времени ты растешь от джуна до мидла и дальше?

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

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

До сеньора расти от 2-х до 4-х лет. Из-за большого спроса зп сеньора минимум от $3000 до $7000, в зависимости от компании.


— А техлиды?

Очень тонкая грань между сеньором и лидом. Лид ответственен за весь проект, ты как мини архитектор. И зп лида зависит от проекта, может быть и $7000, и $8000, и $10000. Это более редкие зп, потому что редкие вакансии. От сеньора до лида сложно определить рост, так как нужно научиться управлять персоналом.

Сеньор разбирается в своей технологии на отлично, лид может сравнить и привести аналог. Он должен знать, что есть другая технология, которая делает то же самое, но с какими-то особенностями, которые могут быть выгодны в другом проекте. И должен принять решение о наилучшем подходе в разработке на данный момент. Лид анализирует, сравнивает эти решения, разрабатывает план работы, не только для себя, но и команды, и пишет тайминг, овертаймы. То есть полу-пм, полу-техлид, полу-сеньор.

Самая высокая должность — это архитектор. Человек, который занимается сугубо разработкой проекта с точки зрения инфраструктуры и продакшена. Коммуницирует с заказчиком и находит наиболее эффективное решение для проекта. То, что будет видеть конечный пользователь, как это будет работать. Это большой интеллектуальный труд в плане постановки процессов работы на проекте. Ты разрабатываешь инфраструктуру всю, взаимодействие на проекте, стратегию работы, сколько тебе нужно специалистов, какие специалисты, что они будут делать, почему они будут делать именно это. И разговариваешь с заказчиком, работаешь с их ТЗ, создаешь свое ТЗ, какие-то задачи, agile и многое другое. Это уже прям спецы.


— Коллеги выше по званию менторят на проектах?

— Например на моём первом проекте я был единственным девопсом, спустя какое-то время собралась команда уже из 5 девопсов, где и был мой лид. Он давал мне таски, учил практикам и подходам. Тогда я вырос очень сильно, буквально за несколько месяцев. Потому что он направлял меня, ругал и хвалил. И да, они всегда помогают, если на это есть время. Все заинтересованы в том, чтобы проект работал эффективно, а значит и взаимопомощь обязательна.


— Какая самая любимая часть работы для тебя? И какая самая не любимая?

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

И те задачи, где мне приходится узнавать от заказчика что-то. Чаще всего это англоязычный специалист, и нужно грамотно построить вопросы, чтобы получить грамотный ответ. Коммуникация в русском языке довольно простая — ты понимаешь, что говоришь. На английском чуть тяжелее лично мне. У меня уровень B2+, может быть. Говорю хорошо, но не супер идеально, и часто возникают вопросы.

А самое трудное, что было для меня, — это первый предпродакшн. Девопс подготавливает всю инфраструктуру, чтобы задеплоить ее в продакшн, то есть это самая прямая, самая большая ответственность на проекте. И все миты (встречи) с заказчиками проходят при включенной вебке. Я сижу, краснею, обливаюсь потом, у меня тачпад не срабатывает из-за мокрых пальцев, так как уровень ответственности огромный и, естественно, ноутбук чувствует твой страх и глючит в самый неподходящий момент. Сидишь, переживаешь, что-то говоришь, бэкаешь-мэкаешь, пытаешься отшутиться. Особенно если видишь какую-то проблему и тебя начинают давить: "Максим, почему так? Почему не так?"

И ты в мыслях: "это вообще не я разрабатывал, не знаю", а вслух: "sorry, guys, it seems that some of the technical problems" :)
— С опытом это проходит или все также нервно?

— Зависит от людей :) Не знаю, посмотрим.


— Давай парочку советов, какие книги почитать, на какие блоги подписаться, чтобы окружить себя всей этой средой и обучаться.

— У меня на самом деле нет списка любимых авторов, ссылок. У меня гугл. И я приверженец того, если ты в чем-то не разбираешься, есть документация. Если ты работаешь в Terraform, первое, куда мы идем, — это документация. Всегда. Чтобы ты не делал, у тебя какая-то проблема, ты лезешь на официальный сайт этого продукта. Если там не нашел проблемы, тогда начинай гуглить и лазить по форумам.

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

Совет любому инженеру, девопсу, программисту, разработчику — это учиться, просто не останавливаться. Мы не можем останавливаться и не относиться к этому с душой. Я вижу, как многие ребята работают и злятся на что-то, что кто-то не справился с задачей, перекидывают ответственность. Чем легче ты относишься к работе — тем легче тебе жить. И зачем вообще напрягаться :)

Мы слишком много тратим свою жизнь на работу, чтобы относиться к ней плохо. Я не буду скрывать, первое, за чем мы идем, — это за деньгами. Попытайся найти помимо денег какую-то выгоду. Есть люди, которые получают деньги, чтобы тратить потом на хобби. Это тоже круто, когда у тебя есть цель. Если цели нет — тогда работай в удовольствие!
Классический стек технологий для девопса (мидла и джуна)

  1. Девопс всегда работает с гитом.
Ты работаешь с разработчиками, это всегда гит.

2. У девопса всегда есть что-то, позволяющее с помощью кода описать структуру проекта (IAC).

Это Terraform, Ansible или какие-нибудь еще код-формешйн. Есть проекты, где используются по 2-3, но это огромные проекты. Если мы говорим о разработке с нуля — никто не будет использовать два сервиса, т.к. это усложняет управление проектом.

3. Любой девопс работает с тулзами CI/CD (Continuous Integration/Continuous Delivery).

Это может быть Jenkins, GitLab CI/CD пайплайны, Azure DevOps Services. Тулза, которая позволяет автоматизировать процесс сборки проектов без участия человека, чтобы избежать ошибки и ускорить процесс разработки, автоматизировать и унифицировать его.

4. Девопсы работают в зависимости от направления.

Это клауд девопс, как я. И в зависимости от направления ты выбираешь свои скиллы. Я работаю в Амазоне, я знаю сервисы Амазона и я должен их знать. Это мой стек обязательный, без этого я никуда. Выкинуть из моего стека AWS — я буду никто. Человек, который знает Jenkins и Docker, этого мало.

Если ты не клауд девопс, то ты должен знать хорошо Linux или Windows (или где ты там работаешь).

5. Linux, Unix без них никуда. Понимать нужно вдоль и поперёк и хорошо в них разбираться.

6. Контейнеризация и микросервисы. Все девопсы работают с контейнерами.

Либо это код, который вертится в облаке, но под собой это все равно контейнер. То есть мы должны знать, как они работают, масштабируются и управляются. И уже над контейнерами всякие оркестрации Kubernetes и прочее.

Джуны начинают с каких-то одних технологий, потихоньку развивая свои знания и умения, совершенствуя их. Выучив следующую и следующую технологию, познают полную картину мир. Всё как и в любой другой сфере.
История про Кипр

— А сколько закладывать времени на собеседования?

— В августе поставил LinkedIn по приколу, когда купил новый телефон. Там, видимо, отобразилось, что я онлайн, — и мне пришло 140 инвайтов на собесы. Я подумал, что когда контракт будет подходить к концу, а именно январь, я похожу по собеседованиям.

И вот я начал проходить собесы в ноябре.

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

Я чувствовал себя сильнее и увереннее, потому что имел уже хороший опыт в коммерческой разработке, начал во многом разбираться и мог решать задачи несколькими путями. Я хотел узнать рынок, что он предлагает, какие технологии использует. Попробовать, потрогать, попроходить собесы. Вот я и доигрался, получил 10 офферов в сумме.

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


— Это было их условие? Завершить контракт досрочно?

— Нет, не было. Компания, которая сделала мне уникальное предложение, набирает людей только в Европе. Но я понравился команде, в которой я счастливо работаю. Я прошел очень длинное собеседование, самое длинное, которое у меня было. Было 4 этапа, минимум по часу каждый, плюс я собирал большое количество рекомендаций от своих коллег. И они открыли для меня вакансию в Минске с тем условием, что я переберусь затем на Кипр.
Над материалом работала Карина Старкова

Стань востребованным IT специалистом

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