Blue-Green чи Canary: що обрати для розгортання?

Ти також завжди балансуєш між швидкістю та комфортом користувачів, коли оновлюєш програми? З одного боку, хочеться впроваджувати зміни миттєво. З іншого — важливо уникнути ситуації, коли в новій версії більше багів, ніж користі.

Саме для цього існують Blue-Green Deployment та Canary Deployment — дві популярні методики, що дозволяють впроваджувати зміни без тривалого простою. 

Але яка з них виявиться кращою для тебе? Погнали розбиратись.

Принцип роботи Blue-Green Deployment

Це стратегія, яка допомагає впроваджувати оновлення з мінімальним впливом на користувачів. Вона використовує два середовища:

  1. Blue (синє) — поточна версія застосунку, яка вже працює та обслуговує користувачів.
  2. Green (зелене) — версія, яка містить оновлення.

Основна ідея в тому, що поки одна версія працює, інша — готується у фоновому режимі. Як тільки Green проходить усі тести, ти можеш перемикнути систему на нього та зробити його новим поточним середовищем. А якщо раптом щось пішло не так — не біда. Можна без проблем повернутись до середовища Blue.

Принцип роботи Canary Deployment

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

Спочатку доступ отримує невелика частина аудиторії, скажімо, 5%. Ці користувачі (їх, до речі, часто називають «канарками») дають відгуки на оновлення. Всі коментарі обробляють, призупиняють процес розгортання для усунення багів, якщо вони є, і тоді масштабують на більшу кількість юзерів. 

Це круто допомагає підлаштовувати програму саме під її користувачів. Вони дають фідбек по тому, чого їм бракує, і розробники тут же це впроваджують.

Реакція юзерів на методики

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

  • Враження від Blue-Green Deployment

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

Ну, якщо тільки не з’являться нові функції або інші помітні оновлення. Тоді вже ніхто не залишиться байдужим, а спільнота буде гудіти.

Тож безперечно Blue-Green Deployment забезпечує високий рівень комфорту та відсутність перерв у роботі.

  • Враження від Canary Deployment

У цьому випадку все трохи інакше. Спочатку оновлення доступне тільки для малої групи людей. І це може бути як добре, так і погано.

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

Тому тут варто ретельно враховувати думку юзерів твого застосунку. Декого зацікавить бути першопрохідцем, а дехто розцінить це як досвід «піддослідного кролика».

Основні відмінності 

  • Етап впровадження

Однією з найбільших переваг Blue-Green Deployment є те, наскільки швидко і зручно можна розгортати нові версії програм. Два середовища перемикаються між собою майже миттєво. Звичайно, це мінімізує час простою і дозволяє користувачам працювати без перерв.

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

  • Ціна ресурсів

Blue-Green Deployment вимагає більше ресурсів, через підтримку двох середовищ, що може виявитись дорогим, якщо твій бюджет обмежений. Проте, якщо ресурсів достатньо, ти можеш ліквідувати одне середовище після завершення оновлення, а відновити його лише перед наступним релізом. 

З іншого боку — Canary Deployment. Цей підхід використовує ресурси більш ефективно, оскільки тобі потрібно налаштувати лише проміжне середовище для тестування нової версії. 

  • Повернення до стабільної версії

Blue-Green Deployment дозволяє швидко повернутись до попередньої версії. Ти можеш просто перемкнути трафік назад до старої версії. І вона буде працювати.

У випадку з Canary Deployment, ти можеш припинити розгортання, якщо виникають проблеми, і після їх усунення продовжити процес. В разі серйозних помилок можна також повернути користувачів до попередньої версії, але не настільки зручно, як з Blue-Green.

  • Ризики та контроль

У Blue-Green тестування відбувається в окремому середовищі, де нова версія проходить перевірку, перш ніж стати активною. Всі проблеми можна вирішити ще до того, як юзери їх побачать. 

Водночас Canary передбачає більш поступове поширення оновлення вже знайомим тобі методом. Ти масштабуєш нову версію лише на частину користувачів і уважно слідкуєш за їхніми відгуками. Тому всі проблеми вирішують на ранній стадії.

То що обрати?

Загалом, все залежить від твоїх пріоритетів. Але вибір між Blue-Green Deployment та Canary Deployment доволі простий.

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

Якщо ж у тебе обмежені ресурси, особливе бажання контролювати оновлення чи бути зі своїми користувачами на «ти» — обирай Canary Deployment

Підсумуємо

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

Тож вибір за тобою. А якщо ти хочеш не тільки розгортати оновлення, а й автоматизувати всі процеси, що їх супроводжують, тоді знайомся з DevOps. У нас для тебе цілий каталог курсів ITEDU для будь-якого рівня, щоб опанувати необхідні навички.

Залишити відповідь

Дякуємо, що поділились