Принципы непрерывной поставки
Узнайте базовые принципы, лежащие в основе непрерывной поставки, с помощью этих руководств по началу работы.
Непрерывная поставка (сокращенно CD) — это широкий набор зарекомендовавших себя подходов к agile-разработке и организации команд. CD служит для создания оптимального автоматизированного процесса выпуска ПО. В его основе лежит итеративный цикл обратной связи. Он нужен для того, чтобы как можно быстрее поставить ПО конечному пользователю, изучить его практический опыт, а затем использовать полученные выводы в следующем релизе.
Непрерывная интеграция, непрерывная поставка или непрерывное развертывание?
Для обеспечения непрерывной работы сервиса необходимо согласовать структуру, ценности и инструменты команды, чтобы основной компетенцией стало высокое качество работы. Прочитать статью
Коммерческая ценность непрерывной поставки
Ценность непрерывной поставки для бизнеса не ограничивается одной лишь технической стороной. CD повышает скорость, производительность и предсказуемость результатов в командах разработчиков ПО. Прочитать статью
Построение карт потоков создания ценности
Систематизация потока ценности — это метод анализа, помогающий оптимизировать конвейер непрерывной поставки. Узнайте, как и для чего используется этот метод. Прочитать статью
Методика непрерывной поставки (CD) применяется во всей организации и предусматривает участие команд, не связанных с разработкой напрямую, например отделов проектирования, планирования и маркетинга. В рамках CD разработчики стремятся создать продукт для конечного пользователя, тогда как в средах с другим подходом разработка порой оказывается оторвана от реальности: главной аудиторией, на которую разработчики ориентируются при создании пользовательского интерфейса, становится команда контроля качества. В следующих разделах рассматриваются конкретные принципы, лежащие в основе рабочих процессов непрерывной поставки.
![Схема, иллюстрирующая непрерывный поток компьютерного кода и рабочих задач. | CI/CD Atlassian](https://wac-cdn.atlassian.com/dam/jcr:32be8518-7c49-4592-be9e-0c2feb2f481c/image1.png?cdnVersion=2079)
Надежный воспроизводимый процесс
Организационные процессы имеют собственный жизненный цикл разработки. Они обычно начинаются со списков задач или сборников сценариев, которые необходимо выполнять вручную. На более поздних этапах их можно автоматизировать с помощью программных инструментов и скриптов. Зафиксировав эти инструкции в программных скриптах, вы обеспечите их воспроизводимость. Если необходимо выполнить пункты контрольного списка снова, участник команды может запустить скрипт. Надежность достигается в том случае, когда эти скрипты согласованно выполняются в разных средах. Например, в инструкции по развертыванию кода в среде разработки или промежуточной среде необходимо как можно точнее имитировать рабочую среду. Благодаря такой надежной согласованности между средами и запусками можно устранить целый класс соответствующих багов.
Автоматизируйте все
Автоматизация — это основная ценность CD. Человеческое время стоит дорого, поэтому его следует разумно тратить на творческую деятельность, а не на утомительные задачи, выполняемые по заранее написанным инструкциям. Ручной процесс становится по-настоящему воспроизводимым и надежным, лишь когда он преобразован в код и автоматически выполняется по требованию. Автоматизированные задачи можно объединять в нужной последовательности, создавая дополнительные уровни автоматизации. Автоматизируйте как можно больше задач: тесты, релизы, изменения конфигурации и многое другое.
Контроль версий
Основной принцип непрерывной поставки — контроль версий. Без него в серьезном проекте по разработке ПО не обойтись. Благодаря контролю версий команда разработчиков может вести совместную работу над общей базой кода. Самая популярная система контроля версий, совместимая с методикой непрерывной поставки, — это Git. Контроль версий позволяет отменить изменения, откатив сборку к прошлой предвыпускной версии. Контроль версий должен быть реализован не только для кода, но и для конфигураций, скриптов, баз данных и документации. Это дает возможность отслеживать историю изменений.
Создавайте качественный продукт
При непрерывной поставке качество — это не последний фактор в списке, за который отвечает только команда контроля качества. Качество обеспечивается на каждом этапе конвейера релизов. Цикл обратной связи, лежащий в основе системы непрерывной поставки, предусматривает постоянную переоценку качества продукта, поставляемого конечным пользователям. Новый функционал перед поставкой проходит серию автоматизированных тестов, позволяющих убедиться в том, что код не содержит багов и соответствует требованиям к качеству. При планировании релиза новых возможностей следует закладывать время на анализ, мониторинг производительности и автоматическое тестирование.
Сначала делайте самое сложное
Трудоемкие и затратные по времени задачи, связанные с высоким риском ошибок, имеют свойство накапливаться с течением времени. Такие задачи следует решать в первую очередь, чтобы избежать снижения производительности из-за их накопления. Представьте, что неприятная задача отнимает по 20 минут в день пять раз в неделю. Это 100 неприятных минут в неделю, примерно 400 неприятных минут в месяц и т. д. А теперь представьте, что процесс можно оптимизировать и перестать тратить время на эту задачу. Разумеется, это очень выгодно.
Принцип «Сначала делайте самое сложное» помогает выявлять слабые места организационного процесса. Если какую-либо задачу откладывают на потом или активно избегают — чаще всего это знак, что в этом месте есть что совершенствовать, и над этим нужно активно работать. Командам необходимо регулярно уделять время сложным вопросам, чтобы оставаться в курсе дел и выдвигать эти вопросы на первый план при обсуждении дальнейших действий.
Ответственность несут все
Вся организация должна быть сориентирована и мотивирована таким образом, чтобы конечный пользователь получал результат как можно более высокого качества. Менеджерам по продукту нужно планировать работу, уделяя должное внимание развертыванию и контролю качества. Команда по обеспечению безопасности должна активно привлекаться к процессу выпуска релизов. Участники команды контроля качества должны тестировать среду разработки и промежуточную среду так же тщательно, как и рабочую среду, чтобы отлавливать все сбои до того, как выйдет финальный релиз. Разработчики должны активно участвовать в планировании релизов в рабочую среду.
![Члены команды проводят совместную проверку кода перед релизом. | CI/CD Atlassian](https://wac-cdn.atlassian.com/dam/jcr:e5be1672-cf94-495b-8427-a77e8a285ddb/CICD%20Microsite%20-%20Principles%20Hero.png?cdnVersion=2079)
«Сделано» значит выпущено.
Бизнес компаний-разработчиков ПО заключается в поставке ПО конечным пользователям. Такой бизнес невозможен, если приложение работает исключительно на компьютере одного разработчика. Фраза «У меня это работает!» должна настораживать, поскольку она обозначает отсутствие понимания общей цели бизнеса и сопереживания конечному пользователю. А идея непрерывной поставки полностью сосредоточена на поставке ПО конечному клиенту. Кроме того, «готово» — это не когда готов объем работы отдельного участника команды, а когда готова совместная работа всей команды.
Непрерывное совершенствование
Ценность непрерывной поставки
Надеемся, после прочтения предыдущих разделов у вас уже начало складываться представление о практической пользе непрерывной поставки для организации в целом. На макроуровне непрерывная поставка повышает эффективность процессов и взаимодействия команд, гибкость и прозрачность в масштабах всей организации, а также позволяет точно адаптировать продукт к особенностям рынка.
На микроуровне CD можно дополнить инструментом измерения метрик явного отслеживания. Некоторые полезные метрики CD перечислены ниже.
- Время от этапа проектирования новой возможности до ее выпуска в рабочую среду.
- С каким количеством багов рабочей версии сталкиваются пользователи.
- Уровень взаимодействия пользователей с новыми возможностями.
- Частота выпуска новых возможностей
Кроме того, CD можно использовать как основу для создания показателей эффективности работы организации, таких как KPI. А общая прибыль бизнеса и его финансовое благополучие являются отличными критериями для измерения эффективности организационных подходов.
Начало работы с непрерывной поставкой
Познакомившись с преимуществами и принципами непрерывной поставки, вы можете переходить к ее реализации. Начать лучше с непрерывной интеграции. Непрерывная интеграция (или CI) — это первый этап непрерывной поставки. Целью CI является автоматизация процесса релизов. Это достигается за счет использования инструментов автоматического тестирования кода и заданий по контролю качества. После того как CI будет реализована, на ее основе можно создавать процессы CD, чтобы обеспечить развертывание кода для конечных пользователей, а также разработать цикл обратной связи для управления будущими релизами.
Следующая тема
Рекомендуемые статьи
Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.
![Рисунок: DevOps](https://wac-cdn.atlassian.com/dam/jcr:bd9d8b2c-ca36-444f-8595-719cb1990e64/Devops-community.png?cdnVersion=2079)
Сообщество DevOps
![Рисунок: DevOps](https://wac-cdn.atlassian.com/dam/jcr:297108ea-d232-4368-af51-b53af230c4fe/Simulation-workshop.png?cdnVersion=2079)
Узнать больше в блоге
![Рисунок: карта](https://wac-cdn.atlassian.com/dam/jcr:25f6330a-4191-408f-a4e5-2e24bfba67b4/Maturity-model.png?cdnVersion=2079)