Как (не)вырастить армию DevOps-инженеров
Привет, Хабр! Меня зовут Филипп Игнатенко, два года назад я помог запустить одну из крупнейших образовательных программ по подготовке DevOps-инженеров в России. Сегодня в ней участвуют 35 вузов, а количество студентов уже превысило 12 тысяч человек. В «Базисе» я руковожу блоком разработки платформенных сервисов и знаю, насколько остро стоит проблема нехватки квалифицированных девопсеров. Это как невозможность притупить голод — сколько бы специалистов ты ни набрал, их все равно не хватает.
Индустрия растет, компании растут, задач становится больше. И даже если у тебя достаточно девопсеров (но есть деньги) — ты никогда не откажешься от еще одного. Только вот где его взять? Ситуация на рынке такая, что даже текущие потребности можно закрыть с большим трудом, большая часть кандидатов — новички, которых нужно доучивать, а иногда и переучивать. Хотелось найти какое-то решение, которое не просто закроет текущие потребности, но и создаст задел на будущее.
И два года назад мы решили зайти с другой стороны и открыть собственную программу подготовки DevOps-инженеров. Но не в формате платного курса «Отдай 100К и войди в айти», а как часть академического обучения. Идея была простой: мы даем вузам нашу платформу за символическую плату (если точнее — за рубль), подготавливаем методические материалы, составляем практические задания и на базе этого всего создаем программу обучения. Не просто «вот вам софт, разбирайтесь», а полноценный образовательный курс для преподавателей и студентов, который поможет готовить реально нужных рынку специалистов. Начали с сотрудничества с ведущими техническими вузами страны — МИРЭА, Бауманкой, УрФУ и Станкином.
Почему существующая система не работает
Перед тем как создавать программу, я несколько лет преподавал на популярных образовательных платформах. И понял, как улучшить существующую систему подготовки DevOps-инженеров.
Многие площадки для обучения изначально предлагали только сложные курсы для повышения квалификации уже опытных специалистов. Но постепенно, под давлением рынка, стали делать программы и для новичков. И тут начались проблемы.
Типичная картина: вечером, после работы, человек садится слушать лекцию. Два раза в неделю, пять месяцев подряд. В конце курса делает учебный проект. А дальше… дальше его учат вписывать этот проект в резюме как реальный опыт работы. И вот приходит к тебе такой кандидат, формально с опытом, а по факту — с одним пет-проектом.
Такой подход сильно упрощает представление о том, что такое DevOps-инженер. Настроить CI/CD-пайплайн или развернуть контейнеры в Kubernetes — это лишь верхушка айсберга. DevOps-инженер должен понимать полный цикл разработки, знать, как работает инфраструктура, разбираться в мониторинге и логировании, уметь автоматизировать процессы и, что особенно важно, видеть картину целиком. К сожалению, максимум, который можно выжать из курса (тот же учебный проект, каким бы сложным он ни был), не является тем, что нужно отрасли. А нужно более комплексное, системное образование будущих специалистов.
К тому же современный DevOps неразрывно связан с безопасностью. DevSecOps — это не просто модный термин, а необходимость. Нужно понимать основы информационной безопасности, знать, как защищать инфраструктуру, как работать с секретами, как проводить аудит безопасности. Этому невозможно научиться за пару вечерних занятий в неделю.
После таких курсов мы часто видим среди кандидатов две крайности. Первые настолько не уверены в своих силах, что готовы работать за еду, лишь бы кто-то взял их в команду. Вторых же убедили, что пары выполненных учебных заданий достаточно для зарплаты уровня мидла. Самое печальное, что и те, и другие — жертвы подхода к обучению, который не дает реального понимания профессии.
С другой стороны, курсы не могут (да и не должны) нести ответственность за то, как в итоге обучился специалист. Дали материал, приняли финальную работу — и до свидания. А научился ли человек реально решать производственные задачи, понимает ли он, как работать в команде, как справляться с инцидентами, как планировать развитие инфраструктуры — это пусть работодатель сам выясняет на собеседовании или на испытательном сроке.
Учить учителей
Когда мы начали разрабатывать свою программу обучения, то первым делом решили уйти от вышеописанной порочной практики. Нам нужно было сформировать более основательный подход.
Работа с вузами потребовала совершенно иного взгляда на подготовку специалистов. В андрагогике (науке об обучении взрослых) есть важное понимание: нельзя учить преподавателей так же, как обычных слушателей курсов. У работающего преподавателя своя специфика: с одной стороны, у него часто нет возможности сидеть на лекциях — есть основная работа, занятия со студентами. С другой — ему недостаточно просто освоить технологии (часто это самая простая часть), нужно понять, как их потом преподавать. Ведь одно дело — знать, как работает Kubernetes, и совсем другое — уметь объяснить это молодому человеку, который начинает свой путь в IT.
Поэтому мы разработали особую программу подготовки. Это не просто набор видеолекций, а полноценный месячный курс с живыми консультациями и практической работой на реальной платформе. После каждого блока проводим тщательную проверку знаний, даем развернутую обратную связь, разбираем сложные моменты. Важно не только то, насколько хорошо преподаватель освоил материал, но и то, как он сможет донести эти знания до студентов. В идеале, вместо механического зачитывания лекций он должен погружать студентов в реальные задачи на базе реальной промышленной платформы. Для этого учебные проекты максимально приближены к тому, с чем сталкиваются DevOps-инженеры в своей ежедневной работе. Естественно, с преподавателей мы тоже собирали обратную связь, чтобы сделать их работу более эффективной.
Программа обучения включает погружение в ключевые технологии: работу с контейнерами и Docker, оркестрацию на базе Kubernetes, настройку CI/CD, работу с системами мониторинга. Мы используем для обучения свою платформу Digital Energy, но наша цель — не познакомить с конкретным продуктом, а дать фундаментальное понимание принципов работы современной облачной инфраструктуры.
Запуск студентом (он же преподаватель) своего первого контейнера
Когда преподаватель разворачивает контейнер или настраивает мониторинг в нашей платформе, мы всегда объясняем, как это устроено «под капотом». Да, некоторые задачи платформа берет на себя, делая работу DevOps-инженера эффективнее. Но важно, что преподаватель понимает, какие процессы скрываются за этой автоматизацией. Такой подход позволяет выпускникам программы легко адаптироваться к работе с любыми инструментами — они понимают не только, что делает технология, но и как она это делает.
Финальная работа в нашей программе требует полноценного погружения во все аспекты работы DevOps-инженера. И без реального понимания материала ее просто невозможно выполнить. Зато, когда преподаватель справляется с этой работой, мы уверены — он действительно готов передавать знания студентам.
После обучения преподаватели, вооруженные этими знаниями и подготовленными для них методическими материалами, возвращаются в свои вузы и начинают готовить студентов. Где-то обучение оформлено как дополнительный курс, кто-то интегрирует его в основную программу. Но главное — обучение проходит на реальной платформе, с пониманием реальных задач и требований рынка.
Технологии vs. культура
Мы не ограничиваемся только техническим стеком. И что важно — не выделяем soft skills в отдельные лекции, понимая предвзятое отношение многих технарей к подобным темам. Вместо этого мы встраиваем их в технический материал.
Важная часть обучения — понимание культуры DevOps. DevOps-инженер часто выступает медиатором между разными командами: разработкой и тестированием, админами и разработчиками. На его плечи ложится ответственность за коммуникацию между всеми участниками процесса. И дело не только в том, чтобы «уметь общаться», — нужно понимать, как изменился сам подход к работе.
Раньше каждый отвечал только за свой участок: разработчик мог сказать «у меня все работает» и умыть руки, если у кого-то что-то не запускалось. Сегодня такой подход невозможен — воспроизводимость окружения не позволяет просто «перекинуть камень в чужой огород». DevOps превращает разработку в общее дело, где каждый отвечает за конечный результат.
Отдельный большой блок посвящен безопасности — DevSecOps. Здесь мы не только изучаем инструменты и практики, но и разбираем этические аспекты: где проходит граница между этичным тестированием безопасности и хакингом, как правильно выстраивать процессы, чтобы система обладала «кибериммунитетом». Безопасность — это не просто галочка в чек-листе, а неотъемлемая часть современной разработки.
Наши студенты не только изучают базовые принципы защиты инфраструктуры, но и погружаются в реальные кейсы. Мы делимся собственным опытом анализа безопасности, показываем, как разрабатывать и внедрять инструменты для автоматизированных проверок. Например, рассказываем о своем опыте создания плагинов для open source.
Человеческий фактор здесь тоже важен. Специалисты ИБ часто воспринимались как карикатурные персонажи, которые мешают разработчикам разрабатывать, однако в культуре DevOps этому нет места — здесь важна каждая роль. В крупных компаниях появляются security-чемпионы, через которых выстраивается коммуникация с командой безопасности. Мы учим искать разумные компромиссы: где-то можно записать технический долг и следить за ним, где-то нужно настоять на немедленном исправлении.
Когда студенты проходят такое комплексное обучение, они выходят с глубоким пониманием профессии. Они не просто знают, как настроить отдельные компоненты системы — они понимают, как эти компоненты взаимодействуют между собой и как их работа влияет на процессы всей команды.
Результаты
Когда мы начинали, со стороны наша деятельность, наверное, выглядела странно: вместо того чтобы решать насущную проблему, занимаемся какой-то непонятной благотворительностью — раздаем софт за рубль, тратим время инженеров на обучение преподавателей, придумываем какие-то методички… В общем, занимаемся чем угодно, лишь бы не работать.
Но в моей команде уже сейчас есть ребята, которые еще пару лет назад были студентами и учились у преподавателей, прошедших нашу программу. Такая вот преемственность в масштабах одного проекта.
Интересно наблюдать и за самими преподавателями. В финальной части курса мы даем им продвинутые задания «со звездочкой»: работа с сервисными сетками, шаблонизация через Helm, настройка мониторинга через Prometheus и Grafana, визуализация графов межсервисного взаимодействия. С ними справляются только 15–18% участников, и это нормально — мы не делаем эту часть обязательной. Но именно по тому, как преподаватель подходит к таким сложным задачам, виден его реальный уровень погружения в материал.
Работа студента с декларативным описанием инфраструктуры в Docker Compose
За два года программа постоянно развивалась вместе с индустрией. В IT изменения происходят стремительно — то, что было актуально полгода назад, сегодня может уже устареть. Импортозамещение, новые инструменты, изменение подходов к безопасности — все это пришлось учитывать на ходу, чтобы сохранить для студентов возможность работать с актуальными промышленными решениями. Но при этом главное остается неизменным: мы учим не конкретным инструментам, а подходу к решению реальных задач.
О будущем
А что дальше? Мы начинали с четырех вузов, а сейчас их уже почти сорок и каждый год подключаются новые. То есть программа работает и востребована. И теперь, когда у нас есть этот опыт, можно немного пованговать и представить, как будет развиваться профессия DevOps-инженера в ближайшие 3–5 лет.
Мне кажется, мы увидим два важных тренда. Первый — это определенный откат к консерватизму. Прошли времена, когда мы слепо верили во все новое. Помните, как лет десять назад многие воспринимали тот же scrum? «Это у нас точно не приживется». А потом все кинулись внедрять гибкие методологии. Сейчас маятник качнулся в другую сторону — к более взвешенному подходу.
Второй тренд — это трансформация DevOps в DevSecOps. Не просто как термин, а как реальный стандарт работы. Я уверен, что через несколько лет мы перестанем использовать термин DevOps в отрыве от безопасности — это будет по умолчанию единое целое.
Изменится и подход к обучению будущих специалистов. И этот процесс уже идет — во многом благодаря тому, что бизнес перестал быть просто потребителем кадров и активно включился в их подготовку. Компании делятся реальными технологиями, практикующие специалисты приходят преподавать, учебные программы адаптируются под актуальные потребности рынка. В результате студенты выходят из вузов с реальным пониманием технологий и процессов.
Эта ситуация разительно отличается от той, что была в мое время — когда выпускник приходил на работу и только там начинал понимать, чем ему предстоит заниматься. Я сам прошел этот путь: закончил вуз по специальности «ЭВМ», и мне просто повезло найти свое место в IT. А сколько потенциально отличных специалистов мы потеряли просто из-за пропасти между образованием и реальной практикой?
Сейчас эта пропасть постепенно заполняется — в образовательный процесс включаются люди, которые сами каждый день решают актуальные задачи индустрии. Они знают, какие навыки и знания действительно важны, какие технологии используются на практике, какие проблемы приходится решать. И могут передать этот опыт студентам не в виде сухой теории, а на конкретных примерах из реальных проектов.
Но самое главное — DevOps перестает быть просто модным словом в резюме или способом получить 300К в наносекунду. Это уже происходит. Мы видим это по нашим выпускникам, часть из которых прошла наш курс и уже работает (в том числе и у нас в компании). Могу даже рискнуть и сделать красивое заявление: в профессию стали приходить не только за зарплатой, но и потому, что интересно создавать сложные, красивые системы, которые реально работают и приносят пользу.
В конце концов, именно за этим мы и затевали всю эту историю с обучением.