DevOps «по полочкам»: задачи, скиллы, перспективы, плюсы и минусы профессии
DevOps-инженер – одна из самых востребованных и высокооплачиваемых профессий на IT-рынке. Какие задачи выполняют эти специалисты, что за скиллы им необходимы и как дорасти до такой позиции – рассказывает руководитель центра компетенции DevOps в МТС Виталий Ерофеев.
Кто такой DevOps и почему так нужен бизнесу
DevOps-инженер (сокращенно от названия методологии подготовки продукта Development Operations) – специалист, который объединяет все процессы создания ПО. Он курирует взаимодействие между разработчиками, тестировщиками, менеджерами и командой эксплуатации, помогая им становиться настоящими мушкетерами и действовать по принципу «один за всех, и все за одного». В результате все «участники забега» работают слажено, а бизнес экономит время и деньги на всех этапах создания программного продукта — от написания кода до релиза. Если конкретнее, DevOps:
● настраивает мониторинг и CI/CD для продуктов Big Data;
● сопровождает разработку продукта;
● автоматизирует рутинные процессы;
● проводит исследования;
● разрабатывает новые инструменты для внедрения.
Представим путешествие, в котором разработчик в роли водителя, а инженер инфраструктуры прокладывает маршрут. На полпути у них заканчивается бензин. Первый заправился перед отъездом — работу выполнил. Второй - проложил самый короткий путь и тоже справился со своей задачей. Если бы здесь был DevOps-инженер, он бы заранее проверил все варианты маршрута и наличие заправок, прикинул, хватит ли топлива, и взял с собой запасную канистру.
Какие скиллы нужны DevOps-инженеру
DevOps – настоящий «играющий тренер». Для того, чтобы синхронизировать работу всей команды, он должен одновременно хорошо владеть инструментами разных IT-специализаций и прокачивать soft skills. Обо всем по порядку…
Hard skills:
● языки программирования – для написания скриптов DevOps-инженер использует Python и Bash, для приложений автоматизации — Golang;
● опыт системного администрирования – для качественного взаимодействия с командой инфраструктуры необходимы базовые знания Linux;
● системы логирования - стеки EFK и ELK помогают решать вопросы по части сбора, доставки, хранения и обработки логов;
● инструменты мониторинга архитектуры - контролировать весь процесс разработки помогут Zabbix, Grafana, Prometheus;
● технический английский – на нем публикуется большая часть документации и необходимой для работы информации.
Soft skills:
● навыки работы в команде - DevOps-культура подразумевает непрерывный синхрон разработчиков с командой инфраструктуры. Хороший результат недостижим без мастерства находить компромиссы;
● проактивность. DevOps-инженер – не тот, кто просто выполняет поручения, он самостоятельно ищет дефекты в системе и предлагает способы их исправить.
Преимущества и недостатки профессии
Любая специальность имеет и плюсы, и минусы. Вот как, на мой взгляд, обстоят дела с профессией DevOps-инженера.
Преимущества:
● востребованность - спрос на таких специалистов превышает предложение. По прогнозам IDC , к 2024 году число DevOps-инженеров вырастет вдвое, а полноценный цикл развития операций внедрит 30% компаний;
● уровень дохода - заработок напрямую зависит от грейда, однако у экспертов в DevOps зарплата в среднем выше, чем у представителей других IT-профессий;
● возможность всесторонне развиваться - работа позволяет погрузиться в широкий спектр технологий и постоянно осваивать новые.
Недостатки:
● ненормированный график - проблемы с софтом могут возникнуть в любое время, порой необходимо поработать ночью или в выходные;
● сложность - профессия требует совмещать знания из разных предметных областей, что может быть сложно и даже пугающе (особенно на старте).
Перспективы карьерного роста
Развитие в профессии начинается с позиции Junior. На этом этапе предстоит работать с Linux, писать простые скрипты, осваивать ПО для контейнеризации и проводить базовый мониторинг.
Через пару лет можно дорасти до уровня Middle. Тут нужно самостоятельно выполнять детально сформулированные задачи, разбираться в основных типах данных в языках программирования и уметь использовать их.
Чтобы стать Senior, нужно проработать в сфере от 3-5 лет. За это время вы превратитесь в полноценного эксперта, который отвечает за функционирование инфраструктуры в целом, понимает, куда движется компания, ищет новые задачи и знает, какие из них приоритетнее.
Около 30% DevOps-инженеров со временем уходят в разработку или Technical Project Management. Остальные либо растут горизонтально, повышая свою стоимость на рынке за счет расширения компетенций, либо вертикально — прокачивают управленческие скиллы и занимают позицию технического директора.
Книги для будущих DevOps-ов
И в заключение хочу посоветовать несколько книг, которые особенно будут полезны новичкам профессии и тем, кто только планирует в нее погрузиться
«Компьютерные сети», Виктор и Наталья Олифер – базовые знания о принципах построения компьютерных сетей. Авторы расскажут вам об особенности традиционных и перспективных технологий локальных и глобальных сетей, научат создавать крупные составные сети и управлять ими.
«Руководство по подготовке к экзамену CCNA», Уэнделл Одом - опытный преподаватель и известный автор книг о сетях Cisco делится советами, как подготовиться к экзамену CCNA. Справочник познакомит с фундаментальными концепциями работы с сетями и вспомогательными приложениями и поможет прокачать практические навыки.
«Настольная книга Unix & Linux системного администратора», Эви Немет – будет интересно почитать как новичкам, так и опытным специалистам. В книге подробно описаны лучшие практики системного администрирования: управление хранилищами, проектирование и администрирование сети, веб-хостинг, совместимость Windows, виртуализация, управление организациями IT-услуг.
«Современные операционные системы», Эндрю Таненбаум - профессор Амстердамского свободного университета делится практическим опытом и на примерах помогает разобраться, как функционируют современные операционные системы. Обновленное издание включает свежие достижения в области информационных технологий – для вдохновения.
Комментарий недоступен
Зашел, кукарекнул и ушел?
Книги даны сугубо технические, как будто мы сисадминами собрались становиться. Но статья про DevOps, а DevOps это в большей части про культуру, а не инструменты. Поэтому дополню список книг одной недооценной в России книгой: Effective DevOps by Jennifer Davis, Ryn Daniels. Читать лучше сразу на английском, к русскому переводу у многих претензии. Труд объёмный, польза гигантская. Официальня ссылка ниже, но можно и так раздобыть:
https://www.oreilly.com/library/view/effective-devops/9781491926291/
Что такое СI/CD?
Комментарий недоступен
Комбинация непрерывной интеграции и непрерывного развертывания программного обеспечения в процессе разработки. Непрерывная доставка автоматизирует интеграцию в то время, как непрерывное развертывание автоматически выпускает финальную сборку для конечных пользователей. Регулярное тестирование в рамках CI/CD уменьшает количество ошибок и дефектов кода, что делает эту методику незаменимой для рабочего процесса DevOps.
Devops - методология автоматизации, эффективная в том случае, когда все в команде понимают и принимают как должна идти современная разработка.
Devops Engineer(он же системный инжераб) - профессия(кто не согласен - могу на голову нассать).
языки программирования – для написания скриптов DevOps-инженер использует Python и Bash, для приложений автоматизации — Golang;скрипты в том числе на го, автоматизация в том числе на пайтон. Скрипт на bash больше 20 строк должен быть переписан на go или python.
опыт системного администрирования – для качественного взаимодействия с командой инфраструктуры необходимы базовые знания Linux;нужны харкорные знания linux, и хорошие знания сети и dns
Soft skills:Минимум: быть масксимально общительным и быть входчивым в команду, понимать требования команды.
ВАЖНО: выстраивать devpos процессы самому(когда разрабы и манагеры строят инфру, ну или начинают писать dockerfile - это начало конца)
Ходить в рабочем костюме.