gloo

module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2018 License: Apache-2.0

README

Gloo
The Function Gateway

What is Gloo?

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.


Gloo


Features

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

Documentation

About gloo:

  • 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

Installation:

Getting Started:

Tutorials

Plugins:

  • 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

v1 API reference:

  • 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

Blogs & Demos

Community

Join us on our slack channel: https://slack.solo.io/


Thanks

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.

Directories

Path Synopsis
cmd
example
hack
pkg
api/types/v1
Package v1 is a generated protocol buffer package.
Package v1 is a generated protocol buffer package.
coreplugins/routing
Package routing is a generated protocol buffer package.
Package routing is a generated protocol buffer package.
coreplugins/static
Package static is a generated protocol buffer package.
Package static is a generated protocol buffer package.
log
plugins/aws
Package aws is a generated protocol buffer package.
Package aws is a generated protocol buffer package.
plugins/azure
Package azure is a generated protocol buffer package.
Package azure is a generated protocol buffer package.
plugins/common/transformation
Package transformation is a generated protocol buffer package.
Package transformation is a generated protocol buffer package.
plugins/connect
Package connect is a generated protocol buffer package.
Package connect is a generated protocol buffer package.
plugins/consul
Package consul is a generated protocol buffer package.
Package consul is a generated protocol buffer package.
plugins/google
Package google is a generated protocol buffer package.
Package google is a generated protocol buffer package.
plugins/grpc
Package grpc is a generated protocol buffer package.
Package grpc is a generated protocol buffer package.
plugins/kubernetes
Package kubernetes is a generated protocol buffer package.
Package kubernetes is a generated protocol buffer package.
plugins/nats
Package nats is a generated protocol buffer package.
Package nats is a generated protocol buffer package.
plugins/nats-streaming
Package natsstreaming is a generated protocol buffer package.
Package natsstreaming is a generated protocol buffer package.
storage/crd/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
storage/crd/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
storage/crd/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
storage/crd/client/clientset/versioned/typed/solo.io/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
storage/crd/client/clientset/versioned/typed/solo.io/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
storage/crd/solo.io/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
test
kube_e2e/containers/grpc-test-service/bookstore/protos
Package bookstore is a generated protocol buffer package.
Package bookstore is a generated protocol buffer package.
local_e2e/test_grpc_service/glootest/protos
Package glootest is a generated protocol buffer package.
Package glootest is a generated protocol buffer package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL