Приведённая выше фотография — релиз Tencent в оттенках серого, обычные пользователи могут получить доступ к нему, доступ к серверу Alibaba Cloud недоступен, пинг нормальный, а IP разрешения тоже нормальный
Это просто недоступно, видно, что Tencent также любит играть с оттенками серого выпуска...
1. Почему выпуск в оттенках серого
- Интернет-сервисы часто меняются, а циклы релиза короткие. Скорость и качество всегда сложно совместить.
- Серая публикация может снизить риск публикации и уменьшить масштаб воздействия.
- Снизить зависимость от тестирования и снизить стоимость создания данных для офлайн-самотестирования.
- Удобно централизованно контролировать журналы и публиковать их полностью. Из-за роли балансировки нагрузки на каждом уровне сложно отследить полный вызов.
- Вы можете использовать тестовые аккаунты Graytone, а затем реальные учетные записи серого после окончания тестового аккаунта, чтобы ещё больше снизить риски и влияние публикации.
- Лёгкий откат.
Проблемы, которые нельзя решить с помощью релизов в оттенках серого
Следует подчеркнуть, что вышеупомянутое «терпимое воздействие» должно быть восстановимо, например, API нельзя вызвать в течение определённого времени, но после ремонта его можно успешно вызвать. Постоянная потеря или уничтожение пользовательских данных (таких как информация о продукте, заказах и т. д.) недопустима. Поэтому ответственность за восстановление утраченных пользовательских данных до недавнего состояния (например, час — неделя назад) лежит на архитекторах интернет-предприятий посредством ручного вмешательства в случае потери пользовательских данных из-за нарушений производственной системы (таких как регулярное резервное копирование пользовательских данных, ведение журналов операций и т.д.).
СОВЕТЫ Сначала проверьте политику серого оттенка вашего аккаунта, чтобы снизить риск повреждения или потери реальных данных пользователей.
2. Какой эффект ожидается? Независимо от изменений, мы хотим, чтобы конкретные запросы направлялись к нашей версии изменения (gray edition) для наблюдения и валидации.
3. Стратегия оттенков серого На самом деле, именно эти запросы должны направляться в нашу версию с оттенками серого (машина с оттенками серого). Это часто тесно связано с бизнесом. Например, для API обычно существуют следующие требования:
Конкретные пользователи (например, тестовые аккаунты) Конкретные приложения (например, тестовые приложения или партнёрские приложения) Конкретные модули и интерфейсы (только некоторые интерфейсы нуждаются в оттенках серого, что обычно является модификацией контейнеров API, а некоторые API, которые не очень важны, используются для тестирования оттенков серого). ) Конкретная машина (некоторые IP-адреса запроса пересылаются на машину с оттенками серого) 4. Обсуждение схем в оттенках серого Решение 1: Уровень кода оценивается по согласованному флагу, а старый и новый динамически переключаются — подход Amazon
Реализация:
Закопайте переключатель в коде, сделайте решение «если иначе» и установите переключатель на включённое для машин, которые требуют оттенков серого, иначе он выключен. Для каждого релиза есть две версии.
заслуга
Быстрый откат, нет необходимости перезагружать и перезагружать систему. недостаток
Будьте склонны к программированию. Разветвляющаяся логика приносит сложность. Этот метод использовал автор, когда я работал на Alibaba, переключая базу данных товаров с Oracle на MySQL и используя переменную состояния для управления. Таким образом достигается эффект плавной миграции.
Вариант 2: Предрелиз — практика Alibaba
На самом деле, это не оттенки серого в истинном смысле. Потому что эта предрелизная машина — внутренний IP и не имеет внешнего сервиса. Для верификации требуется привязка домена. Но данные полностью онлайн. Таким образом, это по сути простой подход для некоторых конкретных пользователей Graytone (пользователей, имеющих доступ к машине с оттеноками серого, внутреннего тестирования). На самом деле, похожий подход применяется и на стороне API — это наша среда Gamma, а также мы предоставляем доменное имя машины Gamma, чтобы внешние кооперативные пользователи могли сотрудничество в тестировании.
заслуга
Просто недостаток
Waste of a machine (это можно перенести в производственную среду после завершения предварительного релиза и удалить из nginx во время предварительного релиза, но требуется поддержка O&M). ) Недостаточно гибко Сервисы IDL могут использоваться только для машин уровня доступа, и услуги IDL должны рассматриваться отдельно. Вариант 3: Развертывание SET
1. Развёртывание в изоляции в зависимости от служб
Например, в современной практике API контейнеров детализация может быть достигнута до уровня API, а фронтенд — по nginx. Как что:
Контейнер API для микрошопинга: api.weigou.qq.com Pat API Container:api.paipai.com Контейнер API Yixun: api.yixun.com API онлайн-шопинга Container:api.buy.qq.com Вышеописанное — это изолированное внедрение на уровне крупного бизнеса. Его также можно дополнительно доработать до уровня модуля, например, API виртуальной электронной коммерции сервисов, который является подбизнес-модулем, зависящим под Paipai, но поскольку они подключены к WeChat, количество посещений значительно увеличилось, чтобы не затронуть другие бизнесы Paipai, а чтобы избежать влияния других компаний, API здесь размещает две машины отдельно для них, nginx можно настроить так, чтобы опустошить доступ к виртуальному API:
Виртуальный контейнер API: http://api.paipai.com/v2/virbiz
Таким образом, при выпуске версии мы сначала можем выбрать Yixun с наименьшим объёмом бизнеса для публикации, а затем наблюдать, что проблем нет, прежде чем использовать все остальные платформы.
2. Развертывание по изоляции пользователя
Это не очень подходит для открытых платформ, но очень подходит для приложений, таких как социальные сети. Например, система QQ делится на несколько наборов в зависимости от сегментов пользовательских номеров, и каждый набор содержит 100 миллионов последовательных чисел. Если предположить, что последнее число QQ близко к 1 миллиарду, всего существует 10 наборов (от 1 до 10). Таким образом, вы можете выбрать один из SET для публикации каждый раз, а высокоуровневый QQ часто не является важным пользователем, поэтому SET10 выйдет первым.
заслуга
Изолированное развертывание с минимальным воздействием на все бизнес-направления. Автоматически поддерживается публикация в оттенках серого. недостаток
Гранулярность оттенков серого зависит от гранулярности изолированного раскрытия, которое, как правило, большое. Потеря машин по сравнению с централизованным развертыванием. Версии каждой бизнес-линии могут быть непоследовательными, что не способствует единому управлению. Существуют определённые затраты на внедрение и внедрение Схема 4: Динамическая маршрутизация
Метод: Используйте политику оттенков серого, которую можно гибко настроить, чтобы влиять на поведение баланса нагрузки и позволить ему вернуть IP и порт сервиса в соответствии с политикой оттенков серого.
Подходит для серых оттенков сервиса с IDL в заднем офисе.
заслуга
Гибкие, контролируемые. недостаток
Текущий центр конфигурации и сам L5 не учитывают заданные политики маршрутизации и не масштабируемы, поэтому их необходимо разрабатывать вне них. Источники метаданных API относительно разрознены, и в настоящее время метаданные API и IDL, уровни API и частоты распределены между разными источниками данных, поэтому необходимо добавить источник данных с оттенками серого маршрутизации.
Обычно существует три способа публикации graytone nginx+lua: nginx распределяется по cookie, а nginx присваивается по весу:
nginx+lua различается по IP-адресу посетителя, поскольку компания экспортирует IP-адрес, и сайт будет доступен либо по старой, либо новой версии, которая не подходит для этого метода nginx присваивает веса на основе весов, что легко реализовать и можно попробовать nginx делится на основе cookie, а grayscale публикует по пользователям
|