Posted: November 22, 2016
On Center Software: 8708 Technology Forest Pl. , Suite 175 The Woodlands, Texas 77381, United States
By Rob Irby, software engineering manager at On Center Software
Real cloud computing is more than just a virtual machine running in a remote data center somewhere. Cloud computing should allow applications to scale and give the perception of infinite resources. When cloud applications fail to scale, that means a business opportunity is lost and money is left on the table.
Time is money. This holds true for many reasons in a cloud infrastructure and scalability is the answer. When client requests surge, every request that a cloud infrastructure cannot accept is a loss in revenue. It’s not only a lost opportunity but sometimes it results in a poor customer experience which can cost even more.
On the other hand, having a huge amount of resources sitting idle, waiting for a surge in customer traffic, can also be very costly. Scalability is key. It allows a cloud infrastructure to scale way back when traffic is low, reducing the business cost when there is no business need. It also, when done right, will allow the cloud to seem like an endless pool of resources that “magically” expands as customers demand more. With the proper design and the proper orchestration, there should not even be a need for Dev-ops to get involved. If opportunity knocks and customer demand spikes at 3 AM, no one has to wake up to answer the call except the cloud itself.
Pokémon GO took the world by storm. In fact, its popularity surpassed the expectations of every person involved in the project. There is a great article on the Google tech blog about how the cloud solution was designed to only handle a fraction of the initial traffic. They set the target traffic that was expected and then prepared for a worst case scenario that was five times more than the target. Not long after they launched, Pokémon servers were being hammered by 50 times the initial target traffic! The cloud infrastructure was a success as it scaled way past the imaginable limits. When it was time to rise to the occasion and capture a huge business opportunity, the cloud succeeded. Even with the huge success, it was not long before they started to experience outages. Most of the outages were related to bugs in the technology they were leveraging. Even the providers of that technology were not aware of these issues until the Pokémon project surged in popularity and usage.
This is a perfect example of how important it is to design a cloud infrastructure that can scale way beyond the initial expectations. It needs to appear as though it is an infinite resource that can rise to the call of any opportunity. It needs to provide the same experience regardless of how many customers are using it concurrently. One customer or one million customers, it should just work. If the cloud cannot achieve this, it is possible that opportunity will pass uncaptured and possibly unrecognized. If Pokémon servers had failed when it surged past five times the targeted traffic, how might that have changed their history? How might have history been different if there were no outages even after their servers were slammed with an unpredictable amount of traffic? We will never know the answers to those questions, but we undoubtedly recognize the importance of scalability as a result.
Our Oasis Platform was built using some of the same fundamental concepts that were used by the engineers working on Pokémon’s infrastructure. We have microservices contained in Docker images being orchestrated by Kubernetes. When opportunity knocks and our customers need us, our cloud will rise to the occasion. An infinite pool of resources ready to answer any of their business needs. Cost effective yet powerful. What about your cloud? Got Scalability?