Who knew when we started down this path of virtual reality, as every tech company would build masks, visors, and glasses that no one wore, that the real next frontier was Pokémon.
You read that right. Pokémon. Back in 1996, I fondly remember stealing my little sister’s Gameboy and spending hours playing Pokémon on a long international flight. Years later I would watch the cartoon version with my nieces and nephews, listening to Pikachu yell their names out in his adorable voice.
I never expected that the future of computing and scalable architecture would be described in terms such as: Abra, Scyther, Bulbasur, Charmander, and others (full list of rare Pokémon here).
Of course, working at ScienceLogic with an interest in cloud and infrastructure, my mind starting drifting towards how does this thing actually run. And what happens when there are outages?
About 10 days ago Niantic, the maker of Pokémon Go, issued a new release that gamers were hoping would include a fix for the famous “Three Step Glitch.” In early versions of the game, a small map indicated the relative distance of Pokémon near you by displaying one, two, or three feet. As a user gets closer to a Pokémon, the number of feet decreases.
Unfortunately, this seemingly-awesome feature was very rarely available to use. After a few weeks of inaccurate tracking, Pokémon addressed the issue… by removing the feature entirely.
Obviously, this makes it more difficult to find nearby Pokémon. Thus, a cottage industry of apps designed to find the rarest sprung up quite quickly, which were meticulously discovered and banned by Niantic. But why?
Take a look at the number of requests the servers were seeing before and after the update, and banning of third party Pokémon tracking apps.
In a nutshell, the third party apps were creating two-thirds of the total requests back to their servers, which ultimately created major problems for load, and scaling.
Scaling is a Challenge for Pokémon Go
But why? What is Pokémon Go built on top of? Well, if we examine the history of Niantic we may get some clues, as they don’t publish their architecture.
Niantic was spun off from Google in 2015, and previously built an augmented reality application called Ingress. In December VentureBeat described how Ingress would shape Pokémon Go, and as one can imagine a Google backed company is probably building on top of the Google Cloud.
But just to be sure, we know it’s not on AWS as Werner Vogels was terribly disappointed with their latest outages:
Ultimately, it looks like the company has decided to reduce features and remove access for third-party developers, a potential cash cow, as opposed to scaling out the platform in the near term. We can imagine that Niantic will be pursuing greater scalability in the future but it begs the question: What does cloud scale really mean?
The last five years in infrastructure have really been focused on building and scaling apps for the cloud with elastic capabilities. If we can’t scale out a new hot video game, what can we realistically scale out automagically? Is it a problem with code, the DB, Google Cloud, or something more sinister?
I’m going with the latter and blame Giovanni and team Rocket.
Although if you believe Reddit, it appears the real bad guys are us. The ones that are capturing the wild Pokémon for our nefarious purposes and crashing infrastructure all over the place.
What do you think? Tell us in the comment section.