Карьера в ABBYY: из сисадмина в DevOps-инженеры

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

Как стать таким специалистом и чем занимаются наши коллеги в отделе DevOps, рассказал Павел, руководитель этого направления в ABBYY.

Расскажи о своем карьерном пути и как ты попал в ABBYY.

Я окончил техникум по специальности «Автоматизированные системы обработки информации и управления» и устроился работать помощником системного администратора. В течение нескольких лет я дорос до старшего сисадмина, а затем стал начальником ИТ-управления.

Спустя некоторое время захотелось попробовать свои силы в ИТ-компании, которая разрабатывает цифровые продукты. Так, через системное администрирование я пришел к позиции DevOps-инженера – работе на стыке системного администрирования и разработки. За время в профессии я прошел путь от Junior до Senior DevOps Engineer и дорос до замглавы отдела DevOps. Последним проектом, которым я занимался до прихода в ABBYY, была разработка системы авторизации по биометрии в Казахстане. Задача довольно масштабная и интересная, но когда она перешла в разряд стабильной поддержки, я вновь стал искать новый проект, и так я оказался в ABBYY.

Почему выбрал именно ABBYY?

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

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

Чем занимается DevOps-команда ABBYY?

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

Первое — мы занимаемся написанием инфраструктурного кода для нового облачного продукта и ряда других сервисов. Также помогаем автоматизировать создание инфраструктуры в облаках, оптимизировать и ускорять сам процесс разработки от того момента, как начали писать код, до того момента, как код уже попадет в production-окружение и будет работать для конечных пользователей сервиса. Как правило, такие задачи приходят от бизнес-заказчиков.

Второе направление — мы занимаемся поддержкой (оптимизацией, рефакторингом) имеющейся инфраструктуры — пишем и внедряем CI/CD-инструменты, контролируем процессы развертывания и обслуживания инфраструктуры. Этот скоп задач мы формируем как внутри команды, так и получаем запросы от бизнеса.

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

Сколько человек работает в отделе DevOps и как устроена работа команды?

Сейчас нас восемь человек. Планируем, что когда нас станет 10, мы поделимся на мини-команды: тех, кто будет заниматься инфраструктурой, ее поддержкой, созданием и обслуживанием, и тех, кто будет работать с CI/CD-инструментами.

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

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

Всегда ли удается реализовать задуманное?

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

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

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

Какими ресурсами пользуются DevOps-инженеры, чтобы оставаться в курсе новостей?

Пожалуй, главный источник информации — сайт Cloud Native Computing Foundation (CNCF). Это организация, которая аккумулирует все выходящие open source-проекты. Мы постоянно изучаем новые инструменты и пытаемся понять, как можно их применить у себя.

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

Какой стек технологий используете в работе?

Для новой low-code/no-code платформы в качестве оркестратора используем Kubernetes, причем как «ванильный», так и OpenShift. Размещаем продукт в Azure Cloud и on-prem помощью наших серверов. В качестве баз данных используем MS SQL и PostgreSQL, а для брокера очередей — Redis Streams.

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

В этой работе мы скорее отталкиваемся от задач R&D-департамента. Если мы видим новый инструмент, который предоставляет лучшее взаимодействие, более простое обслуживание и высокую производительность по сравнению с тем инструментом, который мы используем сейчас, то конечно мы начнем его изучать, тестировать, сравнивать, и только тогда примем окончательное решение о его внедрении.

Приведу пример. У нас есть несколько уровней инфраструктуры, есть development-часть, где ведется основная разработка. Это та инфраструктура, в которой тестируются все новые микросервисы. Затем у нас есть staging-инфраструктура, где уже происходит тестирование более стабильных версий продукта, и продакшн. При внедрении новых версий Kubernetes и любых других инструментов мы должны пройти все эти шаги. Если в софте есть критичные баги, переход на новые технологии откладывается до того, как они будут исправлены. Поэтому обновление может занять как неделю, так и месяц, в зависимости от ситуации с конкретным компонентом программы.

Без каких знаний и навыков не обойтись DevOps-инженеру в ABBYY?

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

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

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

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

Есть ли в твоей команде стажеры и Junior-специалисты?

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

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

Есть ли разница, из какой сферы пришел специалист в DevOps?

Как я уже сказал, в DevOps приходят специалисты либо из области системного администрирования, либо из разработки. Правильного подхода нет, это просто два разных направления, у каждого из которых есть свои плюсы и минусы.

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

Если же кандидат пришел заниматься инфраструктурой из Backend-разработки, ему будет довольно просто внедрить новый инструмент. А если в нем не хватает какой-то функциональности, то он сможет ее самостоятельно дописать.

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

Есть ли открытые вакансии в твоей команде? Какие?

Сейчас мы ищем Senior DevOps и DevOps-инженеров, работающих со стеком Azure Cloud, Azure DevOps Server в качестве CI/CD и глубокими знаниями Kubernetes.

Нам очень важно, чтобы кандидат хорошо понимал Kubernetes и процессы CI/CD.

Чем увлекаешься в свободное время?

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

Career

Подписка на обновления в блоге

Вы будете получать статьи на почту первыми

Ваша подписка прошла успешно!

Я проинформирован о том, что я имею право в любое время полностью или частично отозвать вышеуказанное согласие. Данное согласие на обработку персональных данных может быть отозвано в любой момент. Для этого нажмите на ссылку «Отписаться» внутри любого письма, полученного от ABBYY, или заполнив форму Права доступа ABBYY к персональным данным.

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

Ваша подписка прошла успешно!

Читайте нас