Afstuderen

Goedendag,

Het afstuderen, de belangrijkste opdracht van je studie, het meest intensieve, slopende en stressvol project van je schoolcarrière. 5 Maanden om een specifieke opdracht uit te voeren en aan te tonen dat jij een HBO diploma verdiend, dat jij kan functioneren in “het echte leven”. Zo begon onze coördinator zijn verhaaltje over het afstuderen. Maar zie eerst maar een bedrijf te vinden dat een opdracht heeft die je interessant lijkt, die voldoet aan de eisen die gesteld worden aan een afstudeeropdracht en die jou zou willen!

Gelukkig zit ik in de ICT en heb ik al regelmatig een vriend of vriendin uit een andere branche jaloers kunnen maken over het relatieve gemak waarmee ik een opdracht heb kunnen scoren. Mijn stage had ik geregeld (of eigenlijk laten regelen) via Studentenbureau en ik had dit bedrijf wederom ingeschakeld om een afstudeerstage voor mij te vinden. Echter een paar gesprekken later zonder resultaten waren voor mij voldoende reden om rond te kijken op de afstudeermarkt van de HRO. Hier kwam ik een jongedame tegen die zo lief tegen mij deed glimlachen dat ik wel naar haar verhaal moest luisteren. Wonder boven wonder had dit bedrijf een ontzettend interessante opdracht en na twee interviews hadden wij een overeenkomst, ik ging bij E-ID internet strategies een opdracht uitvoeren!

De opdracht bestond uit drie delen:

  1. Onderzoek doen naar NoSQL databases, de voor- en nadelen en het (grote) verschil met de tot noch toe traditionele relationele databases.
  2. Onderzoek naar clouds, de voor- en nadelen op zich en in relatie tot het lokaal hosten of bij een speciale hostingprovider met speciale focus op databases.
  3. Het maken van een Proof of Concept (PoC) waarin het verschil tussen een willekeurige SQL en NoSQL database en cloud en lokale oplossing getest kan worden met behulp van verschillende veel voorkomende scenario’s.

Dit is erg recht toe recht aan en ik ben vol goede moed begonnen aan mijn activiteiten. Na de standaard administratieve rompslomp rond een project (mandaat, plan van aanpak, planning etc..) werden de eerste twee weken besteed aan onderzoek naar NoSQL en de twee weken daarna waren voor de cloud. Op basis van dit onderzoek hebben mijn projectleider en ik besloten om voor het PoC gebruik te maken van MongoDB als NoSQL database, SQL Server voor de relationele database en Windows Azure als de cloud oplossing. Waarbij SQL Azure werd gebruikt als relationele database in de cloud.

En toen mocht het leukste beginnen, ik mocht een applicatie maken om te spelen met een nieuwe database. Deze applicatie moest exact kunnen bijhouden hoe vaak een scenario uitgevoerd werd (CRUD) en hoelang dit duurde. Ik had gelukkig de mazzel dat mijn projectleider zeer recent een cache-test applicatie had geschreven die in de basis hetzelfde functioneerde als mijn applicatie moest doen. Ik heb deze gekregen, uit elkaar gesloopt en opnieuw in elkaar gezet voor mijn doeleinden. Het resultaat was een overzichtelijke interface (SQL vs. NoSQL) waarin ik kon aangeven hoeveel threads er gebruikt moest worden (één thread kan niet genoeg druk op de database uitoefenen om hem te laten zweten) en hoelang hij moest wachten totdat hij weer moest proberen (door een delay te verwerken kan je exact bepalen hoeveel CRUD operaties er per seconde moeten worden geprobeerd). Door een scenario zes keer te draaien, drie keer met 1000 pogingen per seconde en drie keer met 10.000 pogingen per seconde kon redelijk betrouwbaar gemeten worden welke database beter is in een bepaald scenario. Zo kon ik zien dat MongoDB vijf tot tien keer sneller was in het toevoegen van een record dan SQL Server, maar ik kon ook zien dat SQL Server twee tot drie keer sneller was in het opvragen van gegevens uit meerdere tabellen dan MongoDB. Ook kon ik zien dat MongoDB wel 7.500 records per seconde kan toevoegen en dat dit gemiddeld tussen een en twee milliseconden duurt.

Dit werd allemaal eerst lokaal ontwikkeld en daarna heb ik me geconcentreerd om dezelfde applicatie werkend te maken op de Windows Azure cloud. Hoewel dit met SQL Server redelijk eenvoudig was (applicatie omschrijven naar een ASP pagina en simpele connectie leggen met een database) was het nog een gestoei om MongoDB als service draaiend te krijgen in de cloud. Gelukkig heeft Google mij geholpen bij het vinden van de juiste informatie en is dit na wat vertraging uiteindelijk toch nog gelukt.

De begeleiding vanuit E-ID was gevarieerd, hoewel er best wat mensen enthousiast waren over mijn project (wat natuurlijk heel leuk overkomt op een student) was mijn eigen begeleider nogal aan de drukke kant en bleek achteraf een tikje beperkt communicatief. Om de een of andere reden werd het op mij afgerekend dat ik me aan de scope van de opdracht hield en niet harder werkte zodat ik nog een extra database of twee kon testen in plaats van de ene die in de opdracht stond. Ook vond ik het bijzonder dat mijn verzoeken om een functioneringsgesprek of werden uitgesteld of afgewimpeld om achteraf te horen dat ik het beter kon doen, dat ik meer moest communiceren.