Service Mesh Сеть сервисов
Зачем
Сетевая инфраструктура, через которую сервис общается с другими сервисами и внешними ИС.
- Маршрутизация трафика на основе правил
- процент
- параметры запроса (в header, url параметр)
- стратегии deployment (сине-зеленое, канареечное и тп)
- Балансировка трафика
- Observability
- Service Discovery
- Circuit Breaker
- Безопасность
- TLS обеспечение
- Rate Limit, Quota на запросы
Отличия от API GW:
- есть Service Discovery (хотя и в API GW есть?)
- API GW служит периферийным микросервисом и выполняет задачи, связанные с бизнес-логикой микросервисов, например преобразование запросов, сложная маршрутизация или обработка полезной нагрузки, тогда как service mesh отвечает только за некоторые аспекты взаимодействия между сервисами
- API GW и Service Mesh работают на разных уровнях.
- API GW
- на уровне приложения
- находится между пользователем и внутренней логикой приложения
- отвечает за вертикальный трафик
- Service Mmesh
- на уровне инфраструктуры
- между внутренними микросервисами
- обрабатывает горизонтальный трафик между микросервисами
- API GW направлен на бизнес-логику, а service mesh управляет взаимодействием между сервисами.
- API GW
- API GW работает почти с любым приложением или архитектурой, даже монолитными приложениями. Service mesh предназначена только для некоторых решений, например Kubernetes
- TODO
Плюсы и минусы
Технологии
- Istio
- Nginx?
- Netscaler?
- Linkerd 2.x
- Conduit
- AWS App Mesh
- Consul Hashicorp
- Kuma от Kong
- Maesh от Traefik