CNCF Adopts Ambassador’s API Gateway, Emissary Ingress
If you are wondering why this Layer 7 load balancer you might not have yet heard of is skipping over the sandbox level at the CNCF, it might be because Emissary Ingress is actually another popular project with a new name. Formerly known as Ambassador and created by Datawire, Emissary Ingress is the open source core behind the Ambassador Edge Stack, and has taken on a new identity, explained Ambassador Labs founder and CEO Richard Li.
With its contribution to the CNCF, the project hands over intellectual property rights, including trademark. But “we just couldn’t give the CNCF full rights to our company name,” said Li, “and so we just agreed the simplest thing to do is just to rename it, and ’emissary’ is a different type of ‘ambassador.'”
According to a press statement, Emissary Ingress is in use by companies such as Ticketmaster, Chick-Fil-A, and AppDirect, with reports of use cases “as high as 500,000 requests per second and jumps from 5 million users to 15 million in less than 10 minutes.” Emissary Ingress has actually been around in some form since 2014. Li explains that it came about shortly after Envoy creator Matt Klein spoke about building the Envoy proxy, also a CNCF project, at an early Microservices Practitioner Summit.
“We launched Ambassador built on Envoy for Kubernetes probably three or four months after his talk, because we saw that Envoy was really the future around proxies for the cloud native ecosystem,” said Li, “and we also saw that Kubernetes was the future and we knew that, logically, people were going to need to deploy Envoy on Kubernetes.”
Emissary Ingress is now just the second ingress controller to join the CNCF after VMWare‘s Contour, though Li says that Emissary Ingress has more functionality in the API gateway realm than Contour, which has just started to adopt those features. An ingress controller, Emissary Ingress has “a very technical construct” that implements the Ingress Specification as defined by the Kubernetes Networking Working Group, whereas the API gateway is more of a superset of that functionality, taking that same north south traffic and performing functionality such as authentication and rate limiting, among other potential features, Li said.
Indeed, beyond the basic features of ingress, emissary-ingress also provides a number of features, such as integrations with Grafana, Prometheus, and Datadog, developer onboarding with a Developer Portal, Knative serverless integration, service mesh connectivity with Consul, Linkerd, and Istio, and progressive delivery with canary releases. Emissary Ingress also relies on Kubernetes for persistence, which gets rid of the need for a separate database and allows Kubernetes to restart Emissary Ingress when problems occur.
Li explained that there are several reasons for joining the CNCF around adoption, community building, and the neutral governance provided by the foundation.
“In the world of Ingress controllers and API gateways for Kubernetes, the way we see the world is, you want to build on Envoy proxy, you probably want to choose a CNCF based project because of the neutral governance and knowing that there’s a certain amount of traction required to get into the CNCF,” said Li. “We’d love to expand the group of folks who are working on it. That’s probably the biggest thing, just growing that community of both users as well as contributors and maintainers. We’ve had a lot of success working with other organizations around contributing functionality to Ambassador, they’ve been terrific, and we think just by being part of CNCF that other organizations will realize it’s not just an Ambassador Labs project.”
The Emissary Ingress roadmap includes adding support for Web Assembly (WASM) and caching APIs, but Li seems most interested in their collaboration with Argo on canary releases, progressive delivery, and merging native support for Emissary Ingress into Argo rollouts.
Beyond that, Li also said that they are working to support the Gateway API, a successor to the Ingress Specification, which he sees a lot of community interest around. The Gateway API is “a collection of resources that model service networking in Kubernetes” that “aim to evolve Kubernetes service networking through expressive, extensible, and role-oriented interfaces that are implemented by many vendors and have broad industry support.”
“There’s a lot of things in the Gateway API that make it much more flexible than the current Ingress specification,” said Li. “We’re excited to be working on that as well.”