Een belangrijk kenmerk van DevOps-teams, is dat alles wat wordt opgeleverd een teamverantwoordelijkheid is. In de praktijk betekent dit echter ook dat specialisten binnen het team verdwijnen. Ontwikkelaars krijgen verantwoordelijkheden zoals het testen van de performance, erbij. Je kunt je afvragen in hoeverre dit wenselijk is, want performance testing is toch echt wel een vak apart.
Het feit dat ontwikkelaars steeds meer aandacht krijgen voor performance is positief. Maar performance testing volledig overlaten aan de teams gaat vaak ook ten koste van de kwaliteit van het eindproduct. Performance wordt een vinkje dat gezet moet worden, in plaats van dat het de serieuze aandacht krijgt van specialisten. Bovendien loop je het risico dat er geen ketentest meer plaatsvindt waardoor het functioneren van de toepassing in zijn geheel niet wordt geëvalueerd. Dit is echter wel noodzakelijk om te komen tot een goede gebruikerservaring.
Om te benadrukken waarom performance testing (van de complete toepassing) echt een vak apart is en er niet zomaar naast kan worden gedaan, heb ik de belangrijkste punten op een rij gezet waar professionele performance testers het verschil maken.
- Testen worden uitgevoerd met de juiste scripts
Om een applicatie te testen start je met het ontwikkelen van een testscript. Om tot een robuust script te komen heb je een professionele test-tool nodig. Ook wordt voor dit script rekening gehouden met de gehele gebruikersflow. Je test dus niet slechts één pad van een applicatie. Een dedicated performance tester doet diepgravend onderzoek naar wat een gebruiker daadwerkelijk in productie zal doen. Zaken waar ontwikkelaars doorgaans geen tijd voor hebben. Daardoor worden alleen de standaardfunctionaliteit getest en wordt er niet gefocussed op een representatieve gebruikersflow in productie
Ook moet je goed in kaart hebben wat realistische verhoudingen zijn tussen de verschillende scripts. Wat vindt er daadwerkelijk plaats in productie? Wat gebeurt er met een omgeving als deze live gaat? Hoe klikken bezoekers op je site? Het gaat erom vanuit het perspectief van de klant te denken en niet vanuit het systeem. Dit is echter wel wat een ontwikkelaar vaak doet.
- Er worden slimme ramp ups opgezet
Als je een performance test uitvoert op een applicatie luistert het heel nauw hoe je de ramp up inricht. Een drukbezocht platform als NU.nl heeft niet voortdurend miljoenen gelijktijdige bezoekers. Er zijn natuurlijk wel pieken in het bezoek, maar meestal gaat het om golfbewegingen. Als je een dergelijk platform gaat testen moet je heel goed bedenken hoeveel gebruikers je actief zet op een omgeving. Moeten dit er bijvoorbeeld 10 of 100 per seconde zijn? Dit is per platform anders en luistert heel erg nauw als je een reëel beeld wil krijgen van de performance. Een ander goed voorbeeld is als je vanaf een bepaalde tijd concertkaarten kunt kopen op een platform. Dan is de ramp up weer heel anders, omdat je hier met een hele duidelijke piek te maken hebt. Een specialist weet dit en gebruikt per test een andere strategie.
- Er is een professionele testinfrastructuur
Om een goede performance test uit te voeren zijn veel publieke IP-adressen, dedicated hardware en voldoende bandbreedte nodig. Ontwikkelaars genereren de load vaak vanaf één werkstation of virtuele machine. Hiermee creëer je geen realistische situatie en kan de load generator de bottleneck worden van de performance test. In productie komt het verkeer immers vanaf verschillende systemen. Professionele performance testers gebruiken een gestandaardiseerde testinfrastructuur waarmee een reële situatie kan worden nagebootst.
- Bottlenecks worden snel ontdekt en opgelost
Als je je dagelijks bezighoudt met performance testing zie je heel snel patronen in onder andere responstijden en errors. Daardoor ben je veel efficiënter als het gaat om het vaststellen van de bottlenecks en het oplossen daarvan. Als je deze ervaring niet hebt kost het veel tijd om te ontdekken waar de fouten zitten waarmee het project aanzienlijk kan worden vertraagd.
- De performance test verloopt efficiënter en is onafhankelijk
Als je (externe) specialisten inzet voor een performance test, kun je doorgaans heel snel schakelen en efficiënter werken. Testen zit bij hen immers in het DNA. Daardoor is de test ook sneller opgezet en ben je ervan verzekerd dat de beste tools en infrastructuur worden gebruikt. Bovendien bespaar je uiteindelijk tijd en heb je een onafhankelijk en objectief oordeel op de performance van je toepassing.
Bovenstaande zaken maken dat het verstandig is om los van de performance testen die uitgevoerd worden door het DevOps-team zelf, externe specialisten in te schakelen. Daarmee ben je verzekerd van de vereiste expertise, infrastructuur en ervaring zodat de performance van de software die wordt opgeleverd voldoet aan de hoogste kwaliteitsstandaarden.
Raymond Steenvoorden