Blue
the Blue is a gateway new time, high performance, high stable, high availability, easy to use.
Motivation
Blue is a lightweight cloud-native gateway solution to handle millions of routing endpoints with a large number of connections.
We start this challenge by designing a public API service at Ankr. At the early stage, we have investigated many open-source gateway solutions, such as Traefik, API Six, Nginx Ingress. However, none of the existing solutions can deal with this issue well because they all tend to cache all the routing resources in the k8s cluster, which, unfortunately, burdens or even crashes the overall system. Therefore, we decided to move forward with the Blue gateway.
The primary design goals of Blue are:
- Only keep recent active routing resources into cache and save the rest into persistent storage
- Support a large number of connections with acceptable k8s resources
- Implement with Golang for better compatibility with other cloud-native technologies
Arch
Features
-
support http/https proxy
-
support websocket proxy
-
support certificates update in time
-
support manage the router endpoints in line with API
-
friendly API
-
useful Web UI
-
kindly metrics
-
kinds of middlewares
- basic auth
- rate limit
- white/black list
- conn limit
- support third party middleware local or remote
- add prefix
- strip prefix
- strip prefix regex
- buffering
- circuit breaker
- custom content type
- forward auth
- headers
- in flight request
- redirect regex
- replace path
- retry