Кто такой DevOps. Обзор изнутри от Виктора Ведмича

Про профессию рассказывает Виктор Ведмич, DevOps-евангелист, лидер комьюнити DOM (DevOps Minsk), Systems Engineering Team Leader в EPAM. 

Продолжаем цикл материалов про ИТ-специальности. Каждую из них описывает «типичный представитель» — опытный специалист. Мы надеемся, что цикл поможет школьникам, студентам, переквалификантам, джуниорам и сочувствующим выбрать специальность в ИТ, оценить свои перспективы или просто сверить часы с авторитетным коллегой. Можно обсуждать и дополнять материал в комментариях, чтобы сделать его ещё полезней.

35 комментариев
Кто такой DevOps. Обзор изнутри от Виктора Ведмича

Про профессию рассказывает Виктор Ведмич, DevOps-евангелист, лидер комьюнити DOM (DevOps Minsk), Systems Engineering Team Leader в EPAM. 

Продолжаем цикл материалов про ИТ-специальности. Каждую из них описывает «типичный представитель» — опытный специалист. Мы надеемся, что цикл поможет школьникам, студентам, переквалификантам, джуниорам и сочувствующим выбрать специальность в ИТ, оценить свои перспективы или просто сверить часы с авторитетным коллегой. Можно обсуждать и дополнять материал в комментариях, чтобы сделать его ещё полезней.

Кто такой DevOps-инженер

DevOps-инженер соединяет:

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

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

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

Индустрии DevOps чуть более 10 лет. Активно о ней заговорили где-то в 2009 году. Сейчас профессия очень популярна во всем мире.

Кто-то считает DevOps целой философией, кому-то ближе понятия культуры, методологии, подхода к разработке ПО. Я обычно говорю, что DevOps это комбинация трех английских «P»:

  • People — люди, которые постоянно взаимодействуют друг с другом,
  • Processes — процессы,
  • Products — продукты и технологии, с которыми мы работаем. 

Что DevOps делает на работе

DevOps-инженер занимается всем, что повышает скорость и эффективность разработки.

  • Создание инструментов и проектирование инфраструктуры для разработки ПО. 
  • Автоматизация процессов. К примеру, проверки работы приложения. Мы его создали и должны проверить, можно ли в него залогиниться, можно ли оставить комментарий, как программа себя ведет в мобильной версии и др. DevOps-инженеры помогают автоматизировать такие проверки. 
  • Работа с облачными технологиями. «Облако» отличается по методу хранения и обработки данных от компьютера, а значит принцип его действия иной. DevOps-инженер помогает организациям максимально эффективно использовать облачные среды, минимизируя риски. 
  • Решение срочные задачи. 
  • Интеграции. К примеру, CI — Continuous Integration. Зачем это нужно? Обычно на проектах инженеры пишут части общего кода. Иногда бывает так, что код, который хорошо работает на компьютере, где он был написан, на другой «машине» не запустится совсем. В CI DevOps-инженеры собирают части кода, которые сделали разные разработчики, и проверяют, компилируются ли они. А еще анализируют эти части кода и, согласно правилам, дают рекомендации по улучшению безопасности, устранению потенциальных багов и др. 
  • Поддержка и мониторинг процессов. 
Медианная зарплата DevOps-инженера в Беларуси в марте 2020 — $2000 (данные: анкеты читателей dev.by).
23 вакансии для DevOps.

Что должен уметь DevOps

Основным навыком, на мой взгляд, является умение быстро разбираться во множестве разных систем. Каждая система состоит из компонентов — и нужно быстро понять каждый компонент, и как они взаимодействуют между собой. Сюда же как навык относится «траблшутинг» (устранение неполадок), который приходит со временем. 

Фундаментальные скиллы, которые нужны каждому девопсу:

  • Знание операционных систем и принципов их работы. Без этого не обойтись, ведь любой продукт пишется и потом работает в определенной среде. Зная среду, мы понимаем, что нужно, чтобы продукт нормально функционировал. Сложно поставить какую-то одну операционную систему на первое место. Как минимум, нужно разбираться в Linux и Windows. 
  • Основы программирования. Это точно также, как и знать буквы и грамматику чтобы учить иностранный язык. Что такое биты и циклы, как работать с кодом и его синтаксисом и др. — важные базовые понятия, необходимые в принципе любому, кто хочет что-то делать в ИТ. 
  • Понимание компьютерных сетей. Какие есть, в чем отличия, как работают, основные понятия — все это важно. Есть хороший пример из практики, когда один из заказчиков по какой-то причине разместил свой дата-центр в сети, которая доступна всем. Из-за такой базовой ошибки нам пришлось перестраивать всю сеть, чтобы приложение заработало. 
  • Владение скриптовым языком, желательно несколькими. Bash, Python, PowerShell и др. — все зависит от платформы, с которой работаем. Да, DevOps-инженер не разрабатывает продукт непосредственно, но при этом занимается автоматизацией процессов, которая описывается как раз кодом. 
  • Понимание виртуализации и контейнеризации. 
  • Знание облачных систем. Все просто: бизнес сейчас уходит в облачные ресурсы, провайдеры, хостинги, а значит, DevOps-инженер должен в них разбираться. И более того, он готовит инфраструктуру для разработки из разного количества и наборов облачных сервисов. Кто-то может возразить, что это не обязательно. Я не буду спорить, какие-то приложения работают внутри дата-центров, то есть на своих «железках». Но все же чаще DevOps работает с «облаками». 

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

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

Периодическая таблица DevOps.

DevOps-инженеры работают на всех проектах, которые могут быть в ИТ. Профессия не ограничена доменом. Это любая сфера: спорт, транспорт, мода, медиа и другие. К примеру, когда-то я работал на проекте с крупным британским ритейлером автомобилей. А еще когда-то помогал в построении системы обработки данных с роботов, которые задействованы во время медицинских операций: видео, показатели с датчиков, анализ информации. 

Где учат DevOps  

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

Курсов и онлайн-курсов бесчисленное множество. Все зависит от возможностей человека. К примеру, в ЕРАМ есть бесплатные онлайн и оффлайн курсы по DevOps. Еще знаю курсы zaDeploy, они тоже бесплатные. Wargaming обучает DevOps, но «под себя». 

Из платных мне нравятся курсы:

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

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

Карьера DevOps

Истории есть самые разные. Кто-то приходит в DevOps сразу из университетов и курсов, некоторые из разработчиков становятся DevOps-инженерами и наоборот — все зависит от желания людей. Я, например, сам начинал как программист, писал на смеси.Net и Delphi, потом работал системным администратором, а позже попал в первую DevOps лабораторию ЕРАМ и стал работать в этой же компании. 

Другой пример — бывший тестировщик-автоматизатор, который работает со мной в команде. Он сам когда-то подошел ко мне и сказал, что хочет стать DevOps-инженером. Мы вместе посмотрели, какие скиллы ему нужно прокачать, и составили программу. Через 3 месяца он закончил обучение и перешел на проект к большому заказчику. 

Стать DevOps-инженером может любой. Главное — наличие аналитического мышления и желания учиться. 

Coding Salaries in 2019: Updating the Stack Overflow Salary Calculator

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

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

Кто такой Data Scientist. Обзор изнутри от Арсения Кравченко
Кто такой Data Scientist. Обзор изнутри от Арсения Кравченко
По теме
Кто такой Data Scientist. Обзор изнутри от Арсения Кравченко
Кто такой нарративный дизайнер. Обзор изнутри от Олега Синицына
Кто такой нарративный дизайнер. Обзор изнутри от Олега Синицына
По теме
Кто такой нарративный дизайнер. Обзор изнутри от Олега Синицына

Хотите сообщить важную новость?

Пишите в наш Телеграм

Читайте также

55% скидка на курс «DevOps»
55% скидка на курс «DevOps»
55% скидка на курс «DevOps»
25 августа стартует онлайн-курс для тех, кто хочет стать DevOpsом.
«Никаких обещаний». EPAM и студенты лабы о (не)трудоустройстве в кризис
«Никаких обещаний». EPAM и студенты лабы о (не)трудоустройстве в кризис
«Никаких обещаний». EPAM и студенты лабы о (не)трудоустройстве в кризис
В середине апреля в редакцию dev.by поступило сообщение, что выпускники EPAM DevOps Lab в Минске после трёх месяцев на вечерних курсах и трёх с половиной в учебной лаборатории «пойдут на все четыре стороны, только не в компанию» — компания, мол, остановила найм выпускников. Это при том, что в другие годы трудоустройство получали 80% закончивших курс. Другие ученики лабы подтвердили dev.by, что в начале апреля всей группе девопсов на голосовом митинге объявили, что никого в штат взять не смогут. Мы поговорили с выпускниками и с представителями EPAM о том, что произошло и когда студенты могут рассчитывать на трудоустройство.
61 комментарий
Кто такой Project Manager в геймдеве. Обзор изнутри от Ольги Савельевой
Кто такой Project Manager в геймдеве. Обзор изнутри от Ольги Савельевой
Кто такой Project Manager в геймдеве. Обзор изнутри от Ольги Савельевой
Про профессию рассказывает Ольга Савельева, Lead Project Manager в геймдев-команде Gismart. Работает в компании  с момента создания в ней игрового направления.  Продолжаем цикл материалов про ИТ-специальности. Каждую из них описывает «типичный представитель» — опытный специалист. Мы надеемся, этим материалы помогут школьникам, студентам, переквалификантам, джуниорам и сочувствующим выбрать специальность в ИТ, оценить перспективы или просто сверить часы с авторитетным коллегой. Обсуждайте и дополняйте материал в комментариях, чтобы сделать его ещё полезней.
15 комментариев
Кто такой нарративный дизайнер. Обзор изнутри от Олега Синицына
Кто такой нарративный дизайнер. Обзор изнутри от Олега Синицына
Кто такой нарративный дизайнер. Обзор изнутри от Олега Синицына
Про профессию рассказывает Олег Синицын, нарративный продюсер и менеджер нарративной команды в Playrix. Работал с играми Gardenscapes, Township, Fishdom, Homescapes (11 млн установок в марте 2020). Продолжаем цикл материалов про ИТ-специальности. Каждую из них описывает «типичный представитель» — опытный специалист. Мы надеемся, что цикл поможет школьникам, студентам, переквалификантам, джуниорам и сочувствующим выбрать специальность в ИТ, оценить свои перспективы или просто сверить часы с авторитетным коллегой. Можно обсуждать и дополнять материал в комментариях, чтобы сделать его ещё полезней. Спикер и автор материала поддержат дискуссию и ответит на вопросы.

Обсуждение

Анонимный пользователь
Анонимный пользователь
5

Безусловно реализация DevOps в лице SRE инженеров - это топ по зарплатам. Только на нашем рынке SRE мало кому нужен. Нужны скорее ребята которые делают автоматизацию инфраструктуры. Я мало где слышал, чтоб кто-то анализировал метрики прода, считал SLI, считал риски и лез оптимизировать код и архитектуру там где нужно. И в статье сказано, что у ребят у которых должность DevOps engineer медиана в 2к, это немного.

Anonymous
Anonymous
-1

"Я мало где слышал, чтоб кто-то анализировал метрики прода" - ну ну...

Анонимный пользователь
Анонимный пользователь
4

Не вырывайте слова из контекста. Я имел ввиду что кто-то из DevOps команды принимал сам решения решения по оптимизации или фиксу каких-то критических вещей. Обычно это говорится менеджеру и он делегирует разработчикам или чаще всего менеджменту пофиг на проблемы преформанса и всяких проблем в логах.

-1

графика нуждается в улучшении и др. И чтобы игра работала стабильно и не подвисала

Таки этим DevOps занимается?

0

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

Анонимный пользователь
Анонимный пользователь
2

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

-2

думаю проекту на котором devops фиксит продакшн баг в мастер приглядывая за инцидентами / кубернетесами уже (еще) не нужен devops :)

Анонимный пользователь
Анонимный пользователь
2

Типичные требования к SRE: https://about.gitlab.com/job-families/engineering/site-reliability-engineer/. Ну т.е не любой баг, а проблемы, наблюдаемые в продакшене с перформансом, архитектурой, etc...

"Actively looks for opportunities to improve the availability and performance of the system by applying the learnings from monitoring and observation"

SRE это такой же разработчик, только в инфраструктуре, который мыслит не как Ops а автоматизирует все подряд и следит за надежностью работы аппа и не стесняется заглядывать в код самого продукта. Site Reliability Engineering (SRE) is a discipline that incorporates aspects of software engineering and applies them to infrastructure and operations problems. The main goals are to create scalable and highly reliable software systems

-4

т.е. это разработчик который не может может пофиксать баг в приложении но может пофиксать баг с перфомансом в приложении ? devops evangelist какой-то получается :)

Анонимный пользователь
Анонимный пользователь
2

Это вне зоны ответственности. С какой стати ему заниматься напилом фич и багфиксингом. < troll mode > Для это есть регулярные линейные работяги. Вот они и могут работать под скрам над обычными фиксами и фичами, которые там бизнесу важны в этом квартале. А тут ребятам это уже надоело, они хотят вернуться к системам и управлению системами и масштабированием всего этого дела, бизнес фичи, "велью деливери", запил очередного эндпоинта для очередной важной херни их угнетает.</troll mode>

Anonymous
Anonymous
0

DevOps нужен. Админам пофиг на ваш продукт - он для них как очередное приложение. Разрабам пофиг на инфраструктуру - им важен продукт. А продукт без инфраструктуры и кучи связей с другими сервисами на данный момент - явление редкое. Системы сложные, куча контекстов в разных системах... кто-то должен этим заниматься. Иначе получаем - все у всех хорошо в отдельности, но плохо работает в целом.
Да и сжирать время разрабов на настройку и поддержку окружения - так себе занятие. Не говорю уже про мониторинг и тюнинг ресурсов и приложения. Короче, не с проста слово DevOps родилось. p.s: а менеджерам и т.д. сомневающимся стоит сначала углубиться в тему, прочитать хотя бы пару книжек (я тоже так себе раньше к этому относился) или закопаться в крупный проект, чтобы понять необходимость такого человека в реальности.

2

Хороший девопс это разраб которого заставили поддерживать то ражно которое он накостылял и навелосипедил

0

или это SRE?

0

вот поэтому мне это DevOps/SRE и не нравится - слишком молодо и очень хайпово

0

DevOps это уже ж устарело. Вот SRE это молодежно.
В гугл в какой-то момент предложили всем девопсам пройти собеседования как на разработчика, чтобы стать SRE. Вроде 70% прошли, остальные ушли или их ушли.

2

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

0

С унификацией инфраструктуры и развитием оркестраторов уже не так и сложно поддерживать. Настроить CI в одном конфиге и написать пару ещё для приложения совсем не то, что сервера поднимать и настраивать. Доставка ПО может и должна уйти к разработчикам. Когда ещё научатся управлять надёжностью через SLA все станет ещё нагляднее.

4

devops is a culture, not a role

0

8 лет назад этот баян ходил. Уже давно все и везде называют девопсами людей.

0

Уже писал об этом. DevOps - это практики пусконаладки и управления конфигурацией программных систем. https://m.habr.com/ru/post/485488/. Нет, начинают мистику разводить. DevOps-практиками ДОЛЖЕН владеть каждый инженер. Мистику начинают разводить из-за большого числа полу-специалистов на рынке - не хотят ничему учиться, проще сказать - этим девопс должен заниматься, такой специальный товарищ с 8 руками и лошадиной головой.

0

А .Net разработчик - это практики написания кода ? ... Если "полуспециалист" или "специалист" как Вы в хорошем интерпрайзе будет разбираться с инфраструтурными вопросами, вопросами деплоя и прочего автоматического ада - у Вас не останется времени на написание собственно продукта. А что получится ? - правильно ... получится хороший DevOps инженер, с хорошим тех. бэкграундом.

1

DevOps это не человек вообще

0

Это к чему, КЭП ? ... в статье написано DevOps-инженер ... ровно как и все HR-ы пишут в вакансиях. .Net тоже не человек, Базы Данных тоже не человек... есть инженеры/менеджеры соответствующих технологий или методологий.
Я вообще не понимаю, с каким утверждением в статье Вы пытаетесь поспорить ? или что пытаетесь доказать ? Или статью свою на хабре пытаетесь прорекламировать ...

-1

Рекламировать статью с крупнейшего айтишного ресурса Рунета на dev.by :) Я скорее пытаюсь объяснить, что сама практика DevOps - это практики доставки ПО. Тут же в кучу и Ops впрягают, и Support, рисуя такого полумифического чувака, который всем заведует. Безусловно важные вещи, но рано или поздно все придет к подходу google - без экспертизы разработки и погружения в бизнес-задачи мониторить загрузки процессоров и надувать щеки уже не выйдет - эффективность не та. Ну как обычно всё решит рынок - и в условиях падения рынка мы все это увидим.

1

Если должен, то кому и зачем? :)

0

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

0

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

0

Автоматизация процесса разработки - это типа код сам пишется? :)

0

Автоматизация процесса - это превращение разработки в конвейер. В каком-то месте этого конвейера может произойти восстание машин))

-1

+1
Ещё, пожалуй, AWS.
Просто в определенный момент сисадминам пришлось сильно повысить зарплату (стали сбегать в разрабы), поэтому их назвали девопсами.

arseniy-zuev
arseniy-zuev Teamlead ябатек в dev.by
0

А я всю жизнь думал что devops это "что" (методология), а оказывается "кто". Век живи — век учись

2

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

arseniy-zuev
arseniy-zuev Teamlead ябатек в dev.by
0

Поэтому не нужно цепляться к словам.

и сразу же

DevOps не так давно появился, чтобы думать об этом всю жизнь. :)

То есть

Цепляется к тому, что я сказал "всю жизнь думал" вместо "всю жизнь, с того самого момента как узнал о devops"

Oh you

0

В задумке Devops - это культура, а значит каждый кто работает в компании где девопс культура является девопс инженером. А "девопс инжинер" в конторе где нет такой культуры это переименованный кто-то другой, обычно сисадимн. Ещё новый фетиш у контор выгнять админов и переложить их дела на программеров - это тоже "девопс".

-1

Прочитал первый абзац, там где про евангелиста, и понял, что будут тень на плетень наводить. Дочитал, не ошибся. :)
По мне, Devops - это сисадмин, которому стало скучно называться сисадмином.
Нет, я не умаляю значимость профессии. Devops(сисадмин)-ы нужны и полезны.

Спасибо! 

Получать рассылки dev.by про белорусское ИТ

Что-то пошло не так. Попробуйте позже