The Company
Audiohook is a performance-based advertising platform specializing in audio campaigns. Their niche is podcasting, but they also serve ads on music streaming services and radio. Their customers are direct-to-consumer brands that want to reach audiences who are actively engaged.
Audiohook’s commercial model differs from conventional audio advertising in that they only charge when a measurable user action occurs. Think Google Ads, but for audio. That model makes Audiohook technically demanding to operate. To optimize campaigns in real time, the platform has to process enormous volumes of programmatic bid requests, score traffic against attribution models, and respond to publisher opportunities.
Serving customers and operating their business models requires an infrastructure that’s capable of keeping pace with the business. For much of Audiohook’s history, it did not have one.
The Cost of Cloud at Scale
Audiohook began on AWS, where growth was economically self-defeating. “We were getting decent performance,” says Ryan Hightower, Audiohook’s head of engineering. “But expanding the business was increasing costs at a higher rate than we were bringing in money.”
The team’s first response was to migrate to Google Cloud and adopt Kubernetes. On paper, it was a sensible choice: open source, widely supported, and cost-competitive with AWS. But while the migration brought costs down, it introduced a different set of problems that proved equally limiting.
Audiohook didn’t have a dedicated DevOps engineer, but instead relied on external contractors to configure and maintain the platform. The work was slow and expensive. Services that Hightower could spin up on a local machine in half a day took contractors weeks to deploy correctly. “It was shocking to see how long it took to set up some simple services,” he says. “These were not inexperienced contractors; they were working for big companies and knew what they were doing. But there was a lot of unexpected tuning.” In the end they concluded that Kubernetes wasn’t the right tool.
“Kubernetes is open source and has open-source tooling built around it, so the assumption was it should work long term,” Hightower notes. But its operational support could be fragile. The situation reached breaking point when a contractor became unavailable and a key third-party service that the team depended on was shut down. “We were suddenly left in the lurch, without any support for the system,” says Hightower.
The team started looking for an alternative.
Choosing Cycle
Hightower first came across Cycle a couple of years earlier while researching alternatives to Kubernetes and exploring Infrastructure as Code approaches. Cycle’s promise of infrastructure that was as straightforward to operate as Docker, but with the performance, server density, and cost effectiveness of bare metal, attracted him. “It sounded like it would solve a lot of problems for us: easily managing the cross-cloud compute, with access to the bare metal resources we already had.”
Two years on, the time had come to test it out. “We were going to try a proof of concept to set up a small thing on AWS with Fabric, hoping it could lower our overall cost by filtering out unnecessary traffic,” notes Hightower. But after talking with Cycle, it was clear that it could do everything we wanted it to.”
The business case took shape as conversations with the Cycle team deepened.
“The more I talked to them the more convinced I was that Cycle could solve a lot of problems for us.”

Cycle’s direct integration with Vultr, a bare metal provider, meant Audiohook could access physical servers without owning or co-locating hardware. The platform’s built-in load balancer could replicate traffic-filtering capabilities the team had been hoping to source from Fabric. In addition, Cycle’s built-in monitoring looked capable enough to replace a third-party logging service that the team was paying for separately. Moreover, the Kubernetes contractors they spoke to suggested that moving all their compute back from GCP to AWS Fabric would take around two months.
But the built-in support for auto-scaling on bare metal was what persuaded Audiohook’s co-founder and chief executive, Jordan Bentley, that Cycle was the best option. With a background in software engineering, Bentley has been cautious about proprietary platforms. Hightower notes: “We try to anticipate our resources to avoid relying too heavily on auto-scaling, but bid traffic can spike really quickly and a heavy spike represents a lot of opportunity, so you want to be able to quickly scale up to meet demand. Auto-scaling is one of the primary reasons that our CEO was able to say, ‘Okay, we can go to Cycle’.”
Audiohook’s Architecture
Audiohook’s software stack is a largely Python-based microservices architecture, built around a real-time bidder application, that accounts for around 80 percent of the company’s compute. The real-time bidder receives programmatic bid requests, determining whether and how much to bid, and responding with an ad for that opportunity — all within the latency constraints that programmatic advertising demands.
Surrounding the bidder are the services that handle what happens when a bid is won: a routing application receives win notifications from publishers, a queuing service picks up those events, and data processors carry them through for ingestion into the data lake. Its ancillary services, written in JavaScript, run on Node.js.
The proof of concept was to move the bidder application from GCP to Cycle and Vultr, to see if it could handle the load affordably. “There is always a balance between performance and cost for us,” notes Hightower. “Our biggest challenge is data processing while receiving traffic at volume, and not breaking the bank. That proof of concept worked really well. It took us a couple of weeks to tune the system and take live requests, which I was really happy with. And we were fully up and migrated in less than a month.”
The Results
The impact has been measurable across cost, performance, and operational complexity.
On Cycle, this architecture runs on bare metal servers provisioned via Vultr. Scheduled jobs that previously ran in AWS Lambda now run on Cycle Functions. A small number of AWS resources remain, principally S3 for the data lake and some ingestion pipelines, but the majority of compute has moved to bare metal hardware. The team has been steadily consolidating processing onto servers it is already paying for.
Infrastructure costs fell from 10 to 12 percent of revenue on AWS — with a partial reduction achieved under GCP — to around 3 to 4 percent today. The team’s long-standing target had been to get below 7 percent, so adopting Cycle took them considerably further than that. “With Kubernetes, we needed to spend tens of thousands on contractors and services to help us manage it,” Hightower says. “Neither Bentley nor I want to manage that kind of infrastructure.”
The performance difference is not modest. Throughput increased from 1.8 billion ad requests per week to more than 8 billion — a 4.5x increase — achieved on broadly similar CPU resources. Audiohook ran approximately 200 to 220 virtual CPUs on Google Cloud; it runs around 200 physical CPUs on bare metal with Cycle today.
As well as being financially cheaper, the move to bare metal reduces carbon costs and so is better from a sustainability perspective. “Virtualization is incredible technology, but it’s shocking how much waste ends up happening,” Hightower says.
An unexpected cost saving came from Cycle’s built-in monitoring. Audiohook had been paying thousands of dollars a month for third-party log ingestion and analysis. After seeing what Cycle’s native monitoring provided out of the box, they cancelled the subscription.
The developer experience has also shifted.
“We’d been suffering from ‘clickops’ for a long time,” Hightower notes. “Compared with AWS or GCP, Cycle’s user experience is really straightforward.”
Audiohook has also been using Cycle’s APIs to build deployment pipelines, automate infrastructure operations, and commit configuration to Git. “We tried to do the same thing with AWS and it was really difficult,” Hightower continues. “Cycle’s APIs are well documented and more straightforward. The whole concept of using Docker containers is more intuitive to me, and it’s been really fun to set up those automations as a non-DevOps engineer.”
Perhaps the most telling measure of Cycle’s ease of use is provided by Bentley, who has been managing Audiohook’s infrastructure tasks directly, tuning services and handling deployments in ways that were simply not possible with Kubernetes or the AWS console. “He’s really enjoyed both the level of support and the ability to tune stuff himself,” Hightower says.
The support received during migration has been equally notable. “I couldn’t say enough about it,” says Hightower, who estimates the value of Cycle’s hands-on assistance at around $20,000 — equivalent to the cost of contractor time on the Kubernetes migration. For Audiohook, the combination of costs well below target, fourfold performance gains, no contractor dependency, and a platform accessible enough for a non-specialist to operate, is better than the outcomes that other platforms had delivered.
“Hindsight is 20-20,” says Hightower. “I wouldn’t say we should have done this a couple of years ago. But, at the same time, we should have done this a couple of years ago.”
Audiohook is a programmatic audio advertising platform delivering performance-based campaigns across podcast, streaming, and terrestrial radio. The platform processes more than 8 billion bid requests per week.