simmer.io
Games
Egress
Data Protection
The development team at simmer.io, a Unity WebGL game sharing platform, tried setting up their infrastructure in Google Cloud Platform (GCP). The services they needed came packaged together, and they were moving fast. But, GCP’s egress fees became prohibitively expensive when one of their games went viral, even though they used Cloudflare to cache popular content.
After successfully testing a proof of concept (PoC) with Backblaze B2 Cloud Storage, the simmer.io team copied all of their 30,000 existing games from GCP using rclone. Then, they pointed Cloudflare to Backblaze B2 to begin serving content from Backblaze as their origin store. The games are mirrored between GCP and Backblaze B2, and to ensure fidelity between the two copies, the simmer.io team periodically runs an rclone sync.
With $0 egress between Cloudflare and Backblaze B2, simmer.io eliminated the high egress costs allowing them to turn a profit after years of operating on low margins. simmer.io can grow their site without having to worry about increasing egress costs over time or usage spikes when games go viral. And, the added redundancy between GCP and Backblaze B2 gives the team peace of mind against unplanned outages.
simmer.io is an online game sharing platform for Unity game developers. In 2017, sharing games online with static hosting was a challenge for independent developers. The simmer.io team envisioned a simple, drag-and-drop way to share games, and created the platform as a way to empower indie game developers to get their games out in the world. Today, simmer.io serves as a home for 80,000+ developers and hosts 30,000+ games.
When a user uploads a game to the simmer.io platform, it lands in Google Cloud Platform (GCP). The simmer.io team periodically runs an rclone sync to mirror the game to Backblaze B2 Cloud Storage, then games are served on the simmer.io platform from Backblaze B2 by Cloudflare. Rclone performs a hash check on each file to look for changes and only uploads files that have been changed so simmer.io avoids paying any more egress than they have to from GCP.
When simmer.io was founded in September 2017, the development team focused on getting the platform built and out the door, not on what egress costs would look like down the road. The team at simmer.io first tried setting up their infrastructure in AWS. They found it to be powerful, but not very developer friendly. After a week spent trying to figure out how to implement single sign-on (SSO) using Amazon Cognito, they searched for something easier and found it in Firebase—Google’s all-in-one development environment. It had most of the tools a developer might need baked in, including SSO. They used GCP for their storage needs as well since it was on the same platform. It all came packaged together, and made sense at the time.
Next, the team implemented Cloudflare, a content delivery network (CDN), to ensure availability and performance no matter where users access the site. Even though popular content was cached on the Cloudflare nodes, egress costs from GCP still added up. At one point, a “Cards Against Humanity”-style game caught on like wildfire in France, spiking egress costs to more than double their average. The popularity was great for attracting new simmer.io business but tough on the bottom line. When the simmer.io team learned of the $0 egress Backblaze offers between B2 Cloud Storage and services like Cloudflare, they thought it could work to lower their costs and increase margins.
The simmer.io team set up a Backblaze B2 test bucket for free and integrated it with Cloudflare. The Backblaze B2 test bucket allows for free self-serve testing up to 10GB, and Backblaze offers a free proof of concept working with our solutions engineers for larger tests. The test was successful, but getting 30,000+ games from one cloud provider to another seemed daunting, especially given that games are accessed constantly on the site. They wanted to ensure any downtime was minimal. So the team worked with Backblaze to plan out the process. Backblaze solution engineers recommended using rclone, an open-source command line program that manages files on cloud storage, and the simmer.io team took it from there.
With rclone running on a Google Cloud server, the team copied game data to Backblaze B2 over the course of about a day and a half. Since the games were copied rather than moved, there was no downtime at all. The simmer.io team just pointed Cloudflare to Backblaze B2 once the copy job finished. Now, Cloudflare pulls games on-demand from Backblaze B2 rather than GCP, bringing egress costs to $0. simmer.io only pays for Backblaze B2 storage costs.
Simmer.io can grow their site without having to worry about increasing egress costs over time or usage spikes when games go viral. They can continue to offer a low-cost subscription and operate a sustainable site that gives developers an easy way to publish their creative work. Even better, they can use savings to invest in the simmer.io community, hiring more community managers to support developers. And they also realized a welcome payoff in the process—finally earning some profits after many years of operating on low margins.
Cloudflare provides developers with a worldwide content delivery network and edge IT security to scale applications globally, serving data from 200 cities in over 100 countries.