saarasio / Enroute
Programming Languages
Projects that are alternatives of or similar to Enroute
Enroute makes it easy to run Envoy as an API Gateway. You can use it for microservices running inside Kubernetes or any service running standalone when there is no Kubernetes.
What makes it easy is simple REST APIs to configure the Standalone gateway or CRDs to configure the Kubernetes Ingress Gateway. Plugins provide the ability to add fine-grained route-level or global policies and traffic control.
As Envoy is being widely accepted as a next-gen proxy, EnRoute is deployed in production use at companies. EnRoute is an actively maintained project and community edition supports Advanced Rate Limiting.
How is EnRoute different?
Enroute is an API gateway with batteries included. EnRoute is oriented towards DevOps and integration with CI/CD pipelines. It is completely automatable and there is an API for everything.
EnRoute state management is flexible. For Kubernetes Ingress API Gateway, the state is completely managed inside Kubernetes. For Kubernetes, the state is stored in CRDs and state management is completely Kubernetes-native without any external databases. EnRoute supports GitOps even when running as a stateless docker container.
Enroute is the only gateway on Envoy proxy that works for both Kubernetes Ingress and Standalone use-cases. Typically solutions either target one or the other. A majority of users have a mix of workloads, and this capability comes in handy, especially with the same consistent policy model across all deployments. And running Envoy makes it a super performant solution.
Features
EnRoute is built on high performance feature rich Envoy and provides the following features.
- Run Anywhere - Any Platform, Any Cloud - EnRoute can integrate with any cloud for any service or can protect services running inside Kubernetes
- Native Kubernetes - Use CRDs to configure EnRoute Ingress API Gateway without any external store.
- Canary Release - EnRoute OSS supports canary releases
- Advanced Rate Limiting - EnRoute community edition supports advanced per-user, different rate limits for authenticated/unauthenticated user, IP based rate-limiting and several advanced configurations.
- Multiple Load Balancing Algorithms - EnRoute can be effectively programmed to use different load balancing mechanisms like Round Robin, Least Request, Random, Ring Hash
- Circuit Breakers - EnRoute can program underlying Envoy circuit Breakers
- Health Checks - Health checking including custom health check for upstream services
- Service Discovery - Discover external services in cloud or service mesh like consul to populate Standalone or Kubernetes Ingress Gateway
- Tracing - Zipkin, Jaeger support
- gRPC - Native support for gRPC
- Websockets - Support for Websocket services
- SSL - Terminate SSL connections either at Kubernetes Ingress or using a Docker gateway
- Cipher Selection - Select ciphers used to terminate SSL connections
- JWT Validation - Validate incoming JWT tokens
- OIDC - Open ID Connect support
Getting Started
- Use helm to get started with Kubernetes Ingress API Gateway
- Use docker to get started with Standalone Gateway
- Use
enroutectl
to program OpenAPI spec on gateway
Blogs, Cookbooks, getting started, examples and additional documentation can be found at
Extend using Global HTTP Filters and Route Filters
You can associate additional plugin/filter functionality at global level or route level.
Filters/Plugins are supported for both Kubernetes Ingress Gateway and Standalone Gateway.
Community
Enterprise Support and Demo
EnRoute has an enterprise version that provides additional support and features