Cloud opslag, wat zijn de mogelijkheden?
2 mei 2024, Daphne van Cuylenburg – Oude Vrielink en Thijs Kuipers
Cloud opslag, wat zijn de mogelijkheden?
Als Azure Cloud-experts bij OneDNA helpen wij andere bedrijven om het maximale uit hun Azure Cloud Platform te halen. Of het nu gaat om een migratie van on-premise naar de Cloud of het finetunen van een al bestaand platform, wij hebben de expertise in huis. Om uit te blinken in de IT-consultancymarkt, richten wij ons op het leveren van een hoogwaardig eindproduct en een prettige samenwerking.
Een migratie naar de Cloud is geen eenvoudige taak. Het vereist niet alleen diepgaande technische kennis, maar ook inzicht in de specifieke behoeften van de klant. Niet iedere klant is immers een doorgewinterde expert op het gebied van Azure Cloud, en niet elke expert spreekt dezelfde ‘taal’. Daarom is het cruciaal om de juiste vragen te stellen, zodat we samen met de klant tot een oplossing komen die aan alle verwachtingen voldoet.
Voordat we daadwerkelijk de handen uit de mouwen steken, is het essentieel om de wensen van de klant in kaart te brengen. Allereerst is het van belang om erachter te komen of overstappen naar de Cloud wel de beste keuze is. Als dat het geval is, gaan we samen met de klant op zoek naar een geschikte migratiestrategie. Wil de klant een zogeheten “lift & shift”, waarbij al bestaande applicaties worden verplaatst naar de Cloud? Of moet er een nieuw systeem van de grond af aan worden opgebouwd? Of juist iets daartussenin?
In deze blog reeks duiken we dieper in op de migratie strategie, in het bijzonder op de rol van Cloud-opslag daarin. Data staat immers aan de basis van elk bedrijf en zien we een groeiende trend naar data-gestuurd geopereerd om beslissingen te onderbouwen. Dit leidt tot een toename in het aantal IT-systemen dat door een bedrijf gebruikt wordt, wat het moeilijker maakt om het overzicht behouden over alle data en systemen. Om het overzicht te bewaren is het belangrijk om deze verschillende IT-systemen samen te brengen op één plek en alle data op één en dezelfde manier op te slaan. De juiste opslag van je data kan het verschil betekenen tussen waardevolle informatie of een chaos van gegevens.
Zoals eerder gezegd staat Cloud-opslag in deze blog centraal. We zoomen in op verschillende onderdelen, belangrijke aandachtspunten en de architectuur van Cloud-opslag. In een volgende blog duiken we dieper in de beveiligingsaspecten die hierbij komen kijken, waar je allemaal aan moet denken bij het beveiligen van je data en uiteraard ook hoe je dit kunt doen.
Verschillende vormen van data en opslag
In dit scenario gaan we een denkbeeldige klant helpen met het inrichten van zijn of haar Cloud-opslag. Als voorbeeld nemen we een klein e-commercebedrijf. Onze klant wil graag een opslag oplossing voor hun website waarop ze hun producten verkopen. Dit bedrijf wil graag de kosten zo veel mogelijk beperken. Aan de hand van gerichte vragen bepalen we welke behoeften er zijn en hoe we deze kunnen vervullen. De mogelijkheden met de Microsoft Azure-stack zijn bijna eindeloos, wat een voordeel is maar ook enorme keuzestress kan veroorzaken.
We beginnen met de basis: welke gegevens heeft de klant? Er drie verschillende categorieën gegevens te onderscheiden, namelijk gestructureerde-, ongestructureerde- en semigestructureerd gegevens. Tabel 1 hieronder geeft een overzicht van de drie verschillende categorieën. Deze categorieën hebben elk hun eigen kenmerken en hun eigen voor- en nadelen.
Gestructureerde gegevens zijn georganiseerd in een duidelijk gedefinieerde indeling, meestal in tabellen met rijen en kolommen. Dit vraagt om een relationele database. Een relationele database maakt het namelijk mogelijk om efficiënt data op te slaan en weer uit te lezen.
Ongestructureerde gegevens hebben juist geen expliciete structuur en zijn niet gemakkelijk te organiseren in een tabelvorm. Deze gegevens zijn vaak tekstueel van aard en kunnen variëren van vrije tekst in documenten, e-mails en sociale-mediaberichten tot multimedia-inhoud zoals afbeeldingen, video’s en audio-opnamen. Hiervoor raden we Azure Blob Storage of Data Lake Storage aan, aangezien deze geoptimaliseerd zijn voor de opslag en verwerking van grotere bestanden.
Als laatste zijn er semigestructureerde gegevens. Deze vallen tussen gestructureerde en ongestructureerde gegevens. Ze hebben een zekere mate van structuur, maar zijn niet zo rigide als volledig gestructureerde gegevens. Denk hierbij aan XML (eXtensible Markup Language) – en JSON (JavaScript Object Notation)-bestanden. Zowel Azure Cosmos DB als Azure Table Storage zijn veelgebruikte oplossingen voor dit soort data. Deze oplossingen bieden genoeg ruimte om verschillen binnen de databestanden effectief op te vangen, maar ook in staat zijn de structuur erin te herkennen voor verdere verwerking.
Categorie | Voorbeeld | Voorbeeld Azure Cloud-opslagmethode |
Gestructureerd | Tabellen | Relationele databases |
Semigestructureerd | Xml-bestanden, | Azure Cosmos DB, |
Ongestructureerd | E-mails, Afbeeldingen | Azure Blob Storage, |
Tabel 1: Overzicht van verschillende categorieën data.
Het is wel mogelijk om gestructureerde gegevens in een applicatie op te slaan die bedoeld is voor semi of ongestructureerde gegevens, maar niet andersom. Denk bijvoorbeeld aan het opslaan van CSV-bestanden in een Azure Blob Storage, die direct in een tabel kunnen worden ingelezen. Dit terwijl het 1 op 1 inladen van een afbeelding in een Azure Table Storage niet mogelijk is.
Met de informatie van de klant kunnen we zo uitzoeken welke opslagmogelijkheden er allemaal zijn. Voor het runnen van een website zijn ongestructureerde gegevens nodig, zoals afbeeldingen van de producten. Ook is er behoefte aan opslag van gestructureerde gegevens zoals klantgegevens, bestellinggegevens en productinformatie. Voor het opslaan van gebruikerssessies en tijdelijke gegevens is een semigestructureerde opslagmethode nodig.
Voordat we specifieke applicaties kunnen aanraden hebben we meer informatie nodig. Binnen de drie verschillende catergorieen gegevens is er een scala aan applicatie mogelijkheden. Welk systeem het meest geschikt is voor de klant hangt af van de behoeften, het budget, en de kennis van de tooling in de markt en binnen het bedrijf. De tabellen 2, 3 en 4 geven een overzicht van de diensten en programma’s die aangeboden worden door Microsoft Azure. In tabel 2 staan de gangbare relationele databases bedoeld voor de opslag van gestructureerde gegevens. Database. Uit tabel 3 kiezen we Azure Table storage. Deze optie is geschikt voor het opslaan van gebruikerssessies en tijdelijke gegevens en is laag in kosten. Als laatste kijken we naar tabel 4 voor een ongestructureerde gegevensopslag oplossing. Azure blob Storage is een geschikte keuze voor de website afbeeldingen.
Naam | Toelichting | Partij | Use case | Kosten | Opmerkingen |
Azure SQL Database, Azure SQL Managed Instance SQL Server on Azure Virtual Machines | Data opslaan in relationele databases met hoge beschikbaarheid | Microsoft Azure | Datawarehousing, Saas | Laag, Gemiddeld | Bij grote opslag erg duur en traag |
Azure Database for MariaDB | Data opslaan in relationele databases, te gebruiken met no-SQL | Microsoft Azure | Datawarehousing, Saas | Laag, Gemiddeld | Stopt op 19 sep 2025 |
Azure Database for MySQL | Lichtgewicht SQl en erg flexibel | Open source | Datawarehousing, Saas | Laag | Vooral snel in het uitlezen van data minder snel in het updaten |
Azure Database for PostgreSQL | Relationele database dat kan omgaan met zowel SQL als JSON queries. | Open source | Hoge mate van beveilig noodzakelijk en aantal queries is groot | Gemiddeld | PostgreSQL is open source, maar Microsoft biedt het ook aan als volledig managed database service |
Naam | Toelichting | Partij | Use case | Kosten | Opmerkingen |
Azure Cosmos DB | Heeft hoge beschikbaarheid door wereldwijde distributie van data | Microsoft Azure | Webapplicaties die vaak tegelijk bezocht worden | Hoog | Gebruikt no-SQL |
Azure Table Storage | Grote hoeveelheden data opslaan in tabel vorm met “low latency acces”. Maakt gebruikt van no-sql. | Microsoft Azure | Gebruikers profielen op websites | Laag | Gebruikt no-SQL |
Azure Cache for Redis | Typisch gebruikt voor het cachen van ”frequently accessed content” om de prestaties van de applicatie te verbeteren en de belasting op backend systemen te verminderen. | Redis | Voor het snel ophalen van data op webpagina’s | Hoog | Opslag van data in memory |
Azure Cosmos DB for Apache Gremlin | Gebruikt voor het opslaan en query’en van graph data. | Gremlin | Geospatial, internet of things, social media | Hoog | |
Azure Cosmos DB for MongoDB, MongoDB Atlas on Azure | Hoge beschikbaarheid | Microsoft Azure | Webapplicaties die vaak tegelijk bezocht worden | Gemiddeld, Hoog | MongoDB is opensource |
Queues | Event-driven code, queries of volledige pipeline automatisch af te trappen. | Microsoft Azure | Aftrappen van pipeline | Laag | Berichtverkeer, event-driven |
Naam | Toelichting | Partij | Use case | Kosten | Opmerkingen |
Azure Blob Storage | Opslaan van grote hoeveelheden ongestructureerde data, handig voor back-ups en archivering | Microsoft Azure | Media storage, Streaming, Back-ups | Gemiddeld, Hoog | Ook gebruikt voor archiveren |
Azure Data Lake Storage | Opslag alle data types, opslag rauwe data. Vooral in grote hoeveelheden | Microsoft Azure | Data warehousing | Gemiddeld, Hoog | Vooral grote hoeveelheden data |
Azure File systems | Opslag data om te delen, vaak binnen organisatie | Microsoft Azure | Shared file storage (share) | Gemiddeld |
Welk systeem het meest geschikt is voor de klant hangt af van de behoeften, het budget, kennis van de tooling in de markt en binnen het bedrijf. Zo kan het goedkoper zijn om te kiezen voor gloednieuwe software, maar als er weinig kennis van is binnen het bedrijf zullen de opleidingskosten fors toenemen. Onderaan de streep is het dan maar de vraag of je de klant er mee helpt om zich hieraan toe te wijden. Een handige vuistregel als het gaat om Cloud-migratie is om de Cloud-variant van de al bestaande database te pakken. Bijvoorbeeld een migratie van een on-premises MariaDB naar een Azure Database for MariaDB. Deze zullen beter op elkaar aansluiten waardoor de migratie makkelijker verloopt dan wanneer er gekozen wordt voor een compleet nieuw systeem.
Gedeelde verantwoordelijkheid
Naast een inschatting van de beschikbare kennis is het ook belangrijk om in kaart te brengen in welke mate het bedrijf controle wil en kan weggeven. Voor het ene bedrijf is het belangrijk om controle te houden over alle besturingssystemen en databases, terwijl het andere bedrijf juist zo min mogelijk zorgen wil hebben over opslag en zich wil focussen op hun kernprocessen. Microsoft Azure biedt daarom op hoofdlijnen een drietal services aan, namelijk: “Infrastructure-as-a-service” (IaaS), “Platform-as-a-service”(PaaS) en “Software-as-a-service”(SaaS). Bij IaaS heeft Microsoft de minste controle en verantwoordelijkheid en bij SaaS juist de meeste.
Wie waar controle over heeft en dus ook de verantwoordelijkheid over draagt, is te zien in figuur 1, het “gedeeldeverantwoordelijkheidsmodel”. Het is helaas niet mogelijk voor een bedrijf om van de ene op de andere dag over te stappen naar een service die meer controle en verantwoordelijkheid bij Microsoft legt. Bij het verplaatsen van de verantwoordelijkheid hoort namelijk een bepaald niveau van toewijding binnen en inrichting van het bedrijf.
Figuur 1: gedeelde verantwoordelijkheidsmodel van Microsoft (bron)
Architectuur van Cloud-opslag
Nu we de verschillende opslagtypes hebben besproken, zijn we toegekomen aan het inrichten van de Cloud-opslag: de architectuur. Vaak komt het namelijk voor dat er niet één maar meerdere (meestal Software-as-a-Service-) systemen worden gebruikt binnen een bedrijf om alle gegevens op te slaan. Denk hierbij aan een IT-systeem met daarin alle personeelsgegevens en uren, of een IT-systeem waar de magazijnvoorraad in bijgehouden wordt, of een IT-systeem waarin alle financiën worden vastgelegd. Elk IT-systeem kan weer op zijn eigen manier ingericht zijn en gegevens op een andere manier opslaan. Ook bij onze hypothetische klant is dit het geval; de website is maar een klein onderdeel van alle informatie binnen een bedrijf. Gegevens zoals product afbeeldingen hoeven enkel opgeslagen op opgehaald te worden. Uit andere gegevens kunnen we meer inzichten krijgen. Via de website krijgen we gegevens binnen over zowel verkochte producten als klantgegevens. Door de verkochte producten te combineren met bijvoorbeeld de magazijnvoorraad kan er gericht inkopen gedaan, wat voorkomt dat producten uitverkocht raken of te vroeg worden ingekocht. Voordat er inzichten uit de data gehaald kunnen worden, is het nodig om alle benodigde data te clusteren en op te schonen. Het samenbrengen van de data van alle verschillende IT-systemen/applicaties binnen een organisatie kan erg complex zijn. Het is daarom belangrijk om goed over dit proces na te denken voordat het geïmplementeerd wordt.
Over de jaren heen zijn er verschillende data-architecturen ontwikkeld en toegepast in het bedrijfsleven. Het relationele datawarehouse, ontwikkeld in de jaren 80, was één van de eerste grootschalig toegepaste architecturen. Daarna werden de data lake, “modern” data warehouse, data fabric, data mesh en data lakehouse tussen de jaren 2010 en 2020 ontwikkeld, elk met zijn eigen karakteristieken. Ondanks dat elke architectuur zijn eigen voor- en nadelen heeft zien we toch dat tegenwoordig in de meeste gevallen Data lakehouse de “go-to solution” is.
Dit is wellicht een goed moment om te benadrukken dat dit niet betekent dat vrijwel alle bedrijven momenteel met deze architectuur werken. Deze bedrijven werken nog met een architectuur die op het moment van kiezen het beste bij hun bedrijfsstructuur en –inrichting aansloot. Een architectuur verander je namelijk niet van de ene op de andere dag. Maar wanneer er op dit moment voor een nieuwe architectuur gekozen wordt, is dat in de meeste gevallen een data lakehouse. Maar natuurlijk wordt er in specifieke gevallen nog regelmatig gekozen voor één van de andere architectuurvormen.
De redenen waarom data lakehouse steeds populairder wordt, is omdat een data lakehouse eigenlijk een combinatie is van een data lake en een data warehouse, zie figuur 2 . Hierbij wordt er gebruik gemaakt van een overkoepelende laag, namelijk de delta lake wat bijdraagt aan het simplificeren van datamanagement. Hoe een data lakehouse precies in elkaar zit heeft een van onze collega’s, Dennis van Zanten, al besproken in zijn blog “Lakehouse”, kijk hier vooral naar voor een diepteanalyse van een data lakehouse. Daarnaast is in de blog “Schaalbare dataprocessing met Databricks” van Sander op ’t Hof en Sven Relijveld ingegaan op de data lakehouse-architectuur binnen Databricks. Doordat deze twee blogs het concept data lakehouse vergelijkt met andere architectuur vormen zal in deze blog het data lakehouse-concept niet verder toegelicht worden. Wel gaan we verder in op het inrichten van een data lakehouse omdat deze architectuur door steeds meer bedrijven gebruikt wordt.
Figuur 2: Data lakehouse (boek: James Serra,
Deciphering Data Architectures)
Brons, zilver en Goud
Om er zeker genoeg van te zijn dat alle data op dezelfde plek is opgeslagen in dezelfde vorm en structuur hanteren veel organisaties het drie lagen principe. Elke laag heeft zijn eigen functie en wordt gebruikt voor het aanduiden van de gereedheid van de data. Over de jaren heen zijn hier veel variaties en benamingen voor geweest. Tegenwoordig is het gangbaar om deze drie lagen de brons-, zilver- en goudlaag te noemen. In de bronslaag komt alle ruwe data binnen vanuit de bronsystemen. Dit is data direct vanuit een bronsysteem. Voor het inrichten van je bronslaag is het belangrijk om alvast goed na te denken over hoe de data opgeslagen en gebruikt dient te worden in de lagen die erna komen. Vaak raden wij de meest flexibele vorm van opslag aan voor de bronslaag. Denk aan een data lake waar al je data eerst kan landen. Dit voorkomt dat data niet opgeslagen wordt en voor altijd verloren gaat. Mocht er een CSV-bestand aangeleverd worden met een verkeerde naam, of onbekende kolommen, wordt deze opgeslagen en bewaard in de bronslaag. Dit in tegenstelling tot directe opslag in een tabel, waar een error verschijnt, en de data niet bewaard wordt. Dit maakt het systeem afhankelijk van de aanleverende partij.
Blog storage is een goed voorbeeld van een opslagmethode die uiterst flexibel is. Het is hierbij wel belangrijk om in de bronslaag al goed na te denken over de directorystructuur. Naast dat het belangrijk is in welke structuur de data opgeslagen gaat worden is het ook nodig om te bepalen hoe vaak de data in de toekomst opgevraagd gaat worden. Hierop zal de juiste access tier van een storage account gekozen worden. Als de data direct opvraagbaar moet zijn dan is een “hot” access tier een goede overweging. Wanneer de data puur voor archivering opgeslagen dient te worden kan er beter gekozen worden voor de “archive” access tier. Bij de “archive” access tier liggen de kosten voor het opslaan van de data lager dan bij een hot access tier. Ook is er een verschil in de beschikbaarheid van de data. Bij een Hot access tier heb je direct toegang tot de data, terwijl bij de “archive” access tier het enkele uren kan duren. De kosten liggen dan lager, maar het opvragen van de data kan enkele uren duren.
In de zilverlaag wordt de data uit de bronslaag gehaald en bewerkt om de data in de juiste format en stijl te krijgen om te voldoen aan de eisen van de organisatie. Hoe de data bewerkt wordt kan op verschillende manieren worden gedaan. Zo kan ervoor gekozen worden om alle transformaties in één keer te verwerken. Dit wordt ook wel de “stored procedure” stijl genoemd. Een andere optie is om alle transformaties in kleinere stappen op te breken. Hierbij kan ervoor gekozen worden om de data tussentijds op te slaan in een tijdelijke tabel of view. Beide methoden worden veel gebruikt. Welke van deze methodes gebruikt wordt is afhankelijk van de hoeveelheid transformaties, de duur van alle transformaties bij elkaar, hoe vaak er een wijziging aangebracht dient te worden in de code die voor de transformatie zorgt, en hoe vaak de desbetreffende data moet worden gewijzigd. Als deze data wijzigt zal de transformatie ook vaak mee wijzigen. De opslag in de zilverlaag gebeurt in tabellen of Parquet files in de datalake. Belangrijk is dat de data in de zilverlaag zo generiek mogelijk is zodat meerdere afdelingen binnen een organisatie hier gebruik van kunnen maken.
Nadat de data bewerkt is in de zilverlaag wordt het overgezet naar de goudlaag waarna het uiteindelijk wordt gebruikt om de informatie uit de data te kunnen halen. In deze laag worden weinig tot geen veranderingen meer gedaan aan de data. Alleen als het nodig is kan de data hier nog conversies ondergaan bijvoorbeeld om de data op een andere manier geaggregeerd te krijgen voor een specifieke afdeling. Vaak is de goudlaag dimensioneel gemodelleerd omdat dit de meest makkelijke en gebruikte manier is waarop de visualitie tool overweg kan met de data.
Hoe richt je een tabel in?
Tot slot willen we nog een handige tip meegeven die gebruikt kan worden voor het inrichten van je tabellen binnen je opgezette architectuur. Net zoals dat het belangrijk is om goed na te denken over de architectuur van je dataopslag, geldt dit ook voor het inrichten van je tabellen. Vaak zien wij bij klanten dat er niet altijd even goed is nagedacht over de opzet van een tabel. Zo kon bij het aanmaken van de tabel niet het nodig zijn om data over tijd op te slaan, maar na verloop van tijd toch wel nodig blijkt te zijn. Dit kan voor veel extra werk opleveren en wil je natuurlijk altijd zo veel mogelijk voorkomen.
Om ervoor te zorgen dat de data correct wordt opgeslagen over tijd is het verstandig om aandacht te besteden aan de datalaadstrategie. De datalaadstrategie bepaalt of de bestaande data volledig wordt verwijderd en weer opnieuw ingeladen of dat alleen de nieuwe data wordt toegevoegd en bestaande data wordt verwijderd of geüpdatet.
Als de data volledig wordt verwijderd en opnieuw wordt doorgeladen wordt er dus geen historie van de data bijgehouden, je verwijdert immers alles. Deze methode is het meest simpel en minst tijd efficiënt mits het niet grote hoeveelheden data gaat. Wanneer er voor de tweede optie gekozen wordt, het toevoegen van nieuwe en updaten of verwijderen van bestaande data, dan is het ook belangrijk om de historie van de data bij te houden. Doe je dit niet dan kan dat zorgen voor dubbele data en dit wil je natuurlijk.
Om goed bij te houden welke regel voor de juiste tijdsperiode geldt, kan het concept van “slowly changing dimensions” (SCD) gebruikt worden. SCD is een concept dat wordt gebruikt in datawarehousing en data-analyse om te beschrijven hoe dimensiegegevens (zoals producten, klanten, locaties, enz.) veranderen in de loop van de tijd en hoe deze veranderingen worden beheerd en vastgelegd. In totaal zijn er 6 varianten binnen het SCD-concept, maar binnen OneDNA wordt met name gebruikt, omdat deze alle componenten van variant 1 tot en met 5 samenvoegt en dus het meest complete beeld geeft. In tabel 5 is een voorbeeld van een tabel dat ingericht is volgens SCD type 6.
Tabel 5: voorbeeld van tabel dat ingericht is volgens SCD type 6 (bron)
Ons op maat gemaakte advies voor ons kleine fictieve e-commercebedrijf omvat het gebruik van een Azure SQL Database voor het beheer van klantgegevens, Azure Table Storage voor het opslaan van gebruikerssessies en Azure Blob Storage voor het hosten van websiteafbeeldingen. Deze PaaS-oplossingen bieden flexibiliteit, schaalbaarheid en verminderen de operationele complexiteit, waardoor het bedrijf zich kan concentreren op groei en innovatie. Door dit te combineren met industriestandaards zoals medaille-opslag en slowly changing dimensions, bieden we de klant een robuuste basis voor het beheren en analyseren van hun gegevens.
Dit was het voor deze eerste deel van de blog “Wat zijn de mogelijkheden in Cloud-opslag”. In deel twee gaan we het hebben over het beveiligen van je Cloud-opslag. Mocht je nou graag meer willen weten en echt niet kunnen wachten tot de volgende blog of ben je gewoon nieuwgierig wat wij, OneDNA, allemaal doen? Neem dan even contact op via onze contact gegevens op de website.