Безперервна доставка та безперервне розгортання

pic

Автор зображення: blog.crisp.se

Безперервна доставка (Continuous Delivery) та безперервне розгортання (Continuous Deployment) — це практики в сучасній розробці програмного забезпечення, які спрощують процес випуску. Хоча вони тісно пов'язані, вони відрізняються за цілями та рівнями автоматизації:

Безперервна доставка

Визначення:

Безперервна доставка гарантує, що кодова база завжди перебуває в стані, готовому до розгортання. Кожна зміна проходить через автоматизовані тести і потрапляє в середовище staging. Однак розгортання в продакшн є ручним рішенням.

Ключові моменти:

  1. Ручний запуск розгортання:

Потрібна людська участь для переведення коду зі staging в продакшн.

  1. Акцент на якість:

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

  1. Ідеальний випадок використання:

Коли потрібно контролювати час випуску в продакшн, наприклад, у регульованих індустріях або для високоризикових застосунків.

  1. Приклад:

Після автоматизованих тестів і staging менеджер релізів натискає кнопку для розгортання в продакшн.

Безперервне розгортання

Визначення:

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

Ключові моменти:

  1. Повна автоматизація:

Між staging і продакшн немає ручних кроків.

  1. Швидкий зворотний зв'язок:

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

  1. Ідеальний випадок використання:

Підходить для середовищ, де необхідні часті оновлення, таких як платформи SaaS або інтернет-магазини.

  1. Приклад:

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

Ключові відмінності

+--------------------------+-------------------------------------+-------------------------------------------+  
| Аспект | Безперервна доставка | Безперервне розгортання |  
+--------------------------+-------------------------------------+-------------------------------------------+  
| Розгортання в продакшн | Ручний запуск | Повна автоматизація |  
| Швидкість | Повільніше, оскільки чекає на схвалення | Швидше, оскільки кожна зміна виходить в ефір |  
| Рівень ризику | Нижчий, з більшою контролем | Вищий, але зменшений завдяки надійним тестам |  
| Випадок використання | Регульовані або чутливі середовища | Динамічні і високочастотні середовища |  
+--------------------------+-------------------------------------+-------------------------------------------+

Спільні основи

Обидві практики базуються на:

• Контроль версій (наприклад, Git).

• Автоматизоване тестування.

• Пайплайни безперервної інтеграції (CI).

• Інструменти моніторингу та спостереження.

Я навчився цьому сьогодні і подумав, що варто поділитися з усіма.

Перекладено з: Continuous Delivery and Continuous Deployment

Leave a Reply

Your email address will not be published. Required fields are marked *