Blue-Green і Canary деплой: різниця та коли застосовувати
Порівнюємо дві стратегії безпечного викату нових версій у продакшен.

Blue-Green і Canary деплой: різниця та коли застосовувати
Blue-Green: миттєве перемикання
При Blue-Green деплої одночасно існують два повністю ідентичні середовища — «синє» (поточна продакшен-версія) і «зелене» (нова версія). Після перевірки зеленого середовища трафік перемикається на нього миттєво, зазвичай на рівні балансувальника або DNS, а синє середовище залишається як швидкий шлях відкату. Детальніше про суміжний підхід можна прочитати в матеріалі «Інфраструктура як код з Terraform: найкращі практики».

Canary: поступове поширення ризику
Canary-деплой влаштований інакше: нова версія спочатку отримує невеликий відсоток реального трафіку — скажімо, 5% — і лише за відсутності зростання помилок та деградації метрик частка поступово збільшується до 100%. Це дорожче в реалізації, оскільки вимагає інфраструктури для точного розподілу трафіку й автоматичного відкату за метриками, зате ризик при невдалому релізі незрівнянно менший: постраждає лише невелика частка користувачів, а не всі одразу.
Blue-Green простіше впровадити, і він дає миттєвий відкат, але не захищає від багів, які проявляються лише під повним продакшен-навантаженням. Canary вирішує саме цю проблему ціною складнішої оркестрації. Ці ідеї перегукуються з темами «Моніторинг і алертинг: будуємо спостережуваність сервісу» та «Шардування бази даних: підходи та підводні камені».
Схожі матеріали
Автоматизація онбордингу розробників (dev environment as code)
Практичний посібник з теми «автоматизація онбордингу розробників (dev environment as code)» для DevOps-інженерів та SRE.
Автоматизація патчингу серверів
Практичний посібник з теми «автоматизація патчингу серверів» для DevOps-інженерів та SRE.
Автоматизація тестування інфраструктури
Практичний посібник з теми «автоматизація тестування інфраструктури» для DevOps-інженерів та SRE.