Ambassador Labs

Code, ship, and run apps for Kubernetes faster and easier than ever — powered by Ambassador’s industry-leading developer experience.

Follow publication

Case Study: How Onefootball saved more than $20,000/year with Ambassador

--

This article is based on an interview with Jonathan Beber, SRE/DevOps Engineer, and Rodrigo Vieira Del Monte, DevOps Engineer, at Onefootball.

About Onefootball

Onefootball is a football media company with more than 10M monthly active users delivering more than 10TB of content per day.

Describe Onefootball cloud application and its general workload (e.g., requests/second , # of services, etc.)

We run in a Kubernetes environment with more than 50 microservices running in a public cloud. These services talk to each other to handle the news, statistics, scores… all the kind of data related to football (the real one, played with the foot (just kidding)). Nobody reads football messages all of the time, so our traffic can be highly irregular. For example, our traffic skyrocketed when C. Ronaldo was transferred or when Salah had to leave the pitch after a Sergio Ramos fault during a Champions League final. So, auto-scaling and spikes are our day-to-day.

We needed a Kubernetes-based API Gateway and Ingress solution to handle our 6,000 request/second workload reliably and efficiently.

What was your pre-Ambassador API Gateway strategy?

Before Ambassador, our API Gateway strategy was based on 1 Amazon Elastic Load Balancer (ELB) per Kubernetes service. Each service had a DNS host like “service-name.onefootball.com” used by mobile and web clients. This meant more than 50 (100, if you count the pre-prod environment) different DNS hosts that clients needed to be aware of.

This was difficult for our relatively small SRE team to manage and it was also expensive. We were spending more than $20,000 per year on load balancers alone.

Why did you choose Ambassador?

We chose Ambassador because of how simple it was to get something up and running in production. We were already using Helm to deploy our applications in Kubernetes, so it was as simple as deploying a Helm Chart.

The usage of Envoy Proxy and the integration with Istio were also key points for us. We wanted to deploy an Ingress to remove the dependencies of load-balanced services on Kubernetes, but we also wanted to use something easily extendable. In this case, Ambassador Labs was perfect for us.

At first, we intended to only use Ambassador as an Ingress solution. But once we needed API gateway functionality like load balancing and observability, everything was there, ready to use.

Benefits of adopting Ambassador API Gateway?

Ambassador reduced the number of existing cloud-based load balancers from more than one hundred to just four. With four load balancers we spend less than $900 on load balancers per year — that’s a cost savings of more than $21,000.

Today, we have four Ambassador deployments — two in production managing external traffic and two in staging for internal tools like admin pages, CMS, etc. Overall, we can summarize the benefits of Ambassador into four categories:

  • Cost reduction. Ambassador reduced the number of existing cloud-based load balancers from more than one hundred to just four. With four load balancers we spend less than $900 on load balancers per year — that’s a cost savings of more than $21,000.
  • Observability. Ambassador metrics summarized on Prometheus are more manageable for our small team of SREs compared to cloud provider metrics.
  • Maintainability. Because of Ambassador’s Kubernetes annotation-based declarative configuration, we could split configuration responsibility between product development teams and SRE teams, lessening the burden on SRE.
  • Change management. There is no longer a need for changes in DNS structures; now, creating new routes is as easy as defining a Kubernetes service.

Do you have any advice for people looking to adopt Ambassador?

Try it! We have impressive metrics around Ambassador, and we want to share with the community how great it’s been for us, but trying it yourself is more useful than just reading about our experience. Getting started with Ambassador is very easy — just by following the Getting Started guide we were able to get Ambassador deployed in production easily. When we ran into a corner case in our setup, the Ambassador user community was really helpful on the Ambassador Slack channel. Ambassador started to show results from day 0, and since then, we’ve been able to make it even more powerful each day.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Published in Ambassador Labs

Code, ship, and run apps for Kubernetes faster and easier than ever — powered by Ambassador’s industry-leading developer experience.

Responses (1)

Write a response