Heads in the cloud today

I heard a comment a couple of days back saying that the performance testing will die because of the cloud. Theres a couple of things with this - but, before I get to them I will put some cards on the table. I'm a performance tester so I obviously have a bias for my profession. Secondly, I don't hate the cloud. What I can't stand is cloud sales people saying that its going to solve every and all peformance, capacity, and scalability problem.

So:

1. Bad software is bad software no matter how much cloud compute you throw at it. You really think that full table scan is going to be fixed by adding another 4 cloud servers? How about adding another 40GB of heap to your JVM and provisioning more virtual RAM to get around that frequent and nasty full gc problem you're seeing? Cloud is not going to help in those situations.

2. How's your network infrastructure? Do you have enough capacity accross you net facing infrastructure? How's your firewall capacity looking at the moment?

3. Business systems do not scale linearly. Adding more cloud capacity will eventually hit the point where you are either paying for ever diminishing returns - or you get to the point of retrograde performance, and you might not realise until its to late. Lets say we have a system where 5% of the code needs to execute serially - i.e. its waiting on IO, a database lock or something else...what impact does adding more cpu have? Well, not as much as you might think :

No alt text provided for this image

Thats using Amdahls law, assuming a fixed problem size where a portion of the code must be executed serially (i.e. we're waiting on a database lock). Gustafsons law is much kinder to us because that assumes that the parallel bit of the system scales linearly and the serial part does not increase with the increasing size of the problem. So far, what I've seen in business systems are those that scale in accordence with Amdahls law - or worse the universal scalability law which is when you try the 'add more cloud' a system that needs to synchronise shared states. The the more parallel resource you add, the slower things go because we are now having to maintain state (crosstalk) accross n(n-1) things as well as having a serial bottleneck (contention).

4. Are you integrating with on-prem systems at all? If so how? APIs perhaps? Thats great! But have you considered that a new point of loading has been introduced which is probably quite different to what has been previously encountered (also, how sensitive is this to latency?)

5. What are you moving up to the cloud and what sort of resource is it expecting? Deploying your application and web servers - sure ok. What about something like batch processing though which requires fast access to IO and a decent chunk of CPU? When do your batch processes fire off exactly? After all, the cloud is basically "someone elses computer" so you might need to buy some dedicated provisioning to ensure that your batch process that absolutely positively needs to finish on time isn't running concurrently with peak processing for another one of the cloud providers clients. How much does that dedicated ultra super diamond encrusted platinum hosting cost by the way?

The cloud is not a bad idea, what is a bad idea is having it seen as a panacea for all of a systems performance problems through the simple expediency of adding more 'cloud'. If more resources were the solution to performance problems, the role would have become extinct before it even was a thing. For certain workloads it provides an excellent cost effective solution. Its not the death knell of performance testing though.




While not directly related to the article - a shout out to these guys: http://xkcd.r-forge.r-project.org/

Like
Reply

Amen, brother Scott. Preach it!!

Like
Reply

Nice article - also worth throwing out there people understanding ‘where’ their cloud is - I’ve seen organisation architect solutions that traverse the globe (multiple times) and then scratch their heads over latency problems.

To view or add a comment, sign in

More articles by Scott Stevens

  • Why the Jmeter Hate?

    There’s been a lot of talk on the failings of Jmeter on linked in over the last week. I used LoadRunner for years and…

    9 Comments
  • Do I Really need Tableau

    I made a post a couple of days ago in response to a comment about automated dashboards in tableau, and why I have…

    3 Comments
  • Thoughts on an Performance Testing Question

    A small group of us with differing levels of performance testing experience from 1 year to 13 years. Amongst the many…

    11 Comments
  • Dude, Where's my Analysis Engine?

    Can an open-source performance testing tool deliver? Of course it can, just be aware that its going to expect more from…

    1 Comment
  • Walking away from a problem

    Sometimes when you are faced with a thorny performance issue, the best thing you can do is simply walk away for a while…

Others also viewed

Explore content categories