Meet Gloo, the ‘Function Gateway’ That Unifies Legacy APIs, Microservices, and Serverless
Solo wants to unify all IT operations under a single common denominator, the function. With all an organization’s services, monolithic applications APIs, and serverless calls exposed as functions on the same data plane, the enterprise can take advantage of a unified set of management and monitoring tools.
Most enterprises still have monolithic applications, but many are exploring the use of microservices. The monoliths are accessible via APIs and monitored by the traditional application performance management (APM) tools, with deep dives provided by Splunk and other log investigation tools. With microservices — usually, run on platforms such as Kubernetes or Cloud Foundry — monitoring is usually done through tools such as Prometheus (scalable monitoring) and Open Tracing (transactional logging). Typically, the microservices monitoring tools and the traditional ones do not play well together, necessitating two sets of tools that must be maintained for monitoring.
Adding to this architectural complexity is that many organizations are also exploring the realm of serverless, which is mostly cloud-driven at this point through services like AWS Lambda or Google Cloud Functions. These, too, have their own sets of monitoring tools, such as AWS X-Ray.
Solo’s approach is to treat any of these distinct styles of computing as a single entity, that of the function, so they then can be monitored and managed with a single system. To realize this vision, the company built a function gateway, which is like an API gateway but for functions.
The software, called Gloo, builds on the Envoy proxy, already widely used for microservices. Envoy routes at the service or IP level and can be extended by writing filters, so Gloo is built around a base filter that works on the function level. It does the stuff a normal gateway does, like discovery, routing, function-to-function translation, but all at the function level. Gloo routes incoming requests and events to upstream functions.
- Metrics & Tracing
- Health Checks
- Advanced load balancing
- TLS Termination with SNI Support
- HTTP Header modification
This approach eliminates the need that each interaction between a client and a server use the same messaging protocol, or the need for the user to write supporting code to interact with each API. Gloo has a highly extendable architecture, which allowed Solo to rapidly add support for GRPC, NATS, Swagger/OpenAPI, and a number of other interfaces as well.
By building on Envoy, Gloo inherits all of Envoy’s capabilities, as well as makes available all the microservices monitoring tools such as Prometheus and OpenTracing for all an organization’s functions, not just those originating from microservices.
Easy Serverless Win
The software also has filters for all the popular serverless services, including AWS Lambda, Google Cloud Platform and, just announced, Azure Functions.
One of the immediate benefits of Gloo, Levine explained, is that it can smooth the process of managing serverless services, even across different clouds. The software can automate the authentication process and eliminates the need to write a separate API for each function. It can automatically discover all the functions under a single account. It also provides transform tools, such as converting the results of a serverless call into HTML, from the base JSON provided.
Gloo, a single binary file written in Go, can be deployed as a Kubernetes pod, in a Docker container, and now also on Cloud Foundry. The setup also requires a copy of Envoy, though the installation process can be greatly simplified through additional software developed by the company, TheTool. The user then writes configuration objects to capture the workflow logic.
On Thursday, April 18, Idit Levine will be speaking on debugging microservices at the Cloud Foundry Summit in Boston.
Cloud Foundry Foundation is a sponsor of The New Stack.