Vimeo is the world’s leading video software solution, powering hundreds of thousands of new uploads every day and billions of views. At our scale, it’s paramount that we retain a seamless user experience across all of the videos hosted, shared, and viewed on Google’s platform. With managed database services from Google Cloud, Google have been able to deliver a consistent and reliable user experience no matter where Google’s users and their audiences are.

Outgrowing the data center and gaining more scale

Vimeo’s first exposure to Google Cloud was the excellent performance between Google Compute Engine (GCE) and Google Cloud Storage (GCS), which they used to design a really high quality playback and upload environment for their customers’ videos. At first they were simply creating cloud-based packaging and delivery of their content, but the bulk of their application ran on an on-premises MySQL database. Seeing the gains from their initial investment in GCE and GCS, Vimeo decided to fully migrate to Google Cloud. 

Vimeo started by lifting and shifting their workloads from their on-premises deployments to GCE. But they quickly realized they had to redesign the application to deliver higher availability and responsiveness for an exceptional user experience, which led them to Cloud Spanner, a distributed SQL database management and storage service. With Spanner, they found all the benefits of a relational semantics database with global scale, allowing them to add more nodes with the push of a button. 

Today they have a multi-region instance with 99.999% uptime, so they are confident it can handle their video workloads. Vimeo use about 16 Spanner nodes to cover approximately 50.8 billion rows and about 4.5 terabytes of storage/disk space. And with the launch of Video Library, they have the scale they need to fundamentally change the way organizations handle content. 

Using Spanner as a time machine during migration

During the initial migration, Vimeo wanted to ensure an accurate data transfer with as few errors or bugs as possible. When they moved data from MySQL tables into Spanner, they ran spot analyses to check for potential problems. If the data didn’t match, Spanner allowed them to revert to the original in a single click. Through Spanner they could check stale timestamps or past users. It almost functioned like a time machine by offering point-in-time recovery functionality.

Serving up any video at any time

Vimeo work with a long tail of content. Depending on how popular a video is, they take a different approach to storing it. They cache the most popular material so it’s immediately accessible and use Cloud Spanner to ensure it’s highly available across multiple regions. On the flip side, they use Cloud SQL for some lower volume satellite services that support other components of the application that don’t require the same guarantees or performance that Cloud Spanner provides.  

As their millions of users continue to upload their own videos, Spanner also acts as a video metadata indexing and cataloging service. When they need to play back a particular video, they can quickly and easily find it in a sea of content. It’s crucial that their database is highly available and reliable so the playback experience is seamless for their users. 

To learn more about Vimeo, visit their site.

Learn more about how your organization can use Cloud Spanner.