AZURE DEVOPS: ОТ ТЕОРИИ К БОЛЬШОЙ ПРАКТИКЕ

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

Более 95 % компаний из списка Fortune 500 выбирают Microsoft Azure для реализации масштабируемых, экономически эффективных решений для своего бизнеса. Это говорит о том, что DevOps-инженеры в этой дисциплине трудятся над интересными проектами и постоянно развиваются, осваивая новые тренды и технологии. О том, кто такие DevOps’ы написано много статей, а о практике Azure DevOps и ее особенностях, проектах и комьюнити, возможностях профессионального роста и обучающих программах мы поговорим с Максимом Зарубиным, руководителем практики в EPAM.

О СЕБЕ

Карьеру в сфере ИТ я начинал как системный администратор, а в EPAM пришел уже на должность Senior systems engineer. C Microsoft Azure мое знакомство началось с первого проекта в компании, где мы разрабатывали решение для одной популярной DAM (digital asset management) системы.

В то время Azure не пользовался популярностью, а его сервисы казались довольно сырыми, но они были интересными и перспективными. Имея опыт работы с hardware — инсталляция «железа» в дата-центрах, его настройка и конфигурирование — не мог не оценить возможность получить те же опции за считанные секунды в облаке. Никаких долгих перелетов, покупки оборудования, его установки, настройки ОС и сети — такие сервисы очень вдохновляли.

На второй проект я зашел уже в роли Delivery manager. Мы работали над непростой задачей, о которой я расскажу немного позже, и собрали отличную команду — с этого момента началось формирование первого подразделения Azure в компании. Но начать рассказ, наверное, стоит с того, что же такое «клауд».

AZURE CLOUD

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

Любой облачный провайдер, в том числе Azure, предлагает 3 варианта для хостинга ресурсов:

  • Infrastructure-as-a-Service (IaaS) — «инфраструктура как сервис». Классический вариант, к которому все привыкли: мы можем управлять сетью, виртуальными машинами, операционными системами, базами данных. Этот вариант дает максимальную свободу действия, но несет в себе и максимальную ответственность, как за безопасность, так и за поддержку.

  • Platform-as-a-Service (PaaS) — «платформа как сервис». Заветная мечта многих клиентов — сократить расходы на обслуживание и внедрение. Благодаря PaaS решениям, нам не нужно управлять ни сетью, ни операционной системой, все это делает облачный провайдер.

  • Software-as-a-Service (SaaS) — «ПО как сервис». Клиент не управляет никакими инфраструктурными компонентами и даже не разрабатывает приложение. Это готовый набор приложений с возможностью конфигурации функционала по подписке. Пример таких решений — это Teams, Exchange Online. 

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

О ПРАКТИКЕ AZURE В EPAM

В EPAM практика Azure DevOps начала формироваться в 2016 году, изначально в ней было пять специалистов включая меня. На тот момент мы делали автоматизацию при помощи PowerShell, Azure Resource Manager еще только зарождался, но мы активно использовали его с первых дней.  Классические виртуальные машины в классических сетях, Infrastructure-as-a-service реализация – с этого все начиналось.

Первым проектом практики была DAM система для крупной американской компании. Команда инженеров разрабатывала продукт, а команда DevOps занималась CI/CD решением и поддержкой продакшн-решения. Применялся подход Infrastructure-as-Code, активно использовали Azure Resource Manager. Этот проект позволил команде более глубоко изучить cloud работая над системой, которая находилась в продакшене и была доступна реальным пользователям.

Каким виделось будущее Azure в 2010, как выглядит его настоящее в 2021

В 2010 году я был уверен, что нативные сервисы клауда будут востребованы и широко распространены к 2021 году, поскольку их менеджмент проще, они не требуют инсталляции и предоставляются как платформа или готовый софт. Десять лет назад они только начинали развиваться и мы, как истинные энтузиасты, использовали их, несмотря на большое количество сложностей и ограничений. Сегодня это уже полноценные и развитые сервисы, которые используются на реальном продакшене. Мои ожидания начали оправдываться в 2020 году, cloud native — это уже устойчивый тренд среди мировых компаний, а для многих даже свершившийся факт.

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

Популярность не только Azure, но и AWS (Amazon Web Services), да и всех клаудов резко возросла в последние годы. Во-первых, потому, что использование облака выгоднее для бизнеса. Сейчас в мире мы можем наблюдать процесс перехода от культуры классического потребления, а именно от инвестиций в инфраструктуру и железо, к получению сервисов по модели pay-as-you-go, когда можно оплачивать использование инфраструктуры только за тот период, когда она действительно востребована. В классическом сценарии запуска проектов были необходимы затраты на аренду помещения, покупку оборудования, сервера, на настройку. И, если все это нужно только на несколько месяцев, что делать с оборудованием по окончании проекта? Облако позволяет воспользоваться всем необходимым и оптимизировать расходы. Это выгодно: экономия средств, ресурсов и времени.

Кроме того, рост интереса к Cloud Azure связан с тем, что, поскольку это важный стратегический продукт для Microsoft, компания не жалеет средств на его развитие, разработку новых функций и совершенствование старых. Добавляет привлекательности этому облаку в глазах энтерпрайз-клиентов и наличие большого пакета продуктов Microsoft, которыми можно воспользоваться. Сложно представить крупную компанию, которая не использует Exchange, Teams, Outlook, SharePoint. При переходе на Azure Cloud эти сервисы тоже переводятся в формат работы software-as-a-service, что выгодно для энтерпрайз-клиентов.

Благодаря удобству и возможностям, которые Cloud Azure предоставляет бизнесу, он стал популярным и востребованным среди наших клиентов — это дало толчок для роста и развития практики.

ЭКСПЕРТИЗА ПРАКТИКИ

Всего в компании более 8000 клауд-инженеров, несколько сотен из них имеют Primary skill именно в Azure Cloud. Наша дисциплина Azure в EPAM объединяет более 100 cloud-инженеров, около 20 технических лидов и не менее 10 архитекторов.

Практика распределенная, это значит, что члены команды находятся в разных странах мира: Беларусь, Казахстан, Армения, Грузия, Литва и Россия. Несмотря на то, что территориально все живут в разных уголках земли, команда поддерживает тесный контакт благодаря возможности работать онлайн, делится знаниями и опытом, помогает друг другу развиваться и проводит совместные разработки.

Люди — самая важная составляющая успеха любом деле. Практика Azure — это, прежде всего, объединение Azure-ориентированных специалистов, постоянно развивающих свои навыки благодаря изучению новых фич Azure и обмену опытом.

Рассказывая о нашей дисциплине, мы, обычно, показываем этот слайд:

О первых двух блоках я уже рассказал, скажу по паре слов и о других.

КОМПЕТЕНЦИИ

Ключевые компетенции практики — DevOps направление и cloud-engineering.

В Cloud-engineering — это, в первую очередь, работа с Infrastructure-as-Code и configuration management, что предполагает использование Azure Resource Manager и Terraform, PowerShell Design State Configuration, а также Ansible.

В компании выстроена довольно зрелая компетенция, более того мы даже создали в EPAM акселератор Landing zone (он нужен чтобы лэндить приложения наших клиентов во время миграции в Azure Cloud или же для централизованного управления ресурсами).

Вторая важная часть компетенции связана с software development life cycle и с процессами continuous integration и continuous delivery. Здесь мы чаще всего используем Azure DevOps Service со всеми его составляющими: пайплайны, репозиторий, борды. Мы также разработали акселератор Cloud native Pipelines — масштабируемое CI/CD решение, которое позволяет за считанные дни с ноля построить CI/CD и начать разработку.

Активно развиваем компетенции в Cloud native development: .Net, .Net core, Java.

КЛИЕНТЫ И ПРОЕКТЫ

Сейчас дисциплина Azure DevOps в EPAM концентрируется на миграционных проектах, обычно — из Onprim в Azure.

Можно выделить несколько типов:

1.    Миграционные Lift & Shift проекты, когда workload-ы клиента переводятся в публичное облако Azure с сохранением виртуальных машин, операционных систем, без изменений в приложении. Основное внимание уделяется автоматизации проектов, используются infrastructure-as-a-code подходы и configuration management.

2.    Проекты, в которых при миграции необходимо редевелопить приложение на более современную архитектуру, часто микросервисную. В практике активно используется Azure Kubernetes Service, а также построение CI/CD пайплайнов при помощи Azure DevOps Services для организации беспрерывной поставки кода.

Нужно понимать, что, на данный момент, практически все крупные компании используют один или несколько клаудов и enterprise клиенты часто выбирают именно Azure.

К примеру, сейчас мы начинаем проект для французской логистической компании, которая приняла решение о миграции в public cloud Azure. У них около 2000 серверов и 4 дата центра на разных континентах. Мы делаем для клиента разработку лэндинг зоны, ассесмент инфраструктуры и их приложений, осуществляем миграцию приложений в облако Azure.

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

ЛИЧНЫЙ ЧЕЛЛЕНДЖ

Сейчас у меня уже большой опыт работы с крупными компаниями, на счету множество проектов для важных клиентов. Но, если вы спросите меня, какой из них был самым сложным, то я честно скажу — один из первых, на которые я зашел вместе с командой EPAM. Моим challenging project стал именно тот, во время работы над которым сформировалась наша практика. Тогда я работал на позиции Senior software engineer и впервые столкнулся с ролью Delivery manager (сейчас уже правильнее говорить Service Delivery manager).

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

Чемодан-вокзал-самолет, командировка к клиенту, presale и старт проекта, discovery, миграция — команда справилась с работой за полтора года. Главная сложность была в том, что это крупный клиент, у которого только в России было около 1000 магазинов — достаточно большой scale. Сложнее всего было синхронизироваться по времени. В России на тот момент насчитывалось около 12 часовых поясов, а наша команда была распределенной (Казахстан, Беларусь и т. д.) — разница во времени усложняла работу инженерам и создавала множество трудностей в управлении командой. Но, мы справились — проект был успешным, мне удалось развить в себе менеджерские навыки, а команда стала ядром, на базе которого впоследствии сформировался наш первый Azure Unit.

ОБУЧЕНИЕ И КАРЬЕРНЫЙ РОСТ

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

Есть курсы для тех, кто желает войти в практику, а есть и для тех, кто планирует развиваться в ней:

  • «Hire to Train» — индивидуальная модульная менторинг программа, за прогрессом в которой следят тренеры (специалисты практики Azure в EPAM): оказывают помощь, консультируют и проверяют задания. План обучения составляется с учетом уровня знаний и опыта каждого отдельного кандидата. Основные модули: Docker и Kubernetes, Azure DevOps Services и Azure Public Cloud. Если обучающийся уже хорошо знаком с одним из них — этот блок исключается. Программа открыта в тестовом варианте с 2020 года и уже более 30 специалистов успешно завершили обучение и работают в проектах по всему миру. Курс создан для системных инженеров с опытом работы с компьютерными сетями и серверами, экспертизой в базах данных и операционных системах, уровнем английского языка не ниже B1. Программа позволяет овладеть необходимыми инструментами и навыками для работы c Azure Cloud по DevOps направлению (Infrastructure as code, Continuous Delivery, Containerization) и успешно пройти собеседование на позицию Azure DevOps инженера в проекты для крупных клиентов EPAM.

  • В Azure практике существует несколько бесплатных программ, для обучения по направлению DevOps с «нуля», окончив которые студенты получают возможность пройти стажировку в лаборатории (DevOps Lab). Найти подходящий курс или зарегистрироваться на практику в лаборатории удобнее всего на сайте EPAM Training Center.

 Техническая экспертиза, которую развивает практика, поддерживается бесплатными квалификационными программами по направлениям Azure Cloud и разработке Microsoft, а также Kubernetes и Terraform.

Приветствуется участие инженеров в акселераторах (research&development), так как они дают возможность работать частично или full-time над созданием продуктов проводить исследования новых технологий, появляющихся в облаке. Благодаря этому команда постоянно находит что-то новое и полезное для себя и для клиентов.

КОМЬЮНИТИ И СОБСТВЕНЫЕ РАЗРАБОТКИ

Самая продуктивная команда та, где налажено общение и обмен опытом, поэтому в наши дни невозможно не признавать силу нетворкинга и комьюнити.

У Azure есть свое собственное сообщество – «Azure times», которое регулярно проводит мероприятия, где команда делится новыми фишками и обсуждает обновления в облаке.

А в специальном «Exellence-центре» практики инженеры обмениваются опытом и знаниями, собирают best practices, на основе которых мы создаем собственные уникальные продукты.

Например, в скором времени практика Azure в EPAM планирует совместно с Microsoft выпустить на рынок два собственных продукта (о которых я уже упоминал):

  1. Cloud native pipelines — посвящен CI/CD решению на базе Azure DevOps Service. Эта разработка будет одинакова удобна в применении как для клиентов, только начинающих работу с CI/CD, так и для тех, кто использует Azure DevOps, но сталкивается с проблемами масштабирования и менеджмента. В новом решении проблемы такого характера были учтены и проработаны.

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

О НАСТОЯЩЕМ И БУДУЩЕМ

2020 год и пандемия многое изменили как для команды, так для компании и бизнеса, да и для мира в целом. Новая реальность создала предпосылки для ускоренного развития нашей практики. С переходом большинства привычных процессов в онлайн и скачком спроса на ИТ услуги, инфраструктуру —публичные облака стали набирать популярность. Буквально в первые месяцы пандемии у Azure и других клаудов не хватало мощностей, чтобы удовлетворить спрос.

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

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

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

ИДЕАЛЬНЫЙ DEVOPS-ИНЖЕНЕР ДЛЯ ПРАКТИКИ AZURE

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

Какими знаниями нужно обладать, чтобы попасть в ряды Azure DevOps’ов? Мы с командой постоянно думаем над портретом такого человека, рисуем его — а получается мифическое существо с четырьмя руками и двумя головами. Дело в том, что нужно владеть достаточно большим инструментарием, который включает Windows и Linux миры, знание сетей, умение автоматизировать, навыки осуществления миграции и многое другое. Количество требуемых скиллов огромное.

Но если без шуток, то необходимый минимум — это Azure и его сервисы, навыки Infrastructure as Code, знание Azure Resource Manager и Terraform. Не обойтись и без основ — потребуются общие базовые инжиниринговые скиллы: сети, базы данных и веб-сервера, скриптинг, PowerShell, python. Важно владеть основными платформами Kubernetes и Doсker, а также иметь навыки работы с сервисными CI/CD решениями.

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

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

Даже тем, кто считает себя обладателем «гуманитарного» ума, стоит попробовать свои силы в DevOps. «Математический» образ мышления не приобретается при рождении, он нарабатывается в процессе обучения. Поэтому стать Azure DevOps инженером может каждый, кто приложит достаточно усилий, не зависимо от пола, первичного образования. Если есть желание развиваться в этом направлении — у вас получится. И таких примеров в нашей практике много.

Источник: https://habr.com/ru/company/epam_systems/blog/650989/


Интересные статьи

Интересные статьи

Привет, Хабр! Что означает надпись 100 min на стартерной аккумуляторной батарее (АКБ)? Минимум 100 ампер реального пускового тока, 100 дней срока службы, или, может быть, 100 мин в значении неприятн...
В прошлом году на митапе "Dynamics 365 & Power Platform meetup Moscow — 25 февраля 2020" я рассказывал про то как мы выстроили пайплайн непрерывной поставки CI/CD на базе ...
В прошлой части мы поговорили о советах директору по разработке бизнес-процесса в Битрикс24, сейчас же я постараюсь дать советы руководителям отделов, поскольку по моему опыту почти всегд...
Theory is when you know everything but nothing works. Practice is when everything works but no one knows why. In distributed systems, theory and practice are combined: nothing works and no one...
Магистратура — логичный формат продолжения учебы в университете для тех, кто закончил бакалавриат. Однако студентам не всегда понятно, куда идти после выпуска и, самое главное, как перейти от тео...