Op weg naar een betrouwbare cloud
De cloud wordt steeds belangrijker in ons dagelijks leven. Het is dus cruciaal dat ze goed werken en betrouwbaar zijn. Alex Uta, universitair docent bij het LIACS, kreeg een Veni om de reproduceerbaarheid van experimenten in de cloud te onderzoeken.
Het digitale leven in de cloud
‘Bijna alles wat je tegenwoordig met een computer doet, raakt een cloud,’ legt Uta uit. ‘Het versturen van een e-mail, het houden van videovergaderingen, het gebruik van sociale media, het overmaken van geld via je bankrekening; al deze handelingen gaan via een cloud of zijn op de een of andere manier verbonden met het gebruik van een cloud. Veel van deze dingen zijn tijdgevoelig. Je wilt dat deze operaties betrouwbaar en consistent zijn, en elke keer dat je ze uitvoert evenveel tijd in beslag nemen. Als je bijvoorbeeld geld overmaakt, wil je dat het zo snel mogelijk gebeurt, en niet dat het vandaag vijf seconden duurt en morgen twee uur. Maar de clouds werken op dit moment niet zo.’
Ontwerp van clouds
Het probleem wordt voor een groot deel veroorzaakt door de manier waarop clouds zijn ontworpen. Een cloud is een stuk virtuele hardware. Dit betekent dat deze lijkt op een personal computer: het geeft gebruikers de illusie dat slechts één persoon op een bepaald moment gebruik maakt van een stuk hardware. In de cloud is dat niet het geval. Eigenlijk zijn er meerdere gebruikers die naast elkaar werken op hetzelfde stuk hardware. Die gebruikers concurreren met elkaar en proberen allemaal een proces op hetzelfde moment uit te voeren. En terwijl ze dat doen, beïnvloeden ze de prestaties van elkaars processen, wat problemen kan veroorzaken in de tijd die het kost om een proces uit te voeren. Uta: ‘Als er een vertraging optreedt in het gesprek dat je met een andere persoon in Teams voert, zal dat niet veel problemen opleveren. Als je echter 200 studenten online lesgeeft en er zijn herhaaldelijk onnauwkeurigheden, zal dat een probleem zijn, omdat de studenten dan delen van wat je zegt zullen missen. Je wilt dus dat al die handelingen consistent zijn in de tijd die ze nodig hebben om uitgevoerd te worden, om zo een betrouwbaar systeem te hebben. In mijn project wil ik manieren bedenken om de tijd die nodig is om bepaalde bewerkingen te verwerken te kwantificeren, zodat we bepaalde garanties kunnen bieden.’
Testen en experimenteren
Het ontwerp van de cloud is één probleem, maar het ontwikkelen en testen van applicaties speelt een even belangrijke rol. Er is geen standaard manier om een experiment uit te voeren of erover te rapporteren. ‘Ontwikkelaars en onderzoekers beweren dat iets binnen een bepaald tijdsinterval werkt, maar dat is niet de zekerheid die we nodig hebben,’ benadrukt Uta. ‘Op dit moment geven we geen goede statistische garanties dat iets echt werkt binnen een bepaalde tijd. Wat we nodig hebben is een duidelijke beschrijving van het experiment en de voorwaarden ervan, en een goed kader voor sterke statistische garanties voor de prestatieresultaten. Alleen dan is iedereen in staat om hetzelfde experiment onder dezelfde voorwaarden uit te voeren, wat natuurlijk betekent dat de resultaten dichter bij het doel van reproduceerbaarheid liggen.’
Mock-ups van de werkelijkheid
De experimenten waar Uta naar verwijst zijn de experimenten die programmeurs doen om ervoor te zorgen dat een systeem op de juiste manier functioneert. Deze experimenten zijn eigenlijk kleine mock-ups van de werkelijkheid. Voor een banksysteem is het bijvoorbeeld nodig om het proces om geld over te maken te testen. Om er zeker van te zijn dat het resultaat van de test betrouwbaar is, moeten programmeurs meerdere keren een experiment uitvoeren. ‘Het is dus cruciaal dat het experiment reproduceerbaar is, zodat het proces in de testfase niet afwijkt van het proces als duizenden gebruikers het systeem in de praktijk gebruiken,’ zegt Uta.
Gevaarlijke situaties
Het belang van het voorkomen van die doorlooptijdverschillen en het hebben van een betrouwbare cloud mag niet worden onderschat. Niet alleen onze e-mails, videovergaderingen en documentopslag gebeuren in de cloud, maar ook (delen van) de autonavigatie of wellicht de besturing van verkeerslichten. Als deze handelingen niet consistent zijn in de tijd die nodig is om ze te verwerken, maar de ene keer duurt een seconde en de andere keer tien seconden nodig hebben, zullen mensen de afslag missen of, in het voorbeeld van het verkeerslicht, zelfs botsen met een andere auto. ‘In de toekomst zal dit zelfs nog belangrijker worden. Zelfrijdende auto's zullen met clouds communiceren, maar als de variabiliteit in de cloud te groot is, kunnen deze auto's te laat remmen of niet op tijd een update krijgen, waardoor gevaarlijke situaties ontstaan,’ legt Uta uit.
Verandering van methodes
Uta ziet de grootste uitdaging van zijn onderzoek niet in het onderzoek op zich, maar in het overtuigen van mensen om de reproduceerbare standaard te gebruiken die hij bedenkt. Op dit moment hebben mensen deze standaarden niet en het zal een uitdaging zijn om hen te overtuigen om een systematische manier van het uitvoeren van prestatie-experimenten te gebruiken. Maar Uta heeft er alle vertrouwen in dat veranderingen mogelijk zijn: ‘Ik hoop dat over vier of vijf jaar, wanneer ik dit project heb afgerond, de state-of-the-art in het uitvoeren van experimenten met een flink aantal zal zijn toegenomen.’
Tekst: Chris Flinterman