
Что такое канареечные релизы?
Канареечные релизы — это способ безопасно протестировать новый код на небольшом количестве пользователей. Если всплывет ошибка, то обновление автоматически откатят к стабильной версии. Если все ок, то постепенно увеличат количество пользователей.

Почему релизы назвали канареечными?
Канарейки взяты из опыта шахтеров. Они брали клетки с птицами в шахту, чтобы следить за уровнем угарного газа и метана в воздухе. Пока уровень был нормальным, птицы пели. Как только в воздухе появлялись опасные токсичные вещества, канарейки умирали. Шахтеры замечали, что птицы молчат, и поскорее выбирались на поверхность.

Какие компании проводят канареечные релизы?
Канареечные тесты используют: Netflix, Google, Miro, Mozilla и их ночные и бета–версии Firefox, Google Play, Apple App Store.

Канареечные релизы
Канареечные релизы — это способ безопасно протестировать новый код на небольшом количестве пользователей. Если всплывет ошибка, то обновление автоматически откатят к стабильной версии. Если все ок, то постепенно увеличат количество пользователей.
Смысл канареечных релизов в том, чтобы провести техническое тестирование новых функций. Посмотреть насколько они совместимы со старым, уже внедренным кодом.

Почему релиз назвали канареечным
Канарейки взяты из опыта шахтеров. Они брали клетки с птицами в шахту, чтобы следить за уровнем угарного газа и метана в воздухе. Пока уровень был нормальным, птицы пели. Как только в воздухе появлялись опасные токсичные вещества, канарейки умирали. Шахтеры замечали, что птицы молчат, и поскорее выбирались на поверхность.
В IT канарейками выступают пользователи. Люди работают с продуктом в обычном режиме, никто их не предупреждает, что сейчас будет релиз новой фичи. Разработчики выкатывают обновление и следят, все ли работает, как они задумали. Если канареечный тест пройдет успешно, то новую версию сделают доступной для всех пользователей. Canary пропадает остается только release.

Когда запускают канареечные релизы?
Канареечные релизы проводят после тестов в предпроизводственной среде. Затем релизят обновление на группу реальных пользователей.
Результаты работы отслеживают и показатели сопоставляют с эталонными (то есть не канареечным). Если показатели выходят за пределы допустимых пороговых значений, то выполняют откат к предыдущей версии.

Плюсы канареечных релизов


Минусы канареечных релизов
Если вы часто проводите канареечные релизы, то есть риск негативно повлиять на пользовательский опыт и надежность приложения. Особенно если людям то и дело всплывает много ошибок.
Когда лучше не применять канареечные релизы:


Когда применять канареечные релизы

Какие компании применяют канареечные релизы
Канареечные тесты используют: Netflix, Google, Miro, Mozilla и их ночные и бета–версии Firefox, Google Play, Apple App Store.
Часто компании публикуют канареечные версии своих продуктов, чтобы технически подкованные или опытные пользователи захотели скачать и опробовать их.

Как планировать канареечные тесты
При планировании развертывания учитывают:
Сколько пользователей отправят на канарейку вначале и в сколько этапов.
Как долго будет проходить тестирование. Стандартная продолжительность: от нескольких минут до нескольких часов.
Какие метрики будем отслеживать для анализа прогресса. Обязательные — отчеты об ошибках, производительность приложения.
В ряде компаний выпущенные части сервиса сначала получают только внутренний пользовательский трафик. Если ошибок нет, то к нему добавляют небольшую часть трафика продакшн–среды. А уже после этого выполняют полноценное развертывание.


Сколько пользователей нужно для канареечного релиза
Для начала попробуйте логарифмический подход с шагами: 1-10-100. То есть начинайте канареечный тест с отправки обновления 1% пользователей. Это поможет убедиться, что нет никаких серьезных проблем.
Затем повышайте количество пользователей до 10% от общего числа. Это даст посмотреть, как обновление ведет себя под нагрузкой.
Наконец, переносите обновление на 100% пользовательской базы и завершайте тестирование.
Когда наберетесь опыта, поэкспериментируйте с количеством этапов, чтобы выбрать оптимальное для своего продукта. Кому–то достаточно двух этапов по 2-100. Другие предпочитают постепенные шаги по 10-20-50-100.
На канареечный релиз нет отбора. Пользователи попадают в него случайным образом.

Отличия канареечных релизов от других
Канареечные релизы путают с сине–зелеными и другими релизами. Разберемся, чем они отличаются:


Как проходят канареечные релизы в Miro
В Miro канареечные релизы выкатывают на три разные роли, которые максимально задействованы в работе пользователей. Релизы выкатывают на три сервера:
API Server
Public Server
Board Server
Команда запускает канареечный релиз и следит за процессом в Sluck. Тестирование длится ровно 4 часа. Все это время команда смотрит метрики в Grafana и ошибки в Sentry.
Если происходит критическая ошибка или какие–то проблемы с метриками, то сразу начинают искать источник. У команд есть 2 часа на поиск проблемы, оценку того, как это влияет на пользователей, исправление. Если не успевают, то сразу откатывают все изменения назад. Это позволяет не блокировать выкатку другого функционала.
Канареечные релизы — это способ безопасно протестировать новый код на небольшом количестве пользователей. Если всплывет ошибка, то обновление автоматически откатят к стабильной версии. Если все ок, то постепенно увеличат количество пользователей.
Канареечные релизы — это способ безопасно протестировать новый код на небольшом количестве пользователей. Если всплывет ошибка, то обновление автоматически откатят к стабильной версии. Если все ок, то постепенно увеличат количество пользователей.