Today we are excited to announce the latest update to Gloo, our Envoy based API Gateway to version 1.3. We’ve been working closely with customers and end users since we released 1.0 back in November to address their growing use cases. Gloo 1.3 focuses on improving the developer experience in consuming APIs, Gloo’s extensibility, serverless support and delivers enhancements in performance and troubleshooting for system operators.
Highlights of the release include:
- Developer portal for publishing and consuming APIs
- Extensibility with WebAssembly
- Performance and stability improvements
- Usability and troubleshooting enhancements
- New and improved documentation site
Developer Portal improves onboarding and productivity
In this release we’ve added a developer portal to make it easy to securely publish and manage APIs to developers both inside and outside your organization. Gloo admins can create a customized portal with their company’s logo, colors, images, and select which APIs to publish and to which users and groups. Developers inside or outside the company can log into the portal and access the APIs they have authorized to. Following the same approach we adopt across Gloo, the developer portal is CRD driven and designed for self-service, so you can seamlessly integrate it into your continuous delivery process. Learn more in this detailed blog post.
WebAssembly Improves Gloo Extensibility
Our work with WebAssembly (Wasm) started back in December 2019 with the initial launch of WebAssembly Hub. WebAssembly is a fast, efficient, portable binary instruction format, providing an embeddable and safe execution environment for platform extensions. Wasm is a popular way to extend web based applications, where it provides security (by running in a sandbox), speed (running 50–70% as fast as native C++), and portability. To provide an easy to use experience for developers and operators, we recently released an update to WebAssembly Hub to build, share, and deploy Wasm extensions securely to Envoy environments. In this release, we support the building and deploying of one or multiple Wasm extensions to customize the behavior of the Envoy proxies in the Gloo system. Check out this video to learn more about using Wasm with Gloo.
Performance and Stability Improvements
As end users scale out their environments, they need more information about the running system and any errors to help troubleshoot the issues. In this release we’ve added additional alerts and warnings to notify the admin if there are errors in the system from; propagating warnings and errors from delegate route tables up to the parent table, displaying an error for missing Auth Configs, having the validation reject resources that fail to unmarshal even when validation is disabled, and displaying a clearer status when the proxy is in an unhealthy state. These enhancements are designed to provide more detailed information and prevent issues by validating against any missing or misconfigurations in Gloo.
Gloo is already lightweight by design and highly performant, and we continually refine that as we add more functionality and fix any issues that may arise. In this release we’ve made changes to remove any unnecessary CPU and memory usage including; reducing the memory footprint of Gloo discovery by removing unnecessary creation of upstreams, and eliminating memory leaks with the immediate processing and de-duplication of events.
Usability and Troubleshooting Enhancements
Leading up to Gloo 1.3, we’ve made updates to glooctl to improve the developer and admin experience in using and running Gloo — here are a few of the highlights. We’ve refactored
glooctl to support the Helm 3 chart format, use its libraries, and delegate the install and uninstall operations to the corresponding Helm functions to provide consistent behavior across different installation flows. During installation you can now use
glooctl to specify which release version to install and pass multiple value files during installation.
We’ve also expanded the functionality of
glooctl check in error handling to now also report custom resource status warnings, check auth configs and to check that Gloo and Envoy are properly connected, validating that the Gloo config has not been rejected by Envoy. Admin UI users can now use
glooctl dashboard to open the admin UI from the command line. You can get more detail on these and the many more updates to
glooctl commands in the docs.
Updated Docs site
Product documentation is so important to a user’s experience that we’ve recently overhauled our docs site with new styling, information architecture and refreshed the content and diagrams to help new and experienced users get an understanding of Gloo and get up and running quickly. The new left hand menu is easier to navigate and has reorganized the content into a more intuitive flow. You can also select the version of Gloo documentation that you would like to view. If any previous links to docs pages are broken or if you are interested in adding additional topics, our docs are open sourced and we welcome PRs and issues here.
And there’s more…
In addition to the highlights listed above we’ve added enhancements for Knative, routing, security and more. The delegation API now supports delegating routing decisions to multiple route tables selected by namespaces, labels or both — this allows users to add routes for a domain by creating their own route table without having to request updates to the parent. From a security perspective, Gloo now enables mTLS authentication between the Gloo control plane and Envoy instances to encrypt the xDS communication between Gloo and Envoy. As an official provider of Knative Serving, we’ve made the following improvements to how Gloo works with Knative including: Manual SSL configuration. Ability to override the service type, Exposing services on the internal proxy and Supporting Ingress Class Annotations.
This is just a summary of what’s been released since November and to get the full list of new features, fixes, dependency version bumps, and get a peek at what’s being worked on for v1.4, currently in beta, you can read the changelog here.
Give the latest Gloo release a try and we’d love to get your feedback in the community slack or file an issue/PR on Github. If you’re already using Gloo, get the upgrade instructions here and register for the upcoming webinar to learn more.