Canary Release и Blue Green Deployment на AWS - PullRequest
       93

Canary Release и Blue Green Deployment на AWS

0 голосов
/ 20 декабря 2018

В настоящее время я внедряю Canary Release и Blue Green Deployment на своем статическом веб-сайте в AWS S3.По сути, я создал два сегмента S3 (v1 и v2) и два фронта облака (я не добавил CNAME).Затем я создаю 2 записи псевдонима A в маршруте 53 с 50% каждой политикой маршрутизации веса.Однако меня перенаправили на v1, используя только ноутбук и мобильный телефон для доступа к своему домену.Я даже прошу коллегу открыть мой домен, и они также перенаправляются на v1.

Меня действительно озадачило, почему ни один пользователь не перенаправляется на v2?

AWS Static Web в S3

enter image description here

1 Ответ

0 голосов
/ 20 декабря 2018

Назначенные имена хостов dyyyexample.cloudfront.net и dzzzexample.cloudfront.net, которые направляют трафик в ваши дистрибутивы CloudFront, отправляются в одно и то же место.CloudFront не может видеть ваши записи псевдонимов DNS, поэтому он не знает, какой псевдоним использовался.

Вместо этого он просматривает SNI TLS и заголовок HTTP Host, которые отправляет браузер.Он использует эту информацию для соответствия с альтернативным доменным именем для вашего дистрибутива - без изменения DNS.

Имя хоста вашего сайта, example.com, настроено только как альтернативное доменное имя в одном из ваших дистрибутивов.поскольку CloudFront не позволяет вам предоставлять одно и то же значение более чем в одном распределении.

Если вы поменяете эту запись альтернативного имени домена на другой, весь трафик будет перемещен в другой дистрибутив.

Короче говоря, CloudFront напрямую и изначально не поддерживает Blue / Green или Canary.

Временное решение: использовать триггер Lambda @ Edge и файл cookie, чтобы привязать каждого зрителя к одному origin или другой.Триггер запроса источника Lambda @ Edge позволяет изменить источник, пока запрос находится в полете.

В документации есть A / B пример тестирования , но этот пример меняет путь,См. Примеры динамического выбора источника , чтобы узнать, как заменить источник.Комбинируя логику этих двух, можно проводить A / B-тестирование в двух сегментах (или любых двух альтернативных бэкэндах).

...