As an IT leader you must manage the complexity and massive integration of systems, processes, and applications, to prevent major outages and instability issues. You understand the implication of the business impact and are results driven. So ask yourself, is your infrastructure along with your systems, processes and application architecture designed to handle the speed, surge, and demand on resources of new applications being built?
Augmented reality, geo-fencing, HD video and sensor data streams are already being used by ridesharing applications, navigation systems, astronomy, real estate, manufacturing, tourism, promotional marketing, sales, and, of course, gaming. Whether you have downloaded and used the Pokémon Go app yourself, know of someone who has, or simply followed the media coverage of this amazing technological collision of virtual digital and physical worlds, it is hard to dismiss the popularity of an application that according to USA Today registers a whopping 21 million daily active users.1
For those of you who only mastered the game of Pong2, Pokémon Go is played on a Smartphone (iOS or Android) and uses GPS tracking combined with augmented reality to offer local maps to launch the player into a quest to capture digital characters called Pokémon. The dependence on real-time GPS data, time-of-day, local sensor (accelerometer) and integrated smartphone camera makes Pokémon Go one of the most data intensive applications currently taxing network infrastructures when multiplied by the tens of thousands of simultaneous users each minute.
The incredible success of Pokémon Go has also revealed some of the problems with the technology ecosystem as related by some very frustrated and vocal users posting on Reddit. Issues like:
- Application hang ups
- Slow response times
- Loss of connectivity
- Server problems
- Screen freezes
- “Try again later” messages, which are not what you want your user community to be writing about
During the most recent San Diego Comic-Con John Hanke, Niantic CEO and the chief executive behind the Pokémon Go smartphone app, apologized to attendees stating that their servers “weren't provisioned for what happened;” referring to the huge hit that this game has become.
While the magnitude of these problems may be greater than most IT leaders will ever have to respond to, the similarities for end-user frustration and disappointment in terms of unmet expectations are no different when it comes to system availability, lack of resources and faulty data. So has Pokémon Go presented us, as IT leaders, with a teachable moment?
In my experience, applying ‘what if’ scenarios are a prerequisite for any successful IT project. When I brainstorm with my team, we begin with no boundary constraints, so every question that begins with ‘what if this condition happens’ is a valid scenario. We then apply these conditions to the project framework and consider extreme boundary conditions for all scenarios and the ramifications for each.
Each consequence should address the user experience, financial implications, downstream customer or partner impact and system or network impact. Another important consideration and question to ask is if a failure condition is recoverable and if so, how is it recoverable and in what amount of time.
Purpose-built data centers and networks designed around general purpose applications will not be able to handle the demands as new technology paradigms evolve. Even the Pokémon Go application which was built to take advantage of the scalability of the cloud still has bottlenecks on servers that are not able to keep up with the massive contention on resources.
Could the application designers have envisioned that server congestion would occur when a Vaporeon3 appears in Central Park and a massive stampede occurred with hundreds of users simultaneously trying to capture it? Absolutely!
Simulations of simultaneous hits on a server and modeling of network performance should be mandatory for every IT project along with the strategy for error recovery and disaster recovery of the network resources and the application itself.
As social media applications are written and deployed for the transportation, travel, and entertainment markets, the inclusion of video, audio, GPS, and sensor data will continue to challenge IT professionals in the way that systems are architected, software is deployed and network bandwidth is allocated.
It may be reasonable to reconsider micro datacenters in addition to a centralized cloud instance for applications that escape the boundaries of the ‘what-if’ scenarios that were initially established. When user hot-spots occur converging hundreds of users to a location due to a promotional event (e.g., ticket sales or celebrity sighting), multi-player gaming, or anywhere that a large volume of potential users congregate, should all that data and taxation on network resources occur at the cloud level or could it be better handled at a local instance which could provider better responsiveness and a higher guarantee of availability?
Hotspots of activity do not occur in a serialized manner, they happen globally and simultaneously. These activity bursts are the bane of the current Pokémon Go application and should be a lesson for all application architects. This application is a victim of its own success generating clusters of users around the world luring, battling and searching for their next evolutionary conquest.
The query-response systems of yesterday built upon a traditional three-tiered model were accepted for general purpose networks but not for the needs of today and tomorrow’s evolving social media and Internet of Things (IoT) applications.
Yet, many data centers and IT infrastructure designs continue to be built on this basis. In today’s incarnation of the Pokémon Go application, players either capture their quarry or battle them on a one-on-one basis.
This model may be suitable for North-South traffic (user to cloud and back again) patterns because as yet, simultaneous multi-player battles are not currently implemented nor are teams for that purpose. But according to John Hanke, these team capabilities are on the drawing board. In future application releases, East-West traffic (sharing team health, inventory information between players) data exchanged may be just as heavy and in fact more important than North-South (playing the computer generated instance of the acquisition target).
Consider Data Latency
In addition to software integrity, application architects should consider if and how the physical network will adequately support the user experience they are trying to achieve. A leaf-spine network is where all devices are exactly the same number of segments away should be worthy of consideration. In this topology, there is a predictable and consistent amount of delay (or latency) for data packets. Here, the physical network is supportive in handling the large amounts of data being communicated.
Although Pokémon Go is only a game, its success is evidenced by the number of players, social media postings, and news coverage should make every IT leader take note. Ask yourself, how is my infrastructure going to handle new and emerging applications? Ask yourself, if your network architecture needs to evolve from a traditional three-tiered model to a leaf-spine model or a software defined network (SDN) to handle new IoT sensitive applications?
In addition to a cloud instance, have you considered a converged infrastructure solution and micro data center to process localized transactions? When it comes to your next project, think Gotta Catch 'Em All4 and apply the ‘What if’ scenarios and consider all the implications of the network infrastructure on your application framework and user experience.
1. Brett Molina, USA Today, 1:01 p.m. EDT July 13, 2016
2. Pong, the first commercially successful game, was released in 1972 by Atari Corp.
3. Vaporeon, is a fictional character and registered trademark of Nintendo Corp.
4. Gotta Catch 'Em All was the motto for the Pokémon series