Cloud and Performance… Myths and Reality

by David Linthicum@Microsoft

First the myths:

Myth One:  Cloud computing depends on the Internet.  The Internet is slower than our internal networks.  Thus, systems based on IaaS, PaaS, or SaaS clouds can’t perform as well as locally hosted systems.

Myth Two:  Cloud computing forces you to share servers with other cloud computing users.  Thus, in sharing hardware platforms, cloud computing can’t perform as well as locally hosted systems.

Let’s take them one at a time.

First, the Internet thing.  Poorly designed applications that run on cloud platforms are still poorly designed applications, no matter where they run.  Thus, if you design and create “chatty” applications that are in constant “chatty” communications from the client to the server, latency and thus performance will be an issue, cloud or not.

If they are designed correctly, cloud computing applications that leverage the elastic scaling of cloud-based systems actually provide better performance than locally hosted systems.  This means decoupling the back-end processing from the client, which allows the back-end processing to occur with minimal communications with the client.  You’re able to leverage the scalability and performance of hundreds or thousands of servers that you allocate when needed, and de-allocate when the need is over.

Most new applications that leverage a cloud platform also understand how to leverage this type of architecture to take advantage of the cloud-delivered resources.  Typically they perform much better than applications that exist within the local data center.  Moreover, the architecture ports nicely when it’s moved from public to private or hybrid clouds, and many of the same performance benefits remain.

Second, the sharing thing.  This myth comes from the latency issues found in older hosting models.  Meaning that, we all had access to a single CPU that supported thousands of users, and thus the more users on the CPU, the slower things got.  Cloud computing is much different.  It’s no longer the 1980s when I was a mainframe programmer watching the clock at the bottom of my 3270 terminal as my programs took hours to compile.

Of course cloud providers take different approaches to scaling and tenant management.  Most leverage virtualized and highly distributed servers and systems that are able to provide you with as many physical servers as you need to carry out the task you’ve asked the cloud provider to carry out.

You do indeed leverage a multitenant environment, and other cloud users work within the same logical cloud.  However, you all leverage different physical resources for the most part, and thus the other tenants typically don’t affect performance.  In fact, most cloud providers should provide you with much greater performance considering the elastic nature of clouds, with all-you-can-eat servers available and ready to do your bidding.

Of course there are tradeoffs when you leverage different platforms, and cloud computing is no different.  It does many things well, such as elastic scaling, but there are always those use cases where applications and data are better off on traditional platforms.  You have to take things on a case-by-case basis, but as time progresses, cloud computing platforms are eliminating many of the platform tradeoffs.

Applications that make the best use of cloud resources are those designed specifically for cloud computing platforms, as I described above.  If the application is aware of the cloud resources available, the resulting application can be much more powerful than most that exist today.  That’s the value and potential of cloud computing.

Most frustrating to me is that, other than the differences between simple virtualization and cloud computing, I’ve become the cloud computing myth buster around cloud computing performance.  In many respects the myths about performance issues are a bit of FUD created by internal IT around the use of cloud computing, which many in IT view as a threat these days.  Fortunately, the cloud is getting much better press as organizations discover proper fits for cloud computing platforms, and we choose the path to the cloud for both value as well as performance.

By the way, this is my last article in this series.    I enjoyed this opportunity to speak my mind around the emerging cloud computing space, and kept to the objectives of being candid, independent thinking, and providing an education.

I’m a full time cloud computing consultant by trade, working in a company I formed several years ago called Blue Mountain Labs.   I formed Blue Mountain Labs to guide enterprises though the maze of issues to cloud computing, as well as build private, public, and hybrid clouds for enterprises and software companies.      You can also find in my the pages of InfoWorld, where I’m the cloud blogger, and I do my own Podcast called the Cloud Computing Podcast.

Again, I want to thank everyone.    Good luck in the cloud.