Banjo is a mobile application that shows what’s happening in real time at any location around the world. The company, which is headquartered in California, aggregates multiple social networks so that people can experience everything from live sporting events and concerts to breaking news. Banjo is available in 14 languages, is used worldwide, and has been the “App of the Week” in both Google Play and iTunes and was recently added to Editors’ Choice in Google Play.
Banjo initially used a third-party service to host its back-end infrastructure, but as the app gained popularity, the company found itself struggling to keep up with the pace of growth. Banjo started looking at alternatives that were both flexible and cost-effective. “We needed more control and we needed to be able to experiment,” says Jeff Lee, Senior DevOps Engineer. “We knew Amazon Web Services would let us have the flexibility to experiment and innovate, without requiring us to invest in our own data center.”
Why Amazon Web Services
Banjo’s front end is written in Ruby on Rails, and runs on the Heroku platform. “We knew we wanted to stick with Heroku,” Lee says, “so it was important for us to pick a provider that would allow us to seamlessly transition our back end which consists of several large MongoDB, Redis, and Postgres clusters. Each of these has a very different usage pattern, so we also needed to be sure that we chose a provider with a wide variety of server offerings.”
Because the application maps the social graph of each of its users, Banjo actually handles more than 650 million accounts. “We’ve had a six-fold increase in the number of accounts we handle in the past year,” Lee says, “and we have doubled the number of shards in our primary database cluster. Our server footprint quickly grew to around 200 instances consisting of several SSD and high-memory instances, which help provide fast and resizable compute capacity.”
In addition to Amazon Elastic Compute Cloud (Amazon EC2), the company uses Amazon Simple Storage Service (Amazon S3) and Amazon Glacier for long-term backup and archiving. “The integration of Amazon S3 and Amazon Glacier is great,” Lee says. “It allows us to easily schedule our backups in such a way that we know we can quickly recover our data from Amazon S3 as needed, while allowing us to reduce costs through automatic long-term archiving to Amazon Glacier.”
After moving to AWS, Banjo grew from 1 million users in early 2012 to 5.2 million users in early 2013. “Using AWS helps make it easier to grow our company,” says Damien Patton, Founder and CEO. “It lets us scale at a cost that a start-up can afford—even when we quadrupled in growth in a year.”
Using AWS also enables the company to handle spikes when the app is featured on iTunes and Google Play, which happens a few times a year and brings a 500 to 1,000 percent increase in user sessions. “It’s hard to predict how these features will impact our back end, but running on AWS gives us the elasticity to be able to expand our back end on demand and then shrink our footprint down again after spike subsides,” Lee says. In 2012, during the South by Southwest (SXSW) music festival, more than 100,000 new users downloaded Banjo in a three-day period. “Using AWS allowed us to scale and manage the surge so that all users had a great in-app experience,” Lee says.
Using AWS has freed Banjo from having to spend resources on both infrastructure management and computing power. “With AWS, we can manage the infrastructure easily,” Lee says. “I can run all the systems myself with these tools. I couldn’t do that if we didn’t have AWS—we’d have to hire a couple more people. Having the ability to reserve the instances that we know we’ll need helps us save money and really gives us the best of both worlds—savings and reliability when we need it and flexibility when it’s called for.”
The flexibility that AWS provides is another benefit. “We’ve stayed with AWS because it allows us to experiment and grow without having to worry about the capital costs of making a bad decision,” Patton says. “The risk in making a mistake is low, so we can continue to innovate.”