Close

Важность структуры команды в DevOps

Разным командам нужна разная структура с учетом широкого контекста компании.

Шана Ву

Маркетинг продуктов, DevOps


Если команда разработчиков ПО готовится опробовать DevOps, важно понимать, что разным командам нужна разная структура с учетом широкого контекста компании и ее стремления к переменам.

Рост числа команд DevOps


Есть ли в вашей компании команда DevOps? Это вполне вероятно. По данным нашего опроса DevOps Trends (Тенденции DevOps), более чем в двух третях опрошенных организаций есть команда или сотрудник, в роли или должности которых упоминается DevOps.

Поскольку методика DevOps становится все популярнее, часто можно услышать, что команды разработчиков ПО стали командами DevOps. Однако для полной реализации преимуществ DevOps недостаточно просто добавить новые инструменты или присвоить команде статус DevOps.

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

Типы структуры команд DevOps


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

См. решение

Инструменты DevOps для всей команды

Связанные материалы

Сведения о преимуществах DevOps

Важно понимать, что не все команды ставят одинаковые цели или пользуются идентичными методами и инструментами. Не следует стандартизовать даже способ формирования команд. Разным командам нужна разная структура с учетом широкого контекста компании и ее стремления к переменам. У двух компаний может быть принципиально различное понимание команды DevOps.

Чтобы воспользоваться преимуществами DevOps — сократить время выхода на рынок, повысить частоту развертываний, развить культуру команд и расширить сотрудничество между командами и отделами, — важно понимать роль каждой команды. Тем не менее во многих организациях есть множество команд, которые выполняют сразу несколько задач с учетом своей роли (например, команда по инфраструктуре занимается как выбором инструментов, так и их сопровождением). Когда границы размыты, руководителям трудно представить общую организационную структуру и ответить на важные вопросы. Сформированы ли все необходимые команды? Имеются ли области, в которых не хватает возможностей и которыми не занимается ни одна команда? Соблюдается ли в командах необходимый баланс между автономностью и поддержкой со стороны других команд?

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

Совместная работа команд по разработке и эксплуатации

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

Чтобы добиться успеха в рамках такой структуры, разработчикам нужно понимать, что команды по эксплуатации должны обеспечивать время безотказной работы и минимизировать время решения проблем. Кроме того, командам по эксплуатации нужно понимать желание разработчиков ускорить развертывание и выход на рынок.

Разработка и эксплуатация в одной команде

В рамках этой структуры разработчики и инженеры по эксплуатации должны сидеть вместе и работать в одной команде, действуя сообща для достижения общих целей. Иногда такой подход называется NoOps (отсутствие команды по эксплуатации) и обычно встречается в технологических компаниях, производящих один основной цифровой продукт, например Facebook или Netflix. Кроме того, может использоваться принцип «кто разработал, тот и поддерживает», когда разработкой и эксплуатацией приложений занимаются одни и те же люди.

DevOps/SRE

При такой структуре, ставшей популярной благодаря Google, команда разработчиков передает продукт команде по техническому обеспечению надежности сайта (SRE), которая фактически управляет работой программного обеспечения. В этой модели команды разработчиков передают команде SRE журналы и другие артефакты, чтобы подтвердить, что их программное обеспечение соответствует стандартам, необходимым для его поддержки командой SRE. Команды разработчиков и SRE совместно формулируют критерии эксплуатации. Последние могут попросить разработчиков доработать код перед развертыванием в рабочей среде.

Ops как платформа

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

DevOps как третья сторона

DevOps выступает в качестве третьей стороны, когда компании привлекают консультанта или команду DevOps на ограниченный период времени, чтобы помочь командам по разработке и эксплуатации перейти к первым двум упомянутым структурам («сотрудничество между командами по разработке и эксплуатации» или «разработка и эксплуатация в одной команде»).

Можно по-разному использовать DevOps или вовсе отказаться от этого подхода. Командам и руководителям DevOps следует остерегаться антипаттернов разобщенности, недостатка взаимодействия и ситуаций, когда развитие инструментов идет в ущерб коммуникации.

Роли и обязанности в командах DevOps


Независимо от структуры, все высокоэффективные команды, следующие принципам DevOps, регулярно обмениваются знаниями и опытом в области разработки и эксплуатации во время регулярных собраний, при общении сотрудников разных команд и (или) участников команды, выполняющих обе задачи. Высокоэффективную команду отличают преимущества DevOps — ускорение выхода на рынок, сокращение времени внесения изменений, повышение частоты развертываний, более качественные результаты, лучшая культура команды и более тесная совместная работа с другими командами и отделами.

Команды DevOps обычно состоят из специалистов, обладающих навыками разработки и эксплуатации. Одни участники команды могут более искусно писать код, а другие — иметь больше опыта в управлении инфраструктурой и ее эксплуатации. Однако в крупных компаниях каждому аспекту DevOps, от CI/CD до IaaS и автоматизации, может соответствовать определенная должность. Это могут быть менеджеры по релизам, которые занимаются координацией и управлением приложениями, от их разработки до развертывания в рабочей среде, или архитекторы автоматизации, которые обслуживают и автоматизируют конвейер CI/CD команды.

Итак, что нужно для того, чтобы присоединиться к команде DevOps? Должностные требования для желающих присоединиться к команде DevOps меняются по мере появления новых технологий и методов, но качества хорошей команды DevOps остаются неизменными. Высокий уровень технической подготовки, хорошие навыки общения, настрой на работу в команде и способность быстро адаптироваться — вот несколько основных качеств хорошего специалиста по DevOps. Сочетание этих качеств, вероятно, будет важнее энциклопедических знаний о Kubernetes или Git. Однако не помешает обзавестись и тем и другим!

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

Программное обеспечение для поддержки команды


Хотя пакет инструментов DevOps определяется текущей повседневной работой команды, вам понадобится программное обеспечение, с помощью которого можно связать задачи и координировать работу между вашей командой и другими командами в организации. Jira — это мощный инструмент для планирования и отслеживания проектов по разработке ПО (а также для управления ими), с помощью которого можно сообщить статус работы коллегам по команде и всей организации.

Для быстрого и эффективного взаимодействия команд, особенно в мире удаленного доступа, в числе прочего нужны приложения, подобные Zoom, Slack и Microsoft Teams. Раньше, чтобы спросить о статусе инцидента, разработчик мог пообщаться с командой эксплуатации лично. Теперь мгновенную связь обеспечивают приложения для виртуального общения.

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

Shana Vu
Shana Vu

Shana is a product marketer passionate about DevOps and what it means for teams of all shapes and sizes. She loves understanding the challenges software teams face, and building content solutions that help address those challenges. If she's not at work, she's likely wandering the aisles of her local Trader Joes, strolling around Golden Gate, or grabbing a beer with friends.


Поделитесь этой статьей
Следующая тема

Рекомендуемые статьи

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

Рисунок: DevOps

Сообщество DevOps

Рисунок: DevOps

Семинар по моделированию

Рисунок схемы

Начните работу бесплатно

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up