Close

DevOps и Agile

В чем различия и сходства между Agile и DevOps?

Портрет Тома Холла
Том Холл

Консультант и специалист по DevOps


В начале 2000-х годов методика Agile получила широкое распространение и перевернула подход к разработке программного обеспечения и других продуктов. Однако через несколько лет после того, как она стала отраслевым стандартом, было выявлено критическое упущение: революция не коснулась процессов и требований команды по эксплуатации, занимающейся развертыванием программных продуктов и управлением ими.

Затем появился подход DevOps, который согласовал действия команд по разработке и эксплуатации. Так методика DevOps заменила Agile? Или они дополняют друг друга? Оказывается, между ними есть как различия, так и сходства. Подходы Agile и DevOps могут быть не только монопольными, но и безбарьерными, что позволяет им сосуществовать внутри организации.

Что такое agile?


Agile — это итеративный подход к управлению проектами и разработке программного обеспечения, который ориентируется на совместную работу, отзывы клиентов и быстрый выпуск. Он возник в начале 2000-х годов из индустрии разработки программного обеспечения, чтобы помочь командам разработчиков реагировать на меняющиеся рыночные условия и требования клиентов, а также адаптироваться к ним.

В рамках Agile некоторые виды планирования и проектирования проводятся заранее, однако сама разработка выполняется небольшими пакетами и требует тесного сотрудничества с заинтересованными лицами. Изменения вносятся непрерывно, и рабочая версия продукта зачастую выходит быстрее по сравнению с продуктами, разработанными по каскадной методике. Это дает множество преимуществ, наиболее важным из которых можно назвать оперативное исправление проблем продукта в случае, если он не соответствует потребностям или ожиданиям клиента.

Agile представляет собой совокупность методик, а не единый подход к разработке. Сюда входят Scrum, экстремальное программирование (XP) и другие подходы, которые были актуальны у разработчиков несколько лет назад. Agile — это результат объединения перечисленных подходов в единый набор принципов. Так появился Манифест Agile — список из 12 принципов, основанных на четырех основных ценностях.

Значок: централизованный узел
Связанные материалы

Подробнее о фреймворке CALMS

Значок структуры в голове
Связанные материалы

Подробнее об истории DevOps

Четыре основные ценности Манифеста Agile

Человечки, смотрящие на рабочий процесс разработки программного обеспечения

Люди и взаимодействие
важнее процессов и инструментов

Раскрытая папка с выполненными заявками

Работающий продукт
важнее исчерпывающей документации

Человечки работают над платформой

Сотрудничество с заказчиком
важнее согласования условий контракта

Хрустальный шар

Готовность к изменениям
важнее следования первоначальному плану

Встречайте DevOps


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

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

Есть два общих фреймворка, которые помогают разобраться в DevOps, — «Три метода» и CALMS (расшифровывается как «культура, автоматизация, бережливость, измерения и распространение знаний»). Культура представляет собой сдвиг, при котором команды по разработке и эксплуатации начинают работать более сплоченно. Автоматизация повышает скорость и обеспечивает высокое качество. Принципы бережливости в отношении непрерывного совершенствования и принятия поражений закладывают основу экспериментального мышления. Измерения относятся к методу замера результатов для улучшения процессов. Распространение знаний подчеркивает важность совместных усилий и внедрения рекомендаций DevOps.

Три метода DevOps

Соединение частей пазла

Системное мышление
Усвоение точки зрения, согласно которой программные приложения являются сложными системами

Указатель с кнопкой воспроизведения

Укрепление циклов обратной связи
Улучшение двусторонней коммуникации между участниками команды

Человечки, смотрящие на рабочий процесс разработки программного обеспечения

Изменение культуры
Культура непрерывных экспериментов и обучения

Когда Agile и DevOps можно использовать вместе?


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

В чем различия и сходства между Agile и DevOps?


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

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

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

Заключение: Agile И DevOps


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

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

Tom Hall
Tom Hall

Том Холл — специалист по DevOps и евангелист этой методики, а также заядлый читатель и пианист-любитель.
В числе его достижений за последние 20 лет — сертификации Novell, EMC, VMware и AWS. Он помог организовать конференцию DevOpsDays в Атланте в 2016 году и в последующих годах — в Остине, штат Техас.


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

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

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

Рисунок: DevOps

Сообщество DevOps

Рисунок: DevOps

Образовательные программы DevOps

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

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

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

Thank you for signing up