Servicevirtualisatie
Je hebt die kreet vast wel is gehoord, Servicevirtualisatie, wat houdt dat eigenlijk in. Servicevirtualizatie is het proces waarbij de functionaliteit van echte diensten in een ontwikkel- of testomgeving wordt gesimuleerd. Het wordt vaak gebruikt in softwareontwikkeling en -testing om de afhankelijkheden van systemen te isoleren en te controleren.
Voordelen van Servicevirtualisatie
1. Snellere softwareontwikkeling en testing
In veel ontwikkelingsomgevingen zijn diensten vaak niet beschikbaar of zijn ze beperkt beschikbaar vanwege kosten, toegangsbeperkingen of andere factoren. Door het gebruik van servicevirtualisatie kunnen ontwikkelaars en testers deze diensten simuleren en zo hun werk sneller en efficiënter voortzetten.
2. Kostenbesparing
Het opzetten en onderhouden van echte testomgevingen kan duur zijn, vooral als ze meerdere externe diensten of resources nodig hebben. Virtualisatie kan deze kosten verminderen.
3. Verhoogde testdekking
Testers kunnen verschillende scenario’s simuleren die moeilijk te reproduceren zijn in een echte omgeving, zoals systeemuitval, trage responstijden of ongebruikelijke gegevenswaarden.
4. Parallelle ontwikkeling
Teams kunnen tegelijkertijd aan verschillende componenten van een applicatie werken zonder te wachten tot elke dienst volledig is ontwikkeld.
5. Kwaliteitsverbetering
Doordat er grondiger en in diverse scenario’s getest kan worden, kan de kwaliteit van de software verbeteren en kunnen bugs en andere problemen vroegtijdig worden ontdekt.
6. Flexibiliteit
Virtualisatie biedt teams de mogelijkheid om snel te reageren op veranderingen, nieuwe scenario’s te simuleren of verschillende versies van een dienst te testen.
7. Onafhankelijkheid
Ontwikkelaars en testers zijn niet langer afhankelijk van externe systemen, diensten of teams om hun werk voort te zetten. Dit kan bottlenecks in het ontwikkelingsproces verminderen.
Vooral het kostenaspect wil ik er in highlighten, want ondanks dat de initiele kosten hoog kunnen zijn bij opstart weegt het niet op tegenover de besparingen!
Kostenaspecten van Servicevirtualisatie
Het integreren van servicevirtualisatie in het softwareontwikkelingsproces heeft verschillende kostenaspecten waarmee rekening moet worden gehouden. Deze kunnen worden onderverdeeld in directe kosten en indirecte, of potentiële, besparingen:
Directe Kosten:
1. Aanschaf/licentiekosten:
Professionele servicevirtualisatietools komen vaak met licentiekosten. Dit kan een eenmalige aankoop zijn of een terugkerend abonnementsmodel. Sommige bedrijven bieden ook tiered pricing aan, waarbij je betaalt naar gelang de functionaliteiten die je nodig hebt.
2. Onderhoudskosten:
Betaalde oplossingen kunnen ook jaarlijkse onderhouds- of ondersteuningskosten met zich meebrengen.
3. Trainingskosten:
Om het meeste uit de tool te halen, kan het nodig zijn om teamleden te trainen. Dit kan zowel tijd als geld kosten, vooral als externe trainers of cursussen nodig zijn.
4. Infrastructuurkosten:
Hoewel virtualisatie de behoefte aan fysieke hardware vaak vermindert, zijn er toch enige initiële kosten voor het opzetten en onderhouden van de virtualisatieomgeving.
5. Integratiekosten:
Afhankelijk van de bestaande technologiestack van een bedrijf, kunnen er kosten zijn voor het integreren van de servicevirtualisatietool met andere systemen.
Potentiële Besparingen:
1. Verlaagde infrastructuurkosten:
Door diensten te virtualiseren, kunnen teams de behoefte aan dure gespecialiseerde testomgevingen verminderen.
2. Verhoogde productiviteit:
Teams hoeven niet te wachten op de beschikbaarheid van afhankelijke systemen, wat leidt tot snellere ontwikkelings- en testcycli.
3. Verminderde fouten:
Een betere testdekking en het vermogen om scenario’s te simuleren die moeilijk te reproduceren zijn in een live omgeving, kan leiden tot een vermindering van bugs en andere fouten, wat op de lange termijn kostenbesparingen oplevert.
4. Parallelle ontwikkeling:
Doordat verschillende teams tegelijkertijd kunnen werken zonder op elkaar te wachten, kunnen projecten sneller worden voltooid, wat leidt tot een snellere time-to-market.
Kortom, servicevirtualizatie kan, als het met de correcte ondersteuning wordt ingericht, en er ook een PACT (ga ik in mijn andere blog uitleggen) is overeengekomen tussen afnemers en providers, een super coole hulpmiddel zijn om software kwaliteit te verhogen en productie van versnellen, waarbij veel kosten kunnen worden bespaard. Want een testomgeving bijhouden met leveranciers en het testen met real live apis kan indirect expotentiele kosten geven, zonder dat men dat vanuit een project/programma beseft. Alles valt of staat met het succesvol inrichten hiervan de afspraken die je maakt met de partijen onderling, die de waarde ervan ook moeten inzien!
Service Virtualization Tools
Om het verhaal volledig te maken heb ik hier onder wat tools opgesomd die dit ondersteunen!
1. Smartbear CA Service Virtualization (voorheen LISA)
- Afkomstig van CA Technologies, biedt dit product uitgebreide servicevirtualisatiefunctionaliteit. Het helpt teams om parallel te werken door simulaties van niet-beschikbare systemen te bieden.
2. IBM Rational Test Virtualization Server
- Beschrijving: Een onderdeel van IBM’s testautomatiseringsoplossing, deze tool biedt mogelijkheden voor servicevirtualisatie om geïntegreerde testomgevingen te ondersteunen.
3. Parasoft Virtualize
- Parasoft is een bekend bedrijf in de wereld van testautomatisering. Hun Virtualize-product biedt servicevirtualisatie die helpt bij het creëren, beheren en inzetten van gesimuleerde testomgevingen.
4. Micro Focus (voorheen HP) Service Virtualization
- Deze tool helpt bij het simuleren van diensten zodat teams niet geblokkeerd worden door onbeschikbare systemen tijdens het ontwikkelings- en testproces.
5. Tricentis Tosca
- Terwijl Tricentis Tosca voornamelijk bekend is als een testautomatiseringsoplossing, biedt het ook mogelijkheden voor servicevirtualisatie.
6. WireMock
- Een open-source tool voor het stubben en simuleren van HTTP(S)-diensten. Het is lichtgewicht en flexibel en kan zowel standalone als in Java projecten worden gebruikt.
7. Mountebank
- Nog een open-source oplossing, deze tool biedt multi-protocol servicevirtualisatie met een breed scala aan opties en configuraties.
8. Hoverfly
- Een lichtgewicht, open-source servicevirtualisatietool die zowel stubbing als spying op HTTP-verzoeken en -reacties mogelijk maakt.
Vanuit mijn verleden ben ik bekend met 5 tools van deze lijst, Smartbear, Parasoft Virtualize, Tricentis Tosca,Rational Integration Test(Greenhat) en Wiremock. Als ik klanten zou adviseren zou ik altijd een intake doen naar hoe hun software development processen verlopen en wat het doel is, welke programmeer talen er gebruikt worden, welke testools er beschikbaar zijn, en hoe makkelijk ik verwacht hoe het in hun bestaande processen geintegreerd kan worden, rekening houdend met de security aspecten(PAAS,SAAS)
Conclusie:
Servicevirtualisatie is een krachtig hulpmiddel dat softwareteams helpt efficiënter en effectiever te werken, wat leidt tot snellere releases van hogere kwaliteit. Het stelt teams in staat om de uitdagingen van moderne, gedistribueerde en complexe systemen aan te gaan.
Wanneer je de waarde van servicevirtualisatie overweegt, is het belangrijk om zowel de directe kosten als de potentiële besparingen in overweging te nemen. Voor veel bedrijven wegen de voordelen van versnelde ontwikkeling, verbeterde testkwaliteit en verminderde afhankelijkheden op tegen de kosten van het implementeren en onderhouden van servicevirtualisatie.
Follow me on LinkedIn: www.linkedin.com/comm/mynetwork/discovery-see-all?usecase=PEOPLE_FOLLOWS&followMember=ralphvanderhorst