Яким чином безперервна інтеграція стосується безперервної доставки / розгортання?


20

Ось цитата з поточного змісту :

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

Добре, я розумію. Але тоді також відбувається та , і саме тут я постійно дещо втрачаю:

  • Як постійна інтеграція стосується безперервної доставки та / або безперервного розгортання , якщо припустити, що десь уздовж лінії (ів) через integrationвас deliveringопиниться в цільовому середовищі, де все буде deployed.
  • Яка різниця між безперервною доставкою та безперервним розгортанням ?

Ще в часи, перш ніж DevOps називався DevOps, ми використовували термінологію, яка, можливо, допоможе зрозуміти ці нові терміни DevOps, такі як:

  • сприяти (або знижувати з) якусь попередню ціль, яка необов'язково поєднується з деяким типом процесу регенерації (компіляції, зв'язування тощо), щоб упакувати всі пов'язані компоненти разом у виконанні, подібні до виконання. Ось, що має бути схожим / близьким до постійної інтеграції , чи ні?
  • розповсюджуйте в якомусь цільовому середовищі, використовуючи щось на зразок FTP (якщо стандартні копії не можуть усунути пробіл), але ще не активуйте його в цілі. Ось, що має бути схожим / близьким до безперервної доставки , чи ні?
  • встановити (або активувати ) в якомусь цільовому середовищі в поєднанні з такими речами, як прив'язка, зупинка / запуск операцій і т. д. Ось що має бути подібним / близьким до безперервного розгортання , чи ні?

Занадто велика розмітка тегів робить його важким для читання. Це не приносить більше контексту питанню, тому я думаю, що Ордени можуть бути підкреслені підкресленням, _markdown_ щоб полегшити читання
Tensibai

1
Я маю на увазі, що редагування - це біль :) натяк на відповідь blog.crisp.se/wp-content/uploads/2013/02/…
Tensibai


Моя відповідна відповідь: softwareengineering.stackexchange.com/a/358551/3385
Nakilon

Відповіді:


23

Безперервна доставка та безперервне розгортання роблять безперервну інтеграцію ще на крок, додаючи крок "розгортання до виробництва". Різниця між безперервною доставкою та розгортанням полягає в тому, що для доставки цей крок виконується вручну, а для розгортання - автоматичним.

Різниця між постійною інтеграцією, безперервною доставкою та безперервним розгортанням

Різниця між постійною інтеграцією, безперервною доставкою та безперервним розгортанням. Малюнок скопійовано з codeproject.com

Незалежно від того, чи здійснюєте ви безперервну доставку чи постійне розгортання, це дуже великий вибір реалізації. Якщо ви здійснюєте безперервне розгортання, зміни коду будуть розгорнуті автоматично після проходження тестів на прийняття. Це може бути або не бажано для вашого продукту. Завдяки безперервній доставці люди можуть зробити вибір, чи буде розгорнута чи якась зміна коду (чи можливо, де саме вона розгорнута).

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


Приємно! Але ... рішення (Ваша відповідь) на проблему (моє запитання), змінює проблему ... читати далі ...
Pierre.Vriens

4

Безперервна доставка та безперервне розгортання (CD) - це більш-менш одне й те саме *. Кожен раз, коли зміна вважається «добре пройти» (перевірена / перевірена), її слід негайно відпустити. Ви можете це робити стільки разів на день, скільки закінчуються роботи.

Постійна інтеграція (CI) стосується лише злиття коду разом, щоб гарантувати, що гілки функцій не відходили занадто далеко від вашої основної гілки 'master', а також, щоб ви дуже швидко знали, чи є проблеми з кодом з інтеграційна перспектива - тобто ви порушили будь-яку функціональність під час зміни речей.

Що стосується того, як вони співвідносяться один з одним, CI дуже допомагає перевірити код, щоб його можна було швидко випустити (CD). Ви все одно можете досягти компакт-диска без CI (і навпаки), але ви виявите, що часто набагато полегшує життя інтегрувати свій код рано і часто швидше знаходити проблеми, що, в свою чергу, дозволить швидше вирішити вказані проблеми, і нарешті швидше доставляйте свої функції!

* Редагувати: ось стаття, що обговорює різницю. https://puppet.com/blog/continuous-delivery-vs-continuous-deployment-what-s-diff Постійне постачання не завжди означає фактичне впровадження у виробництво у будь-який час, скоріше це означає постійне розгортання у виробничому середовищі , з впевненістю, що ці зміни можуть перейти до виробництва в будь-який час, коли бізнес буде готовий. На практиці більшість людей плутають ці терміни.


мерсі! Але як ви вважаєте, «більш-менш те саме», насправді? ви можете придумати що-небудь, що ілюструє будь-які нюанси?
Pierre.Vriens

Я оновив свою публікацію з приміткою про відмінності, проте, я вірю, що в звичайній розмові більшість людей будуть використовувати ці терміни взаємозамінно.
тайвух

2

Певна версія програмного продукту повинна спочатку пройти етап інтеграції, перш ніж його можна буде доставити чи розгорнути.

Для безперервної доставки / розгортання необхідна безперервна інтеграція. В іншому випадку, якщо завершені інтеграцією події занадто далеко, щоб кваліфікувати атрибут "безперервний", то можливі поставки / розгортання (типові підгрупи інтегрованих версій, як правило, відповідають умовам доставки / розгортання).

Оновлення: моя відповідь лише підкреслює залежність (взаємозв'язок) між CI та (обома) компакт-дисками, термінологія досить добре висвітлена у відповіді Телпера.

Єдиний коментар, який я маю до цього, стосується (перевантаженого) використання deployment. Розгортання у невиробничих середовищах - реальна річ. Вони навіть можуть траплятися досить часто - наприклад, у рамках різних етапів тестування під час безперервної доставки. Але це не робить таких розгортань continuous deployments. Безперервне розгортання стосується конкретно розгортання у виробничому середовищі.


добре, що все допомагає, але, можливо, ви можете розширити свою відповідь тим, як би ви описали доставку та розгортання?
Pierre.Vriens

1

По суті, безперервна інтеграція є частиною як безперервної доставки, так і безперервного розгортання, за винятком того, що випуски відбуваються автоматично. Ви також можете вважати безперервну доставку як логічний наступний крок безперервної інтеграції, і він працює в усіх середовищах. Постійна інтеграція також допомагає перевірити артефакти, щоб її можна було швидше розгорнути. Хоча неможливе безперервне розгортання без постійної інтеграції, і так набагато простіше зловити помилки при постійній інтеграції. Усі ці "безперервні речі", в кінцевому рахунку, стосуються усунення непотрібних дій у робочому процесі розвитку. Найголовніше, що CI / CD є важливими як з технічної, так і з точки зору бізнесу. Компанії, які не дотримуються цих принципів DevOps, ризикують піти шляхом динозаврів. У сьогоднішньому швидкому темпі ІТ-середовища це будь-якеРозробити або померти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.