Хорошее обновление собирает благодарности пользователей. Неудачное собирает всю команду в три часа ночи...
Чтобы не превращать каждый релиз в проверку нервов всех причастных, разработчики используют стратегии постепенного внедрения обновлений. Одна из них — канареечный релиз.
🐤 Что такое Canary Release?
Это стратегия обновления ПО, при которой новую версию сервиса сначала проверяют на небольшой части реальных запросов. Остальные продолжает обрабатывать прежняя версия.
⛏️ При чем тут канарейки?
Название связано с шахтерской практикой. Под землю брали клетку с канарейкой: эти птицы чувствительнее людей к угарному газу. Признаки отравления у птицы предупреждали об опасности и необходимости эвакуироваться. В IT «канарейка» — небольшой участок системы с новой версией, неполадки на котором помогают вовремя остановить обновление.
⚙️ Как это работает на практике?
1️⃣Подготовка. Новую версию приложения, прошедшую предварительные тесты, запускают рядом со старой.
2️⃣Маршрутизация трафика. Балансировщик — распределитель запросов — направляет часть трафика на новую версию. Долю и время наблюдения выбирают под конкретный сервис.
3️⃣Сбор метрик. Сравнивают показатели двух версий: долю ошибок, время ответа, успешность операций, например оформления заказа. Также следят за потреблением ресурсов.
4️⃣Расширение или откат. Если показатели в норме, обновление распространяют дальше. Если ухудшаются — выпуск останавливают и возвращают трафик на прежнюю версию. Возможность отката готовят заранее.
💡 Зачем это команде и бизнесу?
• Снижение рисков. Ограниченный запуск уменьшает возможный масштаб последствий ошибки.
• Проверка на «живом» трафике. На тестовом стенде сложно в точности воссоздать хаос реальных действий пользователей и нагрузки.
• Без плановой остановки. При подходящей архитектуре сервис продолжает обслуживать пользователей во время релиза.
⚠️ Канареечный релиз — не замена тестированию и не гарантия отсутствия сбоев. Например, новая версия может перегрузить общую базу данных и затронуть весь сервис. А возврат трафика на прежнюю версию приложения сам по себе не откатит изменения, уже внесенные в базу данных.
#Что_это_такое
Post #367
28
- 🔥 3
- 👍 2