While IT staff at Shazam can provision extra servers at its service provider’s data centers to prepare for traffic spikes during Super Bowl or the Grammy’s, there’s no way for them to foresee a radio station in a big metro playing a forgotten R&B hit everyone suddenly falls in love with and wants to know the name of.
Handling unexpected demand spikes without overprovisioning hardware is one of the things cloud works especially well for, and Google’s cloud platform has been helping the instant music recognition app survive Shazaming surges smoothly, without paying for way more servers than necessary running around the clock in case half a million millennials in Pittsburgh suddenly want to know who sings “Lucille,” all at the same time.
But Shazam has been able to use cloud in this particular way only recently. One of the reasons the app recognizes so much music so quickly and so accurately is that it runs on a massive fleet of GPUs, the same type of processors used in supercomputers and servers for machine learning.
Traditionally, the company has used bare metal GPU servers, which is what two-thirds of its infrastructure still looks like. Cloud GPUs have not been available until recently (cloud giants started rolling them out only last year), and when cloud providers did start offering them, they were way too expensive to be practical for an app like Shazam.
That’s according to this week’s blog post by Ben Belchak, head of site reliability engineering at Shazam:
“Only recently have the economics of GPUs in the cloud really made sense for our business.”
On the backend, the application keeps audio signatures for every one of more than 40 million songs in its catalog in custom database format in GPU memory. When you Shazam a song, the algorithm uses GPUs to search the database until it finds a match for the audio snippet you’ve recorded with your phone, finding a successful match more than 20 million times per day, according to Belchak.
Before switching a big chunk of its infrastructure to Google’s cloud GPU service, his team would provision enough bare metal GPUs in their data centers for what they estimated peak demand would be and keep the entire fleet running 24/7, 365 days a year.
“We kept costs under control by improving our algorithms and by taking advantage of ever-evolving GPU architectures and the performance improvements they brought.”
But as they compete for market share, cloud giants have been slashing prices across their services, eventually bringing the cost of their GPU services down enough to be practical for Shazam.
Belchak did not say whether his company had plans to migrate the rest of its workload to cloud, but you can find more details on how Shazam works in his blog post.
And in case you were wondering, it was Little Richard who sung on the 1950s hit recording of “Lucille.” Here it is, to brighten your Friday: