Как сделать канарейку и динамическую маршрутизацию с Netflix Zuul?

Мы столкнулись с проблемой, что нам нужно делать такие вещи, как динамическая маршрутизация и канареечные выпуски. Так, например, мы разворачиваем микросервис microservice-1, Затем, когда кто-то закончил большую функцию, мы хотим развернуть ее как микросервис microservice-1.1,

Вопрос

Можно ли динамически перенаправлять запросы, используя информацию, например, из заголовков и направлять на версию микросервиса? microservice-1.1 вместо microservice-1?

Например, кому-то нужна эта функция, и он будет изменять / добавлять определенный заголовок, и для всех запросов он будет использовать новый microservice-1.1, И если этот заголовок отсутствует, то следует использовать текущую версию microservice-1.

Для обнаружения услуг я использую Eureka. Сейчас я смотрю на Linkerd, но Eureka не поддерживается, и я работаю над этим прямо сейчас. Конечно, если это возможно сделать с помощью Zuul, это было бы здорово. Посоветуйте пожалуйста где посмотреть.

1 ответ

Не совсем уверен насчет Netflix Zuul, но нам понравился подход, представленный Istio (при поддержке Google и т. Д.), Который очень хорошо работает с контейнерами (Kubernetes), и вы получаете поддержку для канареечных релизов https://istio.io/blog/2017/0.1-canary/

Другие вопросы по тегам