28
Albert Witteveen, Pluton IT With Cloud Computing, Who Needs Performance Testing? www.eurostarconferences.com @esconfs #esconfs Insert speaker picture here, no more than 150x150 pixels

Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Embed Size (px)

DESCRIPTION

EuroSTAR Software Testing Conference 2013 presentation on With Cloud Computing Who Needs Performance Testing by Albert Witteveen. See more at: http://conference.eurostarsoftwaretesting.com/past-presentations/

Citation preview

Page 1: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Albert Witteveen, Pluton IT

With Cloud Computing,

Who Needs Performance Testing?

www.eurostarconferences.com

@esconfs#esconfs

Insert speaker picture here, no more than 150x150 pixels

Page 2: Albert Witteveen - With Cloud Computing Who Needs Performance Testing
Page 3: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Albert Witteveen

Page 4: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

You just woke up after a 10 years nap:

Team member:

“We can add extra processing power and memory on the fly. An extra database has a lead time of two weeks”

Page 5: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Does this sound familiar:

Performance test: everything OK

Day 1 on production: we end up adding more than four times the hardware

Page 6: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

1. the tools simulate but are not quite equal

2. load profiles are based on too many assumptions

3. we report more accurately than we can measure

4. long setup time → limited amount of tests

5. we hide it all in complex reports

Page 7: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

We send and accept the same requests and responses but can't anticipate slight changes

In production, a lot more is going on then just our test

Did we really get a good response

Similar hardware is expensive

Page 8: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Cloud computing: adding extra hardware can be done on the fly and on a moments notice

With the high costs of performance testing and how easy we can 'speed things up' if needed:

Why bother testing? The money is better spent on that extra hardware

Page 9: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Just start with an overkill of hardware and scale down to what is actually used!

Page 10: Albert Witteveen - With Cloud Computing Who Needs Performance Testing
Page 11: Albert Witteveen - With Cloud Computing Who Needs Performance Testing
Page 12: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Computers are running or idling.

The queuing theory is an established model for performance engineers

It can describe the behavior of systems on every layer

Page 13: Albert Witteveen - With Cloud Computing Who Needs Performance Testing
Page 14: Albert Witteveen - With Cloud Computing Who Needs Performance Testing
Page 15: Albert Witteveen - With Cloud Computing Who Needs Performance Testing
Page 16: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Queuing center: a location in our system where waiting (queuing) occurs a Bottleneck if you will

◦ They can exist anywhere: CPU, Memory, Network, IO, other systems

◦ There is always one or more queuing centers

◦ A queuing center really determines the performance

◦ The queuing center provide key information on scalability

◦ Service and wait time are the real components of performance

Page 17: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Queuing model describe anything: large connected systems, small, embedded ...

You can 'zoom in' and the model can describe the behavior or the server

You can keep zooming in to CPU, network etc.

Page 18: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Multiple zoom levels

Residence time = wait + service time

There is always a queuing center

No queuing center found: look harder

Page 19: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Cloud computing not infinite:

Financial limit

Technical: IO/Network/CPU speed per process

We don't build supercomputers to calculate a mortgage offer

Page 20: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Always find the queuing centers

Based on the result: judge 'yes we are likely to meet requirement X Y and Z'

Show where the risks are 'requirement x cannot be feasibly met for function y'

Explore the risks

Page 21: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Explore identified resource heavy components with stakeholders, developers and oracles◦ Other use of this component?

◦ Real frequency of usage?

◦ Validity of the (generic) requirement for this function?

Place the results in context: ◦ You may have a bigger issue than you thought

◦ Or it is actually OK for this usage

Page 22: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Define a set of key functions/use cases with stakeholders and experts (i.e. functional testers)

Per test identify at least one queuing center

Compare with generic requirements◦ Can meet ?

◦ Risk exist → explore → place in context →define further test

The model allows you to place real behavior in context and a realistic assessment of risk

Page 23: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

If no queuing center was found → monitoring was not sufficient

Queuing centers:◦ Tell you about the risks to core functionality: performance and

financial

◦ Tell you on the ability to scale

◦ Improve response time in scaling up

Page 24: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Stakeholders don't (necessarily) understand queuing models

Explain in what matters to them: i.e. when making the offer it takes 15 seconds to generate

Think of the systems as queuing systems and explain behavior

Page 25: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Knowing what the behavior is can tell you:◦ if you can handle requirements

◦ how to scale if needed

◦ estimate if performance can be met within budget

◦ if you need to adapt your cloud (i.e. improve IO/network, CPU)

So yes: it still makes sense to do performance testing

Page 26: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Batch process tested to be run from multiple servers Process needed to be faster Risk: 'on-line' processes on server should not be impacted

Finding: 3 servers, three times as fast. But no queuing center found???

Deep diving in CPU monitoring showed the queuing center: Process was pausing/waiting after each cycle

Conclusion: → on-line processes not impacted as there was sufficient CPU time for other processes

Page 27: Albert Witteveen - With Cloud Computing Who Needs Performance Testing

Stress point found

Unclear where queuing center was

Cause: JAVA memory management can be deceiving on OS level.

Rule that the queuing center needed to be found made us find out. The absence of a queuing center makes you look further

Page 28: Albert Witteveen - With Cloud Computing Who Needs Performance Testing