Специализации в DevOps Термин DevOps впервые появился около десяти лет назад для обозначения набора практик, сочетающего разработку программного обеспечения и ИТ-операции. DevOps – это не просто профессия, а скорее отрасль с определенной культурой и методологическим подход к разработке и администрированию программного обеспечения.
С основами методологии DevOps вы можете подробнее ознакомиться в этой статье.
Знания, умения и навыки Единого определения инженера DevOps не существует. В общем случае это специалист, который работает, опираясь на методологию DevOps. Список базовых требований к его знаниям, умениям и навыкам обширен, но конкретные позиции в разных организациях отличаются.
Перечислим некоторые скилы, которые потребуются любому инженеру DevOps:
Soft Skills; системы управления версиями; CI/CD; Контейнеры; Автоматизация; Облако; Тестирование; Безопасность; Платформы; Программирование; Сети; Инструменты DevOps. Подробнее об этих скилах и как ими овладеть, можно узнать из материала «Дорожная карта инженера DevOps».
Направления по специализациям Внутри DevOps уже начали формироваться специализации, обусловленные характером должности и сферой деятельности команды разработчиков. Постепенно инженер DevOps превращается из человека-оркестра в узкого специалиста.
1. TechOps Системные администраторы, эникеи, HelpDesk Engineer. TechOps – это роль, которая включает в себя большую часть традиционных для системного администратора обязанностей. Сюда входят отчеты об инцидентах, управление мощностью, работа с системами мониторинга, планирование инфраструктуры и т.д. TechOps может заниматься проверкой и обновлением ПО, а также решением внутренних сетевых проблем.
В традиционных условиях TechOps будет тестировать и контролировать готовую систему. В их задачи могут входить перезагрузка сервера после сбоя и автоматизация процессов, тестирование или создание отчетов об ошибках. Эти функции не зависят от производственной группы и начинаются после этапа производства.
2. LiveOps Администраторы, отвечающие преимущественно за продуктивные среды. Live-Ops – основанная на анализе данных операционная деятельность с целью изменения и улучшения базовой функциональности продукта. Обычно LiveOps применяется к компьютерным играм. Администратор LiveOps отвечает за изменения в продукте без выпуска нового релиза.
3. CloudOps
CloudOps – администраторы, специализирующиеся на публичных облаках. Они отвечают за управление внутренней инфраструктурой в облаке. CloudOps подразумевает формализацию передовых практик и процедур, которые позволяют правильно функционировать облачным платформам, а также приложениям и данным в них.
Наряду с технологиями виртуализации и облачными решениями, для работы в этом направлении понадобится знание Dockers, Puppet и/или Chef.
4. PlatOps/InfraOps/SysOps В различных организациях это направление может называться по-разному, но должность всегда подразумевает администрирование инфраструктуры. Специалисты этого направления отвечают в первую очередь за развертывание, масштабирование, миграцию и управление системами.
В отличие от классического DevOps, SysOps следует подходу ITIL (Information Technology Infrastructure Library). Основное внимание здесь уделяется формированию строгих правил предоставления ИТ-услуг, соответствующих бизнес-целям.
Команда SysOps придерживается последовательного подхода к развертыванию и изменению программного обеспечения. Чтобы помочь разработчикам, инженер SysOps поддерживает согласованный способ развертывания и изменения приложения.
5. BizDevOps (BizOps) BizOps – это набор методов, который объединяет бизнес-функции и технологии посредством принятия решений на основе данных. BizOps отличается от обычного DevOps более интегрированным подходом. В то время как DevOps ориентирован на ИТ и разработку программного обеспечения, BizOps интегрирует технологии в повседневные организационные решения и бизнес-операции.
6. SecOps
SecOps – это методика, направленная на автоматизацию задач безопасности путем объединения групп безопасности и групп ITOps. Благодаря автоматизации критически важных задач безопасность вводится в каждый этап жизненного цикла продукта.
Цель методологии SecOps – обеспечить соответствие всех систем целям производительности, доступности и безопасности. Философия SecOps поощряет сотрудничество между дизайнерами, программистами и лицами, ответственными за кибербезопасность. Эта команда может рассматривать угрозы в течение всего цикла разработки и то, как эти угрозы влияют на программное обеспечение и пользователей.
Подход SecOps позволяет группам безопасности масштабироваться, распределяя обязанности между остальным персоналом и помогая на каждом этапе внедрять меры противодействия угрозам.
7. NetOps NetOps ответственны за сетевое администрирование при разработке продукта. Подход NetOps к сетевым операциям ставит во главу угла гибкость и быстрое развертывание. Он включает автоматизацию, виртуализацию и оркестровку.
Подход NetOps выходит за рамками традиционных сетей и предполагает внедрение основных ценностей DevOps. Операции NetOps связаны с общими бизнес-целями и включают части как операций разработки (DevOps), так и операций безопасности (SecOps). NetOps предполагает более быструю доставку приложений и безопасное функционирование сетей, которое согласуется со стратегиями и целями предприятия.
NetOps выступает за модернизацию ИТ-инфраструктуры с использованием программно-определяемых сетей, сетей на основе намерений и виртуализации сетевых функций. Подход направлен на то, чтобы сделать сетевые операции интуитивно понятными, контекстно-зависимыми и ориентированными на аналитику за счет внедрения методов AI и ML.
NetOps побуждает сетевые команды работать стратегически и согласованно с командами DevOps и SecOps, чтобы обеспечить достижение общих бизнес-целей. Командам DevOps и SecOps предоставляется некоторая степень контроля над операциями сетевой инфраструктуры.
8. DevSecOps DevSecOps – это интеграция DevOps и SecOps. DevSecOps – это еще один тип философии, который способствует обеспечению безопасности в процессе разработки.
Разработчики DevSecOps запускают тесты во время кодирования, а затем запускают дополнительные тесты безопасности, чтобы передать их в развертывание и производство. Если они терпят неудачу, код возвращается для исправления, прежде чем достигнет стадии производства. При использовании этого процесса риск развертывания программного обеспечения с уязвимостями значительно снижается.
Внедрение DevSecOps усиливает меры безопасности за счет обнаружения уязвимостей на ранних этапах цикла разработки. Оно также гарантирует автоматизированный способ проверки кода и продвижения безопасных шаблонов и принципов проектирования среди разработчиков.
9. DataOps
DataOps – это практика, в которой аналитики, специалисты по обработке данных, программисты и админы сотрудничают на протяжении всего жизненного цикла службы от проектирования до разработки, внедрения и поддержки.
Хотя DataOps начинался как набор передовых методов, теперь он превратился в новый и независимый подход к аналитике данных. DataOps использует методологию Agile для сокращения времени разработки и аналитики в соответствии с бизнес-целями. Цель DataOps на предприятии – повысить скорость анализа и создать аналитические результаты для потребителей данных. Как и в DevOps, ключевым принципом в DataOps является автоматизация.
DataOps использует статистический контроль процессов (SPC) для мониторинга и управления конвейером анализа информации. При наличии SPC данные постоянно отслеживаются и проверяются на работоспособность. В случае возникновения аномалии группа аналитиков данных может быть уведомлена с помощью автоматического оповещения. DataOps не привязан к конкретной технологии, архитектуре, инструменту, языку или структуре.
Наш небольшой список охватывает только главные направления отрасли DevOps. Помимо них существуют и другие, в т.ч. более узкие специализации.
Связь направления со скилами Если мы сравним обязанности специалистов каждого из направлений с общим для всех DevOps списком скилов, то сможем легко определить на какие именно области знаний стоит обратить внимание.
TechOps потребует углубленного знания тестирования, сетевого администрирования, автоматизации и soft skills как обязательный пункт. LiveOps предполагает глубокое знание методик CI/CD, анализа данных и программирования, а также сетевых технологий, позволяющих производить тонкую настройки ПО без выпуска новых релизов. CloudOps , как и следует из названия, в основном требует знания облачных технологий и контейнеров, плюс немного автоматизации и OSI. SysOps подразумевает понимание инфраструктуры продукта и разработки. BizDevOps предполагает наличие у специалиста навыков работы с данными и понимание бизнес процессов. NetOps – это опытный сетевой инженер со скилами автоматизации процессов и умением применять методы AI и ML. SecOps и DevSecOps в первую очередь требуют связанных с информационной безопасностью и тестированием навыков. DataOps предполагает глубокое понимание анализа данных. ***
Какое бы направление для развития вы не выбрали, постоянное обучение и актуализация знаний является важнейшей частью работы любого ИТ-специалиста. В этом вам всегда придет на помощь «Библиотека программиста». Удачи в обучении!