PokéMapper: building a Pokémon Go app using Cloud 66
20 July 2016
So unless you’ve been living on a desert island, under a rock or as a Trappist monk for the last week, you’re likely to have witnessed the surprise success of Nintendo’s hit mobile app Pokémon Go.
Currently, the game can only be ‘officially’ downloaded in the US, UK, Australia and New Zealand, but global demand since launch day has caused a series of server failures, with the back-end infrastructure unable to cope with the surge in user engagement from around the globe. This has led to a number of fan sites publishing work-around tips to help players dodge server issues, where they’re left staring at frozen balls or crashed screens.
One company who hasn’t had any app-related server problems is OpenRide— the Sacramento based team also behind PokéMapper; a new crowd-sourced Pokémon Go sightings tracker. Players are able to use the app to help locate Pokemon sightings in close proximity, or via logging in to the tool via Facebook to add their own sightings.
Commenting on the launch of the app; “We hope that more and more users start opening up their data, so we can all more easily find whichever Pokemon is missing from our collection” said OpenRide co-founder Phil Schleihauf. We had an opportunity to catch up with Phil, who gave us a cool run down of how Cloud 66 helped them survive PokéMapper launch day.
As it happened
Morning — Launch: We created a new stack with Cloud 66, and got everything running and working on a 1GB DigitalOcean Droplet using Nodejs + Mongodb.
Late morning — Initial traffic: with CPU on our little droplet starting to spike toward 50%, we went ahead and added a load balancer, then scaled up a 2GB droplet. Once it was ready, we moved the nodejs service to it, updated our DNS to point to the load balancer, and everything just worked!
Early afternoon — Reddit: we blasted past 150 simultaneous active users on this setup and everything stayed quiet and calm server-side :)
Evening — Press: Some news outlets got word of our project, and started driving even more traffic. The Nodejs droplet’s CPU finally started to climb toward 20% with over 400 simultaneous active users, so I just added a second 2GB droplet into the load balancer and I expect we’re set as we head toward 800!
Not a failed server in sight
One of the Cloud 66 features our customers rave about the most is the scaling capability that’s available for both our Docker and Rails products — something the OpenRide team benefitted from throughout launch day. To put it in Phil’s exact words ”Uninterrupted scaling throughout the day with zero downtime. Woo-hoo!”. The team also used Let’s Encrypt to secure the app and automated Mongodb backups to avoid any unexpected surprises.
A fantastic success story for us to hear — particularly given the cultural phenomena Pokémon Go has become, so huge congrats to Phil and his team on the launch of their app. You can access PokéMapper here, and I bid you best of luck with reaching your goal of becoming a Trainer or Master ;)