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.