Een van de dingen die mij vaak wordt gevraagd is of een bepaalde applicatie naar de cloud geport kan worden. "Dat hangt er vanaf", is mijn meest voorkomende antwoord.
Zeker de meest moderne applicaties kunnen vrij gemakkelijk overgezet worden. Oudere, legacy applicaties met sterke affiniteit met bepaalde hardware platforms en hechte integratie behoren tot de categorie programmatuur die als laatste in aanmerking komt voor een cloudomgeving.
Ik denk dat er een volgende generatie applicaties komt die gebruikmaakt van de nieuwe mogelijkheden van de cloud. Deze veranderingen zie ik momenteel plaatsvinden:
Programmeurs raken steeds beter bekend met relationele database management systemen (RDMS). We passen gestructureerde vraagtaal (SQL) toe in code, gebruiken relationele databases voor veel verschillende doeleinden van opslag en zijn gewend geraakt aan de traditionele methoden voor het benaderen van data. De prijs die we hiervoor betalen uit zich in ondermaats presterende, niet-schaalbare applicaties, ondanks dat de aanwezigheid van SQL wel een bepaalde mate van datamobiliteit met zich meebrengt. Als je kijkt naar projecten als Apache Cassandra, Volt, Cloud MapReduce en Hadoop, dan merk je dat een cloud data-architectuur de juiste tool is om genoemde problemen te verhelpen. Zullen relationele databases verdwijnen? Nee, maar ik denk dat de meeste applicaties gebruik gaan maken van verschillende methoden van databenadering in de cloud en op verschillende architecturen gaan draaien.
Ik verwacht dat applicaties zullen veranderen van traditionele fout-resistente programma’s naar fout-verwachtende programma’s. Met de cloud is het voor ontwikkelaars geen doen om rekening te houden met elk mogelijke fout en ervoor te zorgen dat de cloud-app op een juiste manier met elk mogelijke fout omspringt. Ik denk dat we applicaties gaan ontwikkelen die meer fouten zullen en kunnen toestaan, waardoor ze ook op verschillende hardwareplatforms kunnen draaien.
Een van de meest opwindende mogelijkheden is dat je binnen cloud applicaties kunt schrijven die via code service calls van het cloudplatform kunnen aanroepen. We kennen de loadbalancers die we nu gebruiken, maar ik verwacht dat er meer complexe business-gerelateerde tools zullen komen. Logt er een belangrijke klant in? Verplaats de bewerkingen die zij doen naar een aantal licht belaste services. We zijn pas net begonnen met het modelleren van deze hogere vorm van serviceoptimalisatie, maar de mogelijkheid om cloud-diensten middels code aan te spreken, brengt interessante mogelijkheden met zich mee.
Je krijgt bij het ontwikkelen van een applicatie maar een keer de kans om multitenancy (waarbij de applicatie tegelijk in meerdere hardwareomgevingen draait) toe te passen. Doe dit gelijk in het begin van het ontwikkelingsproces. Het is nog onbekend terrein, weinig programmeurs hebben de juiste skills, maar wat je ervoor terugkrijgt is fantastisch, helemaal voor die ondernemingen die hun applicaties op een bepaald moment willen ‘SaaS-ificeren’.
Joe Tobolski schrijft bijdragen voor Computerworlduk.com. In zijn dagelijks werk is hij Hoofd Infrastructuur bij Accenture Technology Labs. Zie jij nog andere veranderingen op het gebied van applicatieontwikkeling ontstaan door de komst van cloud? Laat het ons weten in de commentaren.