Непрерывная интеграция против непрерывной доставки или непрерывного развертывания

366

В чем разница между этими тремя терминами? Мой университет дает следующие определения:

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

Непрерывная поставка описывается как логическая эволюция непрерывной интеграции: всегда иметь возможность запустить продукт в производство!

Непрерывное развертывание описывается как логический следующий шаг после непрерывной доставки: автоматическое развертывание продукта в производстве при каждом прохождении QA!

Они также дают предупреждение: иногда термин «Непрерывное развертывание» также используется, если вы можете непрерывно развертываться в тестовой системе.

Все это оставляет меня в замешательстве. Любое объяснение, которое немного более подробно (или идет с примером), приветствуется!

lambdarookie
источник
1
Я думаю, что деловые причины в некоторых сферах бизнеса могут помешать компании выбрать модель непрерывного развертывания. Таким образом, это не «логический следующий шаг».
Джордан Стюарт
2
@lambdarookie - лучшее объяснение! Коротко и
точно
лучший референс для меня atlassian.com/continuous-delivery/ci-vs-ci-vs-cd
shareef
Мой последний источник katalon.com/resources-center/blog/ci-cd-introduction
Крис Смит,

Ответы:

353

Непрерывная интеграция

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

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

Это связано с размером задач, которые вы назначаете разработчику; Если оценивается, что задача занимает 4-5 человеко-дней, то у разработчика не будет побуждения что-либо делать в течение следующих 4-5 дней, потому что он еще ничего не сделал - пока.

Итак, размер имеет значение:

small task = continuous integration
big task   = frequent integration

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

Непрерывная доставка

В рамках Непрерывной Доставки в основном есть три школы :

Непрерывная доставка является естественным продолжением непрерывной интеграции

Эта школа рассматривает серию подписей «Мартин Фаулер» Аддисона-Уэсли и делает предположение, что с тех пор, как выпуск 2007 года назывался «Непрерывная интеграция», а тот, что последовал в 2011 году, назывался «Непрерывная доставка», они, вероятно, представляют собой том 1 + 2. той же концептуальной идеи, которая имеет отношение к непрерывному что-то .

Непрерывная доставка связана с Agile Software Development

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

Принятие во внимание первого принципа в Agile Manifesto, где термин «непрерывная доставка» фактически используется впервые:

Нашим главным приоритетом является удовлетворение потребностей клиентов путем своевременной и непрерывной поставки ценного программного обеспечения.

Эта школа утверждает, что «Непрерывная доставка» - это парадигма, охватывающая все, что требуется для автоматической проверки вашего «определения выполненного» .

Эта школа признает, что «Непрерывная доставка» и модное слово или мегатренд «DevOps» являются оборотными сторонами одной медали, в том смысле, что они оба пытаются охватить или заключить в капсулу эту новую парадигму или подход, а не просто технику.

Непрерывная доставка - это синоним непрерывного развертывания.

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

Когда что-то готово в руках разработчиков, оно немедленно доставляется конечным пользователям, что в большинстве случаев означает, что оно должно быть развернуто в производственной среде. Следовательно, «Развернуть» и «Доставить» означает одно и то же.

В какую школу поступить

Ваш университет явно присоединился к первой школе и утверждает, что мы имеем в виду том 1 + 2 той же серии публикаций. Мое мнение таково, что это неправильное использование термина непрерывная доставка.

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

Школа, которая использует доставку в качестве синонима для развертывания, в основном поддерживается поставщиками инструментов, которые создают консоли развертывания, пытаясь получить немного шумихи от более широкого использования термина « Непрерывная доставка» .

Непрерывное развертывание

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

Для большого количества доменов, которые производят программное обеспечение, где нет централизованного источника информации (устройства, потребительские продукты, клиентские установки и т. Д.) Или где централизованный источник информации легко обновляется (в приложениях хранятся системы управления артефактами, репозитории с открытым исходным кодом и т. Д. ), термин «непрерывное развертывание» почти не афишируется. Они просто развернуты; это не большая вещь - это не боль, которая требует особого внимания.

Тот факт, что Непрерывное развертывание не является чем-то интересным для всех, является также аргументом, что школа, которая утверждает, что «доставка» и «развертывание» являются синонимами, все неправильно поняла. Потому что Continuous Delivery на самом деле имеет смысл для всех, даже если вы используете встроенное программное обеспечение для устройств или выпускаете плагины с открытым исходным кодом для платформы.

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

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

Опять же, я верю, что ваш университет ошибся. Они принимают «Непрерывное развертывание» за «Непрерывное освобождение».

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

Непрерывная история доставки

На картинке все это оживает:

введите описание изображения здесь

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

Lakuzz
источник
3
Если один человек действительно понимает, что такое тестирование программного обеспечения, все «виртуальные» различия между непрерывной интеграцией / доставкой / развертыванием / выпуском больше не имеют смысла.
CuongHuyTo
6
Картина сломана, у вас есть где-нибудь еще?
Уэстон
Является ли это недостающее изображение? Я нашел это в другом месте с тем же именем файла.
c24w
4
Я не понимаю, почему так много людей проголосовали за этот ответ, который начался с «Я согласен с определением вашего университета», а затем сказал: «Я считаю, что ваш университет ошибся». Я нахожу этот ответ, хотя длинный и тщательно продуманный, запутанный и переоценочный Просто посмотрите определения Amazon и то, что NoIce говорит в этой теме ниже. Также, пожалуйста, прекратите определять парадигмы или стратегии с помощью таких терминов, как «в идеале», например, в «в идеале, каждое задание на разработку должно длиться 1 день», на практике это не так много раз, так какой смысл? давайте определим стратегии и парадигмы, которые работают в реальной жизни.
Ovi
3
@ Ovi-WanKenobi - та часть, в которой он говорит, что согласен с университетом, о котором он говорит, в определении непрерывной интеграции, и та часть, в которой, как он говорит, университет ошибся, он говорит о непрерывном развертывании, поэтому одно не лишает законной силы другое, они не взаимоисключающий. Кроме того, ответ Нольче довольно запутанный, и формат ответа не привлекает людей для его прочтения, даже если он может содержать полезную информацию (люди здесь часто оценивают ответы по их формату, даже не читая их).
Алиссон
84

Ни вопрос, ни ответы не соответствуют моему простому образу мышления. Я являюсь консультантом и синхронизировал эти определения с рядом команд разработчиков и разработчиков DevOps, но мне интересно, как они соотносятся с отраслью в целом:

В основном я думаю о гибкой практике непрерывной доставки как о континууме:

Непрерывно (все вручную) 0% ----> 100% непрерывная доставка стоимости (все автоматизировано)

Шаги к непрерывной доставке:

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

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

  2. Непрерывная интеграция (CI): автоматическая сборка и выполнение как минимум модульных тестов, чтобы доказать интеграцию нового кода с существующим кодом, но предпочтительно интеграционные тесты (сквозные).

  3. Непрерывное развертывание (CD): автоматическое развертывание, когда код передает CI по крайней мере в тестовую среду, предпочтительно в более высокие среды, когда качество подтверждается либо посредством CI, либо путем пометки более низкой среды как PASSED после ручного тестирования. То есть, тестирование может быть ручным в некоторых случаях, но продвижение в следующую среду происходит автоматически.

  4. Непрерывная поставка: автоматическая публикация и выпуск системы в производство. Это компакт-диск в производство и любые другие изменения конфигурации, такие как настройка для A / B-тестирования, уведомление пользователей о новых функциях, уведомление о поддержке новой версии и заметок об изменениях и т. Д.

РЕДАКТИРОВАТЬ: я хотел бы отметить, что есть разница между концепцией «непрерывной доставки», как указано в первом принципе Agile Manifesto ( http://agilemanifesto.org/principles.html ) и практикой непрерывной доставки, как представляется, на что ссылается контекст вопроса. Принцип непрерывной доставки заключается в стремлении сократить отходы инвентаризации, как описано в Lean мышлении ( http://www.miconleansixsigma.com/8-wastes.html ). Практика непрерывной доставки (CD) гибкими командами возникла за многие годы, прошедшие с момента написания Agile Manifesto в 2001 году. Эта гибкая практика напрямую затрагивает этот принцип, хотя это разные вещи и, по-видимому, их легко спутать.

tmgirvin
источник
5
Отличный консультант-ответ. Я в той же лодке, что и вы, и я согласен, что должен быть более реальный ответ; Вместо типичного ответа колледжа или корпоративного списка пожеланий.
Суамер
62

Я думаю, что определение Амазонки является прямым и простым для понимания.

« Непрерывная поставка - это методология разработки программного обеспечения, в которой процесс выпуска автоматизирован. Каждое изменение программного обеспечения автоматически создается, тестируется и развертывается в рабочей среде. Перед окончательным внедрением в производство человек, автоматический тест или бизнес-правило решают, когда должен произойти окончательный толчок. Хотя каждое успешное изменение программного обеспечения может быть немедленно передано в производство с непрерывной доставкой, не все изменения должны быть выпущены сразу.

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

Пожалуйста, ознакомьтесь с http://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html

Нгок Нгуен
источник
3
Я думаю, что этот ответ должен быть принят как правильный ответ на этот вопрос!
В. Ковпак
1
Да, этот ответ проще всего понять.
Аман Гупта - ШОТЭР
46

Atlassian опубликовал хорошее объяснение непрерывной интеграции, непрерывной доставки и непрерывного развертывания .

СI-против-ХИ-против-CD

В двух словах:

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

Непрерывная доставка - это Continuous Integration + Развертывание приложения в производство «нажатием на кнопку» (выпуск для клиентов часто, но по требованию).

Непрерывное развертывание - это непрерывная доставка, но без участия человека (выпуск для клиентов продолжается).

Ноам Манос
источник
35

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

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

  • Один или два разработчика сохраняют локальные изменения в течение нескольких дней, потому что «они еще не готовы».
  • Один или два разработчика создают ветки в контроле исходного кода, чтобы они могли работать над своими функциями (-ями) ", не беспокоясь об изменениях других людей".

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

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

Непрерывная поставка описывается как логическая эволюция непрерывной интеграции: всегда иметь возможность запустить продукт в производство!

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

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

Непрерывное развертывание описывается как логический следующий шаг после непрерывной доставки: автоматическое развертывание продукта в производстве при каждом прохождении QA!

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

Исправления дефектов отправляются клиентам быстрее, новые функции достигают рынка быстрее, новые идеи проверяются на рынке с меньшими приращениями, что позволяет перенаправлять приоритеты и т. Д.

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

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

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


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

Дэвид
источник
2
Этот ответ применяется, когда у вас есть дюжина разработчиков или около того, и гибкие резервы хорошо реализованы, а задания передаются в виде кусков работы в виде часов. Сказав это, мне еще предстоит работать в среде, где рабочие места не всегда становятся намного больше, что делает определение идеалистическим и никогда не достигается на самом деле. Я искренне хотел бы знать, действительно ли какие-либо гибкие команды достигают этой стадии, не имея жалоб в стендах, что ожидаемое время, отведенное для делегированных задач, неоправданно мало.
MagicLAMP
22

Один график может заменить много слов:

введите описание изображения здесь

Наслаждайтесь! :-)

# Я обновил правильное изображение ...

simhumileco
источник
5
Картина немного неправильная ... Непрерывная доставка - это та, которая запускает производство вручную. Непрерывное развертывание - это то, с автоматическим триггером производства
gharper
1
@amirouche да, я сделал :)
simhumileco
2
Хорошо, я неправильно читал картинку. На самом деле разница между непрерывной доставкой и развертыванием континуума заключается только в цвете стрелки ... IMO будет более очевидным различие между ними, если производственный круг находился за прямоугольником в непрерывной доставке.
amirouche
1
В чем разница между приемочным тестом и интеграционным тестом на этих изображениях?
Иона
6

Разница между непрерывной интеграцией, непрерывной доставкой и непрерывным развертыванием

введите описание изображения здесь

Маниваннан Тирунанам
источник
4

Я думаю, что мы закончили анализ и, возможно, немного усложнили «непрерывный» набор слов. В этом контексте непрерывность означает автоматизацию. Для других слов, добавленных к «непрерывному», используйте английский язык в качестве руководства по переводу, и, пожалуйста, не пытайтесь усложнить ситуацию! В «непрерывной сборке» мы автоматически собираем (пишем / компилируем / ссылаемся / и т. Д.) Наше приложение во что-то исполняемое для конкретной платформы / контейнера / среды выполнения / и т. Д. «Непрерывная интеграция» означает, что ваша новая функциональность тестируется и работает так, как задумано, при взаимодействии с другим объектом. Очевидно, что до того, как произойдет интеграция, должна произойти сборка, и для ее проверки также необходимо провести тщательное тестирование. Итак, в «непрерывной интеграции» каждый использует автоматизацию, чтобы повысить ценность существующего набора функций таким образом, чтобы это не отрицательно нарушало существующую функциональность, а скорее интегрировалось с ней, добавляя воспринимаемую ценность ко всему. Интеграция подразумевает, по своему простому английскому определению, что вещи гармонично сочетаются друг с другом, поэтому при кодовом разговоре мои дополнения компилируются, связываются, тестируются и отлично работают в целом. Вы бы не назвали что-то интегрированным, если бы это не дало конечный продукт, не так ли? В нашем контексте «Непрерывное развертывание» является синонимом «непрерывной доставки», поскольку в конце концов мы предоставили функциональность нашим клиентам. Однако, чрезмерно проанализировав это, я могу утверждать, что развертывание является подмножеством доставки, поскольку развертывание чего-либо не обязательно означает, что мы доставили. Мы развернули код, но потому что у нас нет Мы эффективно не общались с заинтересованными сторонами, но мы не смогли реализовать их с точки зрения бизнеса! Мы развернули войска, но мы не доставили обещанную воду и еду в соседний город. Что если я добавлю термин «непрерывный переход», будет ли он иметь свои достоинства? В конце концов, может быть, он лучше подходит для описания движения кода в средах, поскольку он имеет коннотацию «от / до» в большей степени, чем развертывание или доставка, которая может подразумевать только одно местоположение, навсегда! Это то, что мы получаем, если не применяем здравый смысл. будет ли это иметь свои достоинства? В конце концов, может быть, он лучше подходит для описания движения кода в средах, поскольку он имеет коннотацию «от / до» в большей степени, чем развертывание или доставка, которая может подразумевать только одно местоположение, навсегда! Это то, что мы получаем, если не применяем здравый смысл. будет ли это иметь свои достоинства? В конце концов, может быть, он лучше подходит для описания движения кода в средах, поскольку он имеет коннотацию «от / до» в большей степени, чем развертывание или доставка, которая может подразумевать только одно местоположение, навсегда! Это то, что мы получаем, если не применяем здравый смысл.

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

Noice
источник
3
Пожалуйста, посмотрите как ответить .
xenteros
3

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

Непрерывная доставка: непрерывная доставка кода в среду, как только код готов к отправке. Это может быть постановка или постановка. Идея заключается в том, что продукт доставляется в пользовательскую базу, которая может быть проверена или проверена QA или клиентами.

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

Непрерывное развертывание: развертывание или выпуск кода, как только он будет готов. Непрерывное развертывание требует непрерывной интеграции и непрерывной доставки, в противном случае качество кода не будет гарантировано в выпуске.

Непрерывное развертывание ~~ Непрерывная интеграция + Непрерывная доставка

mohan08p
источник
2

Диаграмма CI / CD

Непрерывная интеграция

  • Автоматизированный (построение чеков и юнит-тестов)

Непрерывная доставка

  • Непрерывная интеграция
  • Автоматизированный (развертывание в тестовой среде + нагрузочное тестирование + интеграционный тест)
  • Ручной (развертывание в производство)

Непрерывное развертывание

  • Непрерывная доставка, но автоматизированная (развертывание в производство)

CI / CD - это путешествие. Не пункт назначения.

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

Сноска:

Практика непрерывной интеграции и непрерывной доставки на AWS

PS1
источник
2

Источник: https://thenucleargeeks.com/2020/01/21/continuous-integration-vs-continuous-delivery-vs-continuous-deployment/

Что такое непрерывная интеграция Непрерывная интеграция - это процесс или практика разработки автоматизированной сборки и автоматического тестирования, т.е. разработчик должен многократно фиксировать свой код в общем хранилище, где каждая интеграция проверяется с помощью автоматической сборки и тестирования.

Если сборка не удалась / об успехе, она уведомляется разработчику, а затем он может предпринять соответствующие действия.

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

Что такое непрерывное развертывание С помощью CI мы создали сборку для нашего приложения и готовы приступить к работе. На этом этапе наша сборка готова, и с CD мы можем развернуть наше приложение непосредственно в среде QA, и, если все пойдет хорошо, мы можем развернуть ту же сборку для производства.

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

Непрерывное развертывание - это комбинация управления конфигурацией и контейнерирования.

Управление конфигурацией: CM - это поддержка конфигурации сервера, которая будет совместима с требованиями приложения.

Контейнерирование . Контейнерность - это набор плат, который будет поддерживать согласованность в среде.

Источник Img: https://www.atlassian.com/

Источник Img: https://www.atlassian.com/

Адитья
источник
1

DevOps представляет собой сочетание 3C - х - непрерывной , коммуникации , совместной работы и это приведет к прайм фокуса в различных отраслях промышленности.

В мире устройств, подключенных к IoT, множество функций Scrum, таких как владелец продукта, Интернет, мобильные устройства и QA, работают в гибкой манере цикла Scrum, чтобы доставить продукт конечному покупателю.

Непрерывная интеграция: функция Multi Scrum работает одновременно в нескольких конечных точках

Непрерывная поставка: с интеграцией и развертыванием, доставка продукта нескольким клиентам будет осуществляться одновременно.

Непрерывное развертывание: несколько продуктов развернуто для нескольких клиентов на нескольких платформах.

Посмотрите, чтобы узнать, как DevOps позволяет подключаться к миру IoT: https://youtu.be/nAfZt2t4HqA

eInfochips - Комал С
источник
0

Из того, что я узнал с Алексом Коуэном в курсе « Непрерывная доставка и DevOps» , CI и CD являются частью конвейера продуктов, который состоит из времени, от перехода от наблюдений к выпущенному продукту.

Продуктовый конвейер Алекса Коуэна, 2018

Цель - от наблюдений до дизайна - получить идеи для тестирования высокого качества. Эта часть процесса считается непрерывным дизайном .

Что произойдет после того, как мы перейдем к Коду и далее, он считается возможностью непрерывной доставки , целью которой является быстрое воплощение идей и предоставление заказчику (вы можете прочитать книгу Джеза Хамбла « Непрерывная доставка: надежные выпуски программного обеспечения посредством сборки, тестирования, и Deployment Automation для более подробной информации). Следующий конвейер объясняет, из каких этапов состоят непрерывная интеграция (CI) и непрерывная доставка (CD).

CI / CD Алекса Коуэна

Непрерывная интеграция , как объясняет Маттиас Петтер Йоханссон ,

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

(вы можете посмотреть следующие два видео для более практического обзора, используя CircleCI - Начало работы с CircleCI - Непрерывная интеграция P2 и Запуск CircleCI по запросу на извлечение ).

Можно указать конвейер CI / CD следующим образом, который идет от нового кода к выпущенному продукту.

Трубопровод непрерывной доставки Алекса Коуэна, 2018

Первые три шага связаны с тестами, расширяя границы тестируемого.

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

Примечание : это не обязательно, как должны выглядеть ваши конвейеры, но они могут служить ссылкой.

Тиаго Мартинс Перес 李大仁
источник
0

давайте будем коротки:

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

Саджад Серайзаде
источник