Ambassador adds rate limiting support in 0.31

We’re excited to announce Ambassador 0.31 today. This release is entirely due to the amazing Alex Gervais, who contributed support for rate limiting in this release. The official list of changes:
- Ambassador now supports using Envoy’s gRPC-based rate limiting mechanism via the
RateLimitService.
(Alex Gervais). - The
statsd
sidecar is less verbose in logging. (Alex Gervais). - The documentation has been reorganized to add a “services” section that covers both the
RateLimitService
andAuthService
.
Rate Limiting
Rate limiting is an important technique to improve the reliability of your APIs. Imagine any of these scenarios:
- One of your users inadvertently starts hammering your APIs; you want to make sure that your APIs are available to the rest of your users. You want a per-client rate limiter.
- You have a sudden spike in usage from a broad set of users (e.g., you’re on the homepage of Hacker News). While you may want to add capacity as quickly as possible, you also want to insure that your services don’t sudden fail from overwhelming load (“cascade failure”). You need some form of load shedding.
Rate Limiting in Ambassador
The exact algorithm(s) for rate limiting and load shedding are highly dependent on your organizational policies and workloads. Thus, Ambassador adds rate limiting support via a pluggable, external third party service. Ambassador sends metadata about each request to the third party rate limiting service over gRPC. The third party service evaluates the metadata (e.g., the source IP, the destination API, etc.) and returns an OK
or OVER_LIMIT
response.
For more on rate limiting, read the rate limiting tutorial and documentation.
Testing Ambassador 0.31
You can get Ambassador 0.31 running with a single Docker command:
docker run -it -p 8080:80 --name=ambassador --rm quay.io/datawire/ambassador:0.31.0 --demo
Or follow the Getting Started guide to get it running on Kubernetes.
Upgrading Ambassador 0.31
Ambassador Labs relies on Kubernetes deployments for updates. To update Ambassador, change your Kubernetes manifest to point to quay.io/datawire/ambassador:0.31.0
and run kubectl apply
on the updated manifest. Kubernetes will apply a rolling update and update to 0.31.
Conclusion
If you run into any problems with the update, please open an issue or Join Ambassador Labs Community on Slack. Special thanks again to Alex Gervais for his work on the release!
And, if Ambassador is working well for you, we’d love to hear about it. Drop us a line in the comments below, or @ambassadorlabs on Twitter.