Рекомендации по выбору пакета инструментов DevOps

Какой пакет инструментов DevOps выбрать: универсальный или настраиваемый?

Фотография: Роберт Крон
Роберт Крон

Технический руководитель, DevOps

Под редакцией Чендлера Харриса

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

От Agile к DevOps


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

Удивительно, как быстро все меняется. Благодаря облачным вычислениям, SaaS и постоянно работающим службам цикл разработки значительно ускорился. Как правило, несколько этапов разработки и тестирования происходят параллельно. В то время как модель Agile предполагала выполнение спринтов за одну-две недели, команды в современных облачных средах выполняют итерации и развертывание несколько раз в день. Рабочие процессы и базы кода постоянно развиваются. Чтобы обеспечить непрерывное развертывание качественного кода, команды используют флажки возможностей, прогрессивные развертывания и A/B-тестирование.

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

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

Что такое пакет инструментов DevOps?


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

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

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

Значок соединенных колец
Связанные материалы

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

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

Просмотреть интеграции

Рисунок: цикл DevOps

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

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

Подходы к созданию пакета инструментов DevOps


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

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

Универсальный пакет инструментов DevOps

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

Настраиваемый пакет инструментов DevOps

Другой подход заключается в использовании пакета инструментов DevOps, который можно видоизменять согласно потребностям команды, наполняя необходимыми инструментами. Это позволяет командам внедрять инструменты, которые она знает и любит. Так, для планирования и отслеживания рабочих процессов команда может использовать Jira, для создания отдельных сред разработки — Kubernetes, для совместной работы над кодом — GitHub, для непрерывной интеграции — Jenkins и т. д. Организации могут настраивать отдельные рабочие процессы для команд и проектов.

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

Заключение


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

Подробнее об инструментах для каждого этапа цикла DevOps.

Robert Krohn
Robert Krohn

Роберт Крон — технический руководитель отдела DevOps в Atlassian. За его плечами более 20 лет разработки ПО, а также опыта в роли менеджера и руководителя. Его профессиональная деятельность была связана с программным обеспечением, оборудованием и операциями в различных продуктовых сегментах рынка. Ему нравится формировать технические команды мирового уровня и создавать продукты, которым нет равных на рынке. Он увлекается катанием на велосипеде и лыжах, а также любит ходить под парусом на своем «Лазере». Роберт живет в Бельведере (Калифорния) с женой Николь, детьми, собаками и кошкой.


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

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

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

Рисунок: DevOps

Сообщество DevOps

Рисунок: DevOps

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

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

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

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

Thank you for signing up