⚡️ Подпишитесь на Telegram
Получите все материалы с наших тренингов — бесплатно
Continuous Delivery ⏩ — непрерывная поставка
Continuous Delivery ⏩ — непрерывная поставка
Continuous Delivery ⏩ — непрерывная поставка

Continuous Delivery ⏩ — непрерывная поставка и апгрейды, и зачем это нужно

Continuous Delivery (CD или CDE) — «непрерывная поставка» — это подход к разработке программного обеспечения, основой которого является разработка короткими циклами.

Цель работы по принципам Continuous Delivery — более быстрые и частые поставки новых продуктов или функций, при этом безопасно и надежно.

Что такое Continuous Delivery

Зачем нужна непрерывная поставка и зачем она нужна? Она позволяет снизить время и стоимость разработки, повышает качество продукта, позволяет собирать обратную связь.

Визуально процесс работы по Continuous Delivery можно представить следующим образом:

continuous delivery

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

Все это достигается за счет автоматизации основных процессов, связанных с разработкой.

Все это позволяет делать поставки быстрее и чаще, и сфокусироваться на сборе обратной связи от пользователей, что в конечном счете позволяет делать продукт еще лучше.

Получите руководство по расчету экономики стартапа — бесплатно
Скачать модель

Основные принципы Continuous Delivery

  • Код всегда находится в развернутом состоянии. Даже если с ним работают сотни программистов ежедневно. Таким образом, процесс интеграции и тестирования как таковые могут полностью исчезнуть.
  • Больше автоматизации. Чтобы обеспечить непрерывную и быструю поставку, нам нужно максимально автоматизировать то, что может быть автоматизировано. Именно за счет автоматизации можно будет вносить даже совсем маленькие изменения.
  • Код всегда должен быть доступен для релиза, по требованию. В подходе Continuous Delivery, в отличие от Continuous Deployment, релизы происходят мануально, вручную. Однако пишется таким образом, чтобы его потенциально всегда можно было пустить в релиз.
Получите доступ к Google–диску LeadStartup
Бесплатно

Преимущества Continuous Delivery

  • Релизы с низкими рисками. Поскольку код всегда доступен для релиза, и изменения всегда относительно небольшие (за счет быстрой поставки всех возникающих изменений).
  • Быстрый Time To Market. Быстрые поставки приводят к быстрому получению ценности бизнесом и клиентом. Кроме того, сам факт того, что поставка происходит короткими циклами, это снижает риск того, что нам придется все переделывать, что займет много времени.
  • Снижение стоимости разработки. Любой продукт непрерывно совершенствуется с течением времени. Инвестируя в автоматизацию таких вещей, как билд, тестирование, развертывание — мы снижаем большое количество затрат, связанных с инкрементальными изменениями, вносимыми в продукт.
  • Продукт становится лучше. За счет того, что мы собираем обратную связь с пользователей и принимаем решения на основе данных (как обратной связи, так и данных, например, А/Б тестирования) — мы можем избежать многих изменений продукта, которые имеют нулевую или отрицательную ценность.
  • Высокое качество продукта. За счет того, что более рутинные задачи автоматизируются, команда может сосредоточиться на задачах более высокого уровня — таких, например, как юзабилити и безопасность. Естественно, что это повышает итоговое качество.
  • Больше счастья команды. Непрерывная поставка снижает выгорание команд. Потому что уменьшаются боли, связанными с релизами. А за счет быстрых релизов команда может лучше взаимодействовать с пользователями и получать обратную связь о том, что работает, а что — нет. То есть команда может сосредоточиться на том, о чем она заботится больше всего — на том, чтобы восхищать пользователей.
Материалы с наших тренингов — бесплатно
LeadStartup Энциклопедия
LeadStartup База знаний
Статьи и Публикации LeadStartup

«А это вообще нормально?»

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

Однако, это не так.

Исследования, которые проводили Nicole Forsgren, Gene Kim и Jez Humble показывают, что:

  • Команды с лучшими результатами делают поставки быстро и качество этих поставок более надежно.
  • Использование практик Continuous Delivery, таких как контроль версий, непрерывная интеграция, автоматическое тестирование — являются условиями хороших результатов.
  • Непрерывная поставка снижает и все боли, связанные с поставкой, и также снижает выгорание команды.

Так что да, непрерывно поставлять — это нормально, и даже более того, это полезно.

Чем лучше у вас будет внедрен Continuous Delivery, тем больше ценности получит ваш бизнес и ваши клиенты, и тем счастливее будет ваш персонал.

Связь Continuous Delivery и DevOps

Подход Continuous Delivery во многом похож на DevOps, но тем не менее это разные практики.

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

Continuous Delivery не фокусируется на культуре. Скорее, это инструмент, который позволяет сделать сам процесс поставки более быстрым и частым. В том числе за счет автоматизации.

Continuous Delivery может органично «перетекать» в DevOps, и DevOps может начинаться с практик непрерывной поставки.

Заключение

Пусть вам не покажется, что Continuous Delivery это магия и легкое решение. Скорее всего придется проделать серьезную работу, чтобы внедрить эту практику в компанию.

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