Gloo is a high-performance, plugin-extendable, platform-agnostic function Gateway built on top of Envoy. Gloo is designed for microservice, monolithic, and serverless applications. By employing function-level routing, Gloo can completely decouple client APIs from upstream APIs at the routing level. Gloo serves as an abstraction layer between clients and upstream services, allowing front-end teams to work independently of teams developing the microservices their apps connect to.
Microservice Platform Integrations with Service Discovery:
- Kubernetes
- OpenShift
- HashiCorp Stack (Vault, Consul, Nomad)
- Cloud Foundry
Serverless Platform Integrations with Function Discovery:
- AWS Lambda
- Microsoft Azure Functions
- Google Cloud Platform Functions
- Fission
- OpenFaaS
- ProjectFn
Routing Features:
- Dynamic Load Balancing: Load balance traffic across multiple upstream services.
- Health Checks: Active and passive monitoring of your upstream services.
- OpenTracing: Monitor requests using the well-supported OpenTracing standard
- Monitoring: Export HTTP metrics to Prometheus or Statsd
- SSL: Highly customizable options for adding SSL encryption to upstream services with full support for SNI.
- Transformations: Add, remove, or manipulate HTTP requests and responses.
- Automated API Translation: Automatically transform client requests to upstream API calls using Gloo’s Function Discovery
- CLI: Control your Gloo cluster from the command line.
- Declarative API: Gloo features a declarative YAML-based API; store your configuration as code and commit it with your projects.
- Failure Recovery: Gloo is completely stateless and will immediately return to the desired configuration at boot time.
- Scalability: Gloo acts as a control plane for Envoy, allowing Envoy instances and Gloo instances to be scaled independently. Both Gloo and Envoy are stateless.
- Performance: Gloo leverages Envoy for its high performance and low footprint.
- Plugins: Extendable architecture for adding functionality and integrations to Gloo.
- Tooling: Build and Deployment tool for customized builds and deployment options
- Events: Invoke APIs using CloudEvents.
- Pub/Sub: Publish HTTP requests to NATS
- JSON-to-gRPC transcoding: Connect JSON clients to gRPC services
- Introduction: Introduction to Gloo with a basic overview of Gloo itself and its use cases
- Concepts: Explanation of the key concepts used in Gloo.
- Architecture: Overview of Gloo's architecture. Covers architecture at a high level, and the component architecture
- Installing on Kubernetes: Installation guide for Kubernetes (recommended)
- Installing on OpenShift: Installation guide for OpenShift
- Getting Started on Kubernetes: Getting started with Kubernetes (recommended for first time users)
- Function Routing on Kubernetes: Introduction to Function Routing with Gloo
- Getting Started on OpenShift: Getting started with OpenShift
- Function Routing on OpenShift: Introduction to Function Routing with Gloo (OpenShift version)
- AWS Lambda: Basic AWS Lambda with Gloo
- Refactoring Monoliths with Gloo: Using Gloo to refactor monolithic apps
- Converting webhooks to NATS Messages with Gloo: Using Gloo to convert webhooks to NATS messages for event-driven architectures.
- AWS Lambda Plugin: Description of the AWS Lambda Plugin and config rules for AWS Lambda Upstreams and Functions
- Kubernetes Plugin: Description of the Kubernetes Plugin and config rules for Kubernetes Upstreams
- Service Plugin: Description of the Service Plugin and config rules for Service Upstreams
- Request Transformation Plugin: Description of the Request Transformation Plugin and config rules for Request Transformation Routes and Functions
- Upstreams: API Specification for the Gloo Upstream Config Object
- Virtual: API Specification for the Gloo Virtual Service Config Object
- Metadata: API Specification for Gloo Config Object Metadata
- Status: API Specification for Gloo Config Object Status
Join us on our slack channel: https://slack.solo.io/
Gloo would not be possible without the valuable open-source work of projects in the community. We would like to extend a special thank-you to Envoy.