Кто такой DevOps. Обзор изнутри от Виктора Ведмича
Про профессию рассказывает Виктор Ведмич, DevOps-евангелист, лидер комьюнити DOM (DevOps Minsk), Systems Engineering Team Leader в EPAM.
Продолжаем цикл материалов про ИТ-специальности. Каждую из них описывает «типичный представитель» — опытный специалист. Мы надеемся, что цикл поможет школьникам, студентам, переквалификантам, джуниорам и сочувствующим выбрать специальность в ИТ, оценить свои перспективы или просто сверить часы с авторитетным коллегой. Можно обсуждать и дополнять материал в комментариях, чтобы сделать его ещё полезней.
разработчиков, которые хотят как можно быстрее сделать продукт,
с инженерами, которые занимаются его поддержкой.
Пример: разработчики написали и выпустили игру — это продукт. Он может работать самостоятельно, но внешние условия постоянно меняются: сервера ломаются, из команды уходят люди, которые разрабатывали игру, графика нуждается в улучшении и др. И чтобы игра работала стабильно и не подвисала, нужны инженеры, которые не дадут «упасть» всей этой системе.
DevOps-специалисты сопровождают жизненный цикл продукта от начала до конца, помогают собрать все процессы в единую систему и описать их, сократить время разработки, увеличить ее эффективность и безопасность. И если такого человека в команде нет, то его функции будет выполнять кто-то другой, но это дополнительная нагрузка, а значит, снижение качества работы.
Индустрии DevOps чуть более 10 лет. Активно о ней заговорили где-то в 2009 году. Сейчас профессия очень популярна во всем мире.
Кто-то считает DevOps целой философией, кому-то ближе понятия культуры, методологии, подхода к разработке ПО. Я обычно говорю, что DevOps это комбинация трех английских «P»:
People — люди, которые постоянно взаимодействуют друг с другом,
Processes — процессы,
Products — продукты и технологии, с которыми мы работаем.
Что DevOps делает на работе
DevOps-инженер занимается всем, что повышает скорость и эффективность разработки.
Создание инструментов и проектирование инфраструктуры для разработки ПО.
Автоматизация процессов. К примеру, проверки работы приложения. Мы его создали и должны проверить, можно ли в него залогиниться, можно ли оставить комментарий, как программа себя ведет в мобильной версии и др. DevOps-инженеры помогают автоматизировать такие проверки.
Работа с облачными технологиями. «Облако» отличается по методу хранения и обработки данных от компьютера, а значит принцип его действия иной. DevOps-инженер помогает организациям максимально эффективно использовать облачные среды, минимизируя риски.
Решение срочные задачи.
Интеграции. К примеру, CI — Continuous Integration. Зачем это нужно? Обычно на проектах инженеры пишут части общего кода. Иногда бывает так, что код, который хорошо работает на компьютере, где он был написан, на другой «машине» не запустится совсем. В CI DevOps-инженеры собирают части кода, которые сделали разные разработчики, и проверяют, компилируются ли они. А еще анализируют эти части кода и, согласно правилам, дают рекомендации по улучшению безопасности, устранению потенциальных багов и др.
Поддержка и мониторинг процессов.
Что должен уметь DevOps
Основным навыком, на мой взгляд, является умение быстро разбираться во множестве разных систем. Каждая система состоит из компонентов — и нужно быстро понять каждый компонент, и как они взаимодействуют между собой. Сюда же как навык относится «траблшутинг» (устранение неполадок), который приходит со временем.
Фундаментальные скиллы, которые нужны каждому девопсу:
Знание операционных систем и принципов их работы. Без этого не обойтись, ведь любой продукт пишется и потом работает в определенной среде. Зная среду, мы понимаем, что нужно, чтобы продукт нормально функционировал. Сложно поставить какую-то одну операционную систему на первое место. Как минимум, нужно разбираться в Linux и Windows.
Основы программирования. Это точно также, как и знать буквы и грамматику чтобы учить иностранный язык. Что такое биты и циклы, как работать с кодом и его синтаксисом и др. — важные базовые понятия, необходимые в принципе любому, кто хочет что-то делать в ИТ.
Понимание компьютерных сетей. Какие есть, в чем отличия, как работают, основные понятия — все это важно. Есть хороший пример из практики, когда один из заказчиков по какой-то причине разместил свой дата-центр в сети, которая доступна всем. Из-за такой базовой ошибки нам пришлось перестраивать всю сеть, чтобы приложение заработало.
Владение скриптовым языком, желательно несколькими. Bash, Python, PowerShell и др. — все зависит от платформы, с которой работаем. Да, DevOps-инженер не разрабатывает продукт непосредственно, но при этом занимается автоматизацией процессов, которая описывается как раз кодом.
Понимание виртуализации и контейнеризации.
Знание облачных систем. Все просто: бизнес сейчас уходит в облачные ресурсы, провайдеры, хостинги, а значит, DevOps-инженер должен в них разбираться. И более того, он готовит инфраструктуру для разработки из разного количества и наборов облачных сервисов. Кто-то может возразить, что это не обязательно. Я не буду спорить, какие-то приложения работают внутри дата-центров, то есть на своих «железках». Но все же чаще DevOps работает с «облаками».
Все эти навыки только основа в несколько кирпичиков — дальше вверх «растут» гигантские пирамиды. Суть в том, что в DevOps технологии постоянно меняются и появляются, их нужно успевать отслеживать. Непонятно, что учить сегодня, чтобы оно было востребовано завтра. Одно могу сказать, что основа точно не рухнет.
Кстати, полезно будет посмотреть периодическую таблицу DevOps, там собраны все инструменты, которыми мы сегодня пользуемся.
DevOps-инженеры работают на всех проектах, которые могут быть в ИТ. Профессия не ограничена доменом. Это любая сфера: спорт, транспорт, мода, медиа и другие. К примеру, когда-то я работал на проекте с крупным британским ритейлером автомобилей. А еще когда-то помогал в построении системы обработки данных с роботов, которые задействованы во время медицинских операций: видео, показатели с датчиков, анализ информации.
Где учат DevOps
В Беларуси нет такой специальности в университетах. Причины понятны: технологии быстро меняются и необходим большой объем навыков. Поэтому самая близкая к этому специальность — системная инженерия.
Курсов и онлайн-курсов бесчисленное множество. Все зависит от возможностей человека. К примеру, в ЕРАМ есть бесплатные онлайн и оффлайн курсы по DevOps. Еще знаю курсы zaDeploy, они тоже бесплатные. Wargaming обучает DevOps, но «под себя».
Самое доступное — ролики на ютуб. Но тут проблема в том, что сейчас чересчур много информации, нужно ее фильтровать, чтобы не потеряться. В самостоятельном обучении важно найти живого специалиста, который сможет тебя менторить. Это сложно, но возможно. К примеру, попробовать написать в какое-нибудь DevOps-комьюнити.
И еще. Что такое биты и циклы, как работать с кодом и его синтаксисом и др. — важные базовые понятия, необходимые в принципе любому, кто хочет что-то делать в ИТ. На мой взгляд, лучшим по этой теме является курс CS50 от Гарвардского и Йельского университетов. Он бесплатный.
Карьера DevOps
Истории есть самые разные. Кто-то приходит в DevOps сразу из университетов и курсов, некоторые из разработчиков становятся DevOps-инженерами и наоборот — все зависит от желания людей. Я, например, сам начинал как программист, писал на смеси.Net и Delphi, потом работал системным администратором, а позже попал в первую DevOps лабораторию ЕРАМ и стал работать в этой же компании.
Другой пример — бывший тестировщик-автоматизатор, который работает со мной в команде. Он сам когда-то подошел ко мне и сказал, что хочет стать DevOps-инженером. Мы вместе посмотрели, какие скиллы ему нужно прокачать, и составили программу. Через 3 месяца он закончил обучение и перешел на проект к большому заказчику.
Стать DevOps-инженером может любой. Главное — наличие аналитического мышления и желания учиться.
Прогнозы делать достаточно сложно, так как все очень быстро меняется. Но могу сказать, что само направление будет развиваться и эволюционировать достаточно долго. То, что есть сейчас, далеко не предел.
11 курсов DevOps, чтобы разобраться в теме и прокачать скиллы (июнь 2023)
DevOps-инженеров можно назвать одними из самых востребованных и высокооплачиваемых специалистов в ИТ-сфере. Поэтому, если вы хотите освоить эту профессию, разобраться в том, что такое DevOps-подход или просто усовершенствовать свои навыки, обратите внимание на список курсов, подготовленный Digitaldefynd и дополненный нами.
Карго-культ вокруг DevOps: как навредить проекту из лучших побуждений
DevOps родился для того, чтобы команды разработки и поддержки работали эффективно и слаженно. Но иногда использование его практик может привести к реальным провалам. Как с помощью DevOps-практик не только не помочь, но и навредить проекту, рассказывает Александр Селезнёв, релиз-менеджер в Luxoft.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.