ORDINA BLOGT

Performancetesten van de 'Cloud'

Virtuele omgevingen of “Software in the Cloud” komen steeds vaker voor. Dit geeft een nieuwe reeks uitdagingen wanneer het gaat om performance testen. Hoe hier mee om te gaan?

  • Kaspar van Dam
  • 3 februari 2014

Wat is een virtuele omgeving?

Laten wij allereerst helder maken wat nu in feite een ‘virtuele omgeving’ is. Allereerst is het onmogelijk hier een eenduidig antwoord op te geven. Maar kort door de bocht genomen kan gezegd worden dat het gaat om een omgeving met gevirtualiseerde hardware. Er is niet langer één bepaalde machine waar één bepaald stuk software op draait. Er is een verzameling machines waar software naar behoefte gebruik van kan maken. Dit maakt dat hardware veel effectiever- en dus goedkoper – ingezet kan worden omdat een specifiek stuk software enkel gebruik maakt van de hardware die zij daadwerkelijk nodig heeft. De resterende hardware is daarmee beschikbaar voor andere partijen.

Performance van de virtuele omgeving

In theorie betekent dit dat zo lang er in totaliteit voldoende hardware beschikbaar is én niet te veel software gelijktijdig resources nodig heeft een organisatie met relatief weinig servers toch veel service kan bieden met voldoende performance. Dit maakt het mogelijk de performance van applicaties te optimaliseren zonder hiervoor kapitalen aan ijzerwerk neer te hoeven tellen. Een veelbelovende ontwikkeling die zich de laatste jaren al zeer veelvuldig bewezen heeft. Er is echter een groot nadeel: de voorspelbaarheid van het geheel heeft er onder te lijden. Er kan niet langer gezegd worden dat wanneer een systeem maar een halve belasting kent de hardware ook half belast wordt en dus de performance (min of meer) verdubbelt.  Ook blijken dergelijke systemen gevoelig voor schommelingen in belasting. Neemt de drukte op de systemen toe dan zullen responstijden eerst omhoog schieten en wordt daarna direct extra hardware toegekend waardoor responstijden weer lager worden. Gevolg is een omgeving die qua responstijden zeer instabiel is. Zo lang deze responstijden maar aan de requirements blijven voldoen is deze onvoorspelbaarheid geen enkel probleem. Echter: het geeft wel een enorme uitdaging voor de tester! Want hoe bepaal je nu de performance van het systeem? En hoe kun je vergelijkingen maken qua performance (bv. na toevoeging van extra functionaliteit)?

Performance testen van de virtuele omgeving

Wanneer performance testen uitgevoerd worden op een omgeving bestaande uit virtuele hardware (ofwel dynamisch toegekende hardware) is het een gegeven dat de testen continu verschillende resultaten laten zien. Een exact gelijke performance test op exact gelijke software kan zomaar geheel andere resultaten geven. Dit maakt het bijzonder lastig om op voorhand gedegen uitspraken te doen over de performance van de opgeleverde software.

Er zal daarom meer focus moeten komen op monitoring, en minder op enkel de responstijden van de applicatie. Deze monitoring houdt niet op na het doen van de performancetesten maar het is ook zeer zeker raadzaam ook op productie performance metingen te blijven doen.
Voor vergelijkingen van testen is het van belang testen zo kort mogelijk op elkaar uit te voeren omdat dan de kans het kleinst is dat de toegekende hardware gewijzigd is. Echter geeft ook dit geen enkele garanties.

Misschien de meest belangrijke manier om grip te krijgen op de performance van software in the cloud is daarom door van meet af aan focus te leggen op performance. Nog vóór ontwikkeling en design van de software moet men al bezig zijn met de performance van de te bouwen functionaliteit. Er dient kritisch nagedacht te worden over mogelijke performance bottlenecks en hoe voorkomen kan worden dat deze ontstaan. In feite begint performance testen daarom al voordat er daadwerkelijk aan het (technische) ontwerp begonnen wordt en kan er in feite gesproken worden van “Performance Test Driven Development”.

Het is erg boeiend te zien welke ontwikkelingen er op het vlak van performance testen van software in the cloud richting de toekomst te zien zullen zijn en welke nieuwe methodieken en vooral ook tools hierop in zullen spelen. Dit is daarom ook zeker een onderwerp waar ik op een later moment nog eens meer aandacht aan zal gaan besteden…

Over de auteur:

Kaspar van Dam

Kaspar van Dam is test(automatisering) consultant bij Improve QS en adviseert collega's en klanten over vraagstukken rondom de thema's Agile Testing, Behavior Driven Development (BDD), testautomatisering, performance testen en meer.