API Gateway
Зачем
Реализует и расширяет функции Reverse Proxy и Load Balancer
- Снижение связности ИС
- Too many round trips. Паттерн Aggregation запросов
- minimize the number of requests to the back end and reduce chatty communication to multiple microservices
- Сквозная функциональность cross-cutting concerns or gateway offloading
- Authentication and authorization
- OAuth access token
- Service discovery integration
- Response caching
- Retry policies, circuit breaker, and QoS
- Rate limiting and throttling
- Logging, tracing, correlation
- Headers, query strings, and claims transformation
- Authentication and authorization
- Mock
- Security issues Сокрытие внутренних API ИС от внешних ИС потребителей
- Without a gateway, all the microservices must be exposed to the “external world”
- Паттерн BFF
Функции Load Balancer
Функции Reverse proxy
- Dynamic request dispatching, routing or gateway routing
- IP whitelisting
- TLS Termination
Расширяют функции API Gateway ИС класса API managment (APIM)
- Monetize
- Трансформация запросов REST2RMQ, REST2gRPC и тп.
- client apps communicate with services that use non-Internet-friendly protocols(amqp)
Поддержка WebSocket:
Тодо
Плюсы-минусы
Плюсы
- Фасад до внутренних ИС
- Абстракция
Минусы
- Единая точка отказа
- Latency увеличивается
- Сопровождение усложняется
- стоимость ТСО увеличивается
- Усложнение интеграции
Паттерны