Are cloud services slow? Or fast? Both, it turns out -- and that reality could cause unexpected problems if you rely on public clouds for part of your IT services and infrastructure.
Clouds are multitenant no matter if they are PaaS, IaaS, or SaaS; that means more than one machine or user accesses the virtual and physical resources such as storage, processor, network, and memory of the cloud system simultaneously. Despite some very effective multitenant cloud systems, you typically can tell when another user is sharing those resources with you or your processes.
[ Get the no-nonsense explanations and advice you need to take real advantage of cloud computing in InfoWorld editors' 21-page Cloud Computing Deep Dive PDF special report. | Stay up on the cloud with InfoWorld's Cloud Computing Report newsletter. ]
As a result, cloud services tend to have performance profiles that are variable in nature, depending on what goes on in that cloud at any particular moment. When I log performance on cloud-based processes -- some that are I/O intensive, some that are not -- I get results that vary randomly throughout the day. In fact, they appear to have the pattern of a very jittery process. Clearly, the program or system is struggling to obtain virtual resources that, in turn, struggle to obtain physical resources. Also, I suspect this "jitter" is not at all random, but based on the number of other processes or users sharing the same resources at that time.
Of course, in a cloud computing environment, you can spin up as many instances of computing resources as you need. As you use more instances, any variation in the performance of a single instance is masked by the sheer number of instances. Moreover, as you spin up instances, they typically reside in different physical machines, which also lessens resource contention and on average keeps payloads' performance on par with each other.
Still, the actual performance of your cloud system across many instances depends largely on how well it's been designed. Providers differ sigificantly in their cloud architecture and design prowess.
The variability in performance only becomes an issue when people have to suffer through an I/O-intensive and/or chatty application where inputs and screen writes are noticeably sporadic. Alternatively, it may happen when the performance varies more on the slow side, and large processes -- such as huge database transformations and writes that occur in daily runs -- don't take place at optimal times. But that's when people (users or IT admins) seem to most care about performance.
Any reasonable cloud provider offers service-level agreements (SLAs) that define performance commitments such as response time. Most of the time, cloud services don't fall below those SLA commitments when you average their performance across a day or a week. They're just, well, variable.
If that variability is an issue, you can ask for a dedicated physical instance -- what used to be called "hosting" -- which many cloud providers offer as part of virtual private clouds. However, your costs go way up when you get dedicated resources. Or you can just keep the processing in-house if variability in performance is truly a hindrance to productivity. Again, this is typically not as cost-effective as using a cloud service and accepting the inherent shifts.
Perhaps what we all really need to do is learn to share. I'm not sure the cloud jitters are going to go away anytime soon.
This article, "Face the facts: Cloud performance isn't always stable," originally appeared at InfoWorld.com. Read more of David Linthicum's Cloud Computing blog and track the latest developments in cloud computing at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.