Развертывание Amazon Route 53 сине-зеленым

в настоящее время я пытаюсь реализовать развертывание «зеленый / синий» с помощью AWS Route 53. Существуют простые веб-приложения, приложения для отдыха, которые запускаются на настраиваемых экземплярах EC2, и все они находятся за балансировщиком нагрузки. Веб и остальные развернуты в одном домене DNS.

Я хотел бы использовать политику трафика с весами (для развертывания зелено-синего цвета), поскольку конечная точка использует разные балансировщики нагрузки приложений (для зеленого, синего).

Интересно, всегда ли каждый запрос для одного и того же пользователя перенаправляется на один и тот же балансировщик нагрузки? Я не хочу заканчиваться ситуацией, когда пользователь получает веб-приложение в старой версии, а вызов Api перенаправляется на новую версию.


person Sławomir Król    schedule 23.10.2018    source источник


Ответы (1)


Вы можете использовать Route 53 для сине-зеленых развертываний, но это не лучшее решение. Причина в кешировании DNS и TTL. DNS-клиентам требуется время, чтобы сделать новый DNS-запрос. Это означает, что изменение маршрута движения может занять непредсказуемое количество времени.

Маршрут 53 ничего не знает о клиентах. Маршрут 53 не просматривает заголовки HTTP для оценки переменных сеанса, клиентских файлов cookie и т. Д. Однако из-за кэширования DNS вероятно (не гарантировано), что клиент будет продолжать использовать ту же разрешенную конечную точку в течение определенного периода времени. Что это за период времени? Неизвестно, поскольку для этого требуется знание DNS-распознавателя на клиенте, как долго клиент ожидает повторного разрешения записи DNS и значение TTL, присвоенное записи ресурса Route 53.

Ваш вопрос: «Интересно, всегда ли каждый запрос для одного и того же пользователя перенаправляется на один и тот же балансировщик нагрузки?»

Ответ - нет, возможно, и иногда, но не в предсказуемой или повторяемой манере.

person John Hanley    schedule 23.10.2018
comment
Спасибо за ответ! Я видел много статей о зеленом / синем, в основном теоретические. Какие сервисы лучше всего подходят для развертывания G / B? Любой совет? - person Sławomir Król; 25.10.2018
comment
Ответ зависит от обстоятельств. Я предпочитаю использовать отдельные группы автоматического масштабирования за одним балансировщиком нагрузки с большим количеством мониторинга. Затем мы подкачиваем количество экземпляров для текущей версии до 20. Затем вызываем один экземпляр новой версии. Это дает нам соотношение 5%. Мы отслеживаем ошибки, проблемы с производительностью и т. Д. Затем мы запускаем новую версию по одному экземпляру во время мониторинга. В определенный момент, когда мы уверены, что с новой версией все в порядке, мы начинаем сокращать старую версию по одному экземпляру за раз. Это фактически автоматизировано. Мы используем мониторинг и показатели, чтобы подавать нам сигналы тревоги, которые мы наблюдаем. - person John Hanley; 25.10.2018
comment
Однако бывают случаи, когда новая версия не может одновременно сосуществовать со старой. Примером могут служить изменения схемы большой базы данных или пользовательского интерфейса. В этом случае мы дублируем окружение и 100% снова переключаемся на новую версию во время мониторинга. Возникли проблемы и переключаемся обратно. Предыдущая версия все еще работает, ожидая отката в случае необходимости. - person John Hanley; 25.10.2018