MadridianFox / ifbrm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ifbrm - Istio feature-branch route manager

Утилита для автоматического изменения правил в traffic management ресурсах istio для организации header-based маршрутизации в dev|staging среде для интеграции feature-branch версий сервисов в систему из master-branch версий сервисов.

А теперь по человечески:
У вас есть система из сервисов А, Б и В. Сервис А делает запросы к сервису Б и к сервису В. Вы добавили фичу в сервис Б и хотите проверить как работает система в целом с новой фичей.
Без istio вам бы пришлось либо заменить сервис Б на версию с фичей, либо отдельно развернуть все три сервиса.
Первый вариант может помешать тестить другие фичи. Второй затратен по ресурсам.

Вместо этого вы настраиваете istio так чтобы если запрос приходит на определённый домен, то в запрос добавляется заголовок, например X-Route-Key: feature-123. Настраиваете VirtualService и DestinationRule так, чтобы при наличии этого заголовка запросы уходили на поды с новой версией сервиса. Ну и настраиваете сами сервисы, чтобы они проксировали этот заголовок в запросы к другим сервисам.

В итоге вы можете развернуть только сервис Б и при обращении на домен вида feature-123-a.dev.example.org запрос пойдёт в master версию сервиса А, который в свою очередь, из-за прокидывания заголовка, сам того не ведая, будет делать запросы в feature-123 версию сервиса Б.

About


Languages

Language:JavaScript 100.0%