Выпуск в градациях серого (также известный как канареечный выпуск) — это широко используемый метод выпуска продуктов в Интернете. Как следует из названия, это метод выпуска продукта, который плавно переходит от черного к белому. Пользователи продолжают использовать исходные функции продукта, в то время как другие пользователи постепенно включайте новые функции. В процессе перехода продукт может быть улучшен.После завершения версии в оттенках серого все пользователи смогут использовать новые функции продукта. [1]
Когда услуга выпущена, трудно гарантировать, что проблем вообще не будет, а проблемы неизбежны. Как обеспечить минимальное влияние при возникновении проблемы? это проблема с выпуском, и сначала используйте небольшую часть потока, чтобы увидеть эффект.
Архитектура системы публикации в градациях серого
1 Конфигурация центра конфигурации, какие службы публикуются в оттенках серого, а разделение трафика — в публикации в оттенках серого.
2 После того, как вышестоящая служба получает запрос клиента, она перенаправляет запрос в новую и старую службы в соответствии с конфигурацией центра конфигурации.
3 Центр регистрации отвечает за регистрацию новых и старых услуг
4 Нисходящая служба отвечает за систему бизнес-услуг, которая обрабатывает запросы пользователей.
Сложности в дизайне:Разработка протокола в системе публикации в градациях серого
- протокол данных
- Заголовок фиксированной длины
- удлинение тела
- Дизайн полей сообщений в оттенках серого
- uid
- token
- ip
- tag
- Политика публикации в оттенках серого
- единая стратегия
- uid/token/ip
- Стратегия публикации в оттенках серого на основе контекста
- Модуль AC Одновременная шкала серого
- tag
- единая стратегия
Сцена выпуска в оттенках серого
Обновляйте только подчиненную службу
Вверх по течению, если Nginx:
- Можно использовать расширения nginx, такие как Openresty и Tengin, а для пересылки можно встроить сценарии lua.
- Сервер настраивает агент для динамического обновления конфигурации nginx, например, консул + консул-шаблон.
Если восходящий поток является службой RPC:
- Он может интегрировать клиентский SDK платформы управления конфигурацией, обновлять конфигурацию сервера в режиме реального времени, реализовывать стратегию выпуска оттенков серого и определять, следует ли открывать новую версию службы.
Последующие услуги:
- Новые и старые службы обычно регистрируются в реестре служб, а службы обычно имеют собственные номера версий.
Несколько модулей в оттенках серого одновременно
Уровень шлюза и уровень доступа к данным выполняют публикацию в градациях серого одновременно.
В соответствии с упомянутым выше полем протокола новый трафик помечается, и все запросы к новому шлюзу помечаются и перенаправляются на разные уровни доступа к данным на уровне бизнес-логики в соответствии с тегом.
- Все запросы, проходящие через новый шлюз, помечаются
- Помеченные запросы перенаправляются на новый уровень доступа к данным на бизнес-уровне.
Обновление базы данных в оттенках серого
Например, SqlServer переносится в MySQL или изменяются поля базы данных.
- Сначала скопируйте данные полностью, двойная запись
- двойная запись на некоторое время
- Удалите старую версию БД, запишите только новую БД
Версия клиента в оттенках серого
Android выпущен в оттенках серого. Не размещайте пакет приложений на рынке приложений одновременно. Если он находится на полке, он выйдет из-под контроля. Вы можете попробовать обновить группу пользователей через собственный фоновый интерфейс и затем постепенно увеличивайте долю пользователей. После завершения выпуска в оттенках серого отправьте его на рынок приложений.
В магазине приложений IOS есть механизм публикации в градациях серого, но с более строгими правилами. Публикация может быть прекращена досрочно, но пользователи, которые уже обновились, не могут перейти на более раннюю версию. По умолчанию для всех обновлений оттенков серого используется 7 дней.
Наконец
запись об обучении