Dataopslag in de cloud, voor welk type kies jij?
De keuze voor het type dataopslag is een fundamentele ontwerpkeuze.
De mogelijkheden voor softwareontwikkeling zijn de afgelopen jaren sterk veranderd. Of eigenlijk is het beter te zeggen dat er heel veel opties bij zijn gekomen. Met de definitieve doorbraak en continue uitbreiding van de cloud is het aanbod van onder andere rekencapaciteit en dataopslag groter dan ooit tevoren. En waar voor het kiezen van de juiste vorm van rekencapaciteit in bijvoorbeeld Microsoft Azure zelfs een beslisboom beschikbaar is, is het optimale type dataopslag minder eenvoudig vast te stellen. Dit artikel probeert achtergrond te geven in hoe dit komt en richting te geven voor het maken van die keuze.
“Die goede oude tijd”
Voorheen was de keuze voor de opslag van data over het algemeen simpel: gebruik een relationele database. De reden hiervoor was even praktisch als beperkend, namelijk dat relationele databases vaak (als enige) voorhanden waren, zowel wat betreft de software als qua kennis van medewerkers.*
Omdat de database meestal op eigen hardware draaide, was de eerste oplossing voor problemen met de performance vaak snellere hardware. Het cloud model van relationele databases is anders. Performance problemen los je niet eenvoudigweg op met zwaardere hardware. Natuurlijk kun je opschalen naar een snellere variant, maar daarmee verhoog je ook de (terugkerende!) kosten.
Verschillende typen dataopslag
Relationele databases zijn niet ‘uit’. Sterker nog, ze zijn nog steeds immens populair. Maar dan wel voor de juiste data. Ervaring helpt bij het bepalen wat ‘de juiste data’ daadwerkelijk is. Daarnaast kun je onder andere gebruik maken van documentatie die hier inzicht in geeft.
Naast relationele databases zijn onder andere de volgende categorieën dataopslag te onderkennen:
- Document database (NoSQL)
- Key/value opslag
- Graph database
- Search engine database
Moderne business software verwerkt steeds meer data, zowel van interne als van externe bronnen. Dit zorgt voor diversiteit in de karakteristieken van de data en de manier waarop deze verwerkt moet worden. Hierdoor is het vaak beter om verschillende typen dataopslag te gebruiken, afhankelijk van de vorm van en behoefte aan elke set data. Dergelijke systemen, die verschillende typen dataopslag gebruiken, maken gebruik van zogeheten polyglot persistence.
Consequenties
Betekent dit dat je terug moet naar de tekentafel? Dat de hele datastructuur van je applicatie herzien moet worden? Gelukkig is dat in veel gevallen niet nodig; een kritische blik kan al veel inzicht geven. Door binnen je huidige datastructuur op zoek te gaan naar data die beter past in een ander type dataopslag kun je de datastructuur ontleden en optimaliseren.
Conclusie
De keuze voor het type dataopslag is een fundamentele ontwerpkeuze. Hierbij is het belangrijk te beginnen met het bepalen welke categorie dataopslag het beste past. Zodra je deze keuze gemaakt hebt ga je binnen die categorie op zoek naar het juiste type dataopslag. Houd hierbij rekening met factoren als kosten, beschikbare features en het gemak waarmee het beheerd kan worden.
Toch niet optimaal gekozen? In de cloud hoef je geen hardware of licentie aan te schaffen, dus betekent een aanpassing niet dat je direct met extra kosten wordt geconfronteerd.
Succes!
* Disclaimer:
Natuurlijk was er binnen bepaalde bedrijven meer beschikbaar dan enkel een relationele database. En er waren ook zeker medewerkers met kennis van meerdere systemen. Maar voor de overgrote meerderheid gold; “Data? Die hoort in de database.” En voor een groot gedeelte geldt dit nog steeds.
Dataopslag in de cloud
Dataopslag in de cloud