Proof of concept

Proofs of concept voor databasetechnologie: zien is geloven

In de laatste jaren zijn er vele nieuwe databasesystemen ontwikkeld die ook voor BI kunnen worden ingezet. Maar hoe maak je een keuze uit het overweldigende aanbod, waarbij je ook nog wilt weten of het in jouw specifieke situatie de meest passende oplossing is? Het uitvoeren van proofs of concept is een krachtig hulpmiddel om dit keuzeproces te vergemakkelijken.

Het aanbod is overweldigend

In de afgelopen jaren is er binnen ons vakgebied veel veranderd op database-gebied. In de eerste jaren van dit millennium had je de keuze uit een beperkt aantal grote databaseleveranciers. Met name IBM’s DB2, Oracle en Microsoft SQL Server waren logische en de meest gekozen database platforms.

Tot op zekere hoogte voldoen deze technologieën nog altijd prima voor het doel waarvoor ze worden ingezet, maar in de loop van de jaren zijn datahoeveelheden, eisen en wensen van bedrijven, en datamodelleringstechnieken op BI-gebied nogal veranderd.

Deze veranderingen zorgen voor andere eisen aan databasesystemen, waardoor binnen een tijdsbestek van een aantal jaar veel nieuwe databasesystemen zijn opgekomen. Van traditionele RDBMS-systemen tot document stores, van rij- of kolom-gebaseerde diskopslag tot in-memory databases, van proprietary software tot open source.

Het aantal beschikbare database platforms is inmiddels zo groot geworden, dat je bedrijven niet kwalijk kunt nemen dat ze door de bomen het bos niet meer zien. Dat doen we zelf ook niet altijd meer. Afgaan op mooie verkooppresentaties van leveranciers is meestal ook geen garantie dat je voor jouw situatie de juiste keuze voor een technologie maakt.

Een passende keuze

Er is gelukkig een manier om wel tot een passende keuze te komen, en dat is het uitvoeren van Proofs of Concept (PoCs). Het doel van een dergelijke Proof of Concept is om in een zo kort mogelijke tijd aan te tonen of een bepaalde technologie voor jouw specifieke use case, in jouw situatie, wel of niet gaat werken.

Bijna iedereen weet wat een Proof of Concept is, maar in de praktijk wordt het veel minder ingezet dan organisaties zouden moeten willen. Het is een goedkoop, risicoloos instrument dat veel inzicht biedt. Daarmee kan het je behoeden voor het maken van keuzes waar je later veel spijt van krijgt of het kan inzichtelijk maken dat de keuzes die je maakt de juiste zijn. Gezien de investeringen die vaak gedaan worden op korte en lange termijn, en de implicaties die bepaalde technologiekeuzes met zich meebrengen, is een bevestiging dat een technologie daadwerkelijk passend is cruciaal.

Aanpak

Wanneer je een Proof of Concept start, richt je dan vooral op de moeilijkste en belangrijkste use cases waarmee je te maken zult krijgen. Als je deze zaken in je PoC fase namelijk niet voor elkaar krijgt, dan is de kans groot dat dit niet het juiste databasesysteem is voor jouw omgeving.

Wat je ook doet, zorg altijd voor een gedegen plan. Bedenk van tevoren wat je duidelijk wilt maken, en ga gestructureerd en gedetailleerd te werk. Want uiteindelijk moet je de resultaten van je PoC kunnen presenteren, en moet je je conclusies deels kunnen onderbouwen met harde cijfers.

Gebruik hierbij altijd relevante, eigen data. En als je verschillende databases binnen dezelfde PoC vergelijkt, zorg dan dat beide databases van exact dezelfde data voorzien worden, en bevraag ze op exact dezelfde manier. Alleen dan zullen je resultaten vergelijkbaar worden, en kun je op basis van je resultaten beslissingen nemen.

Randvoorwaarden

Voordat je kunt overgaan tot het bepalen welke technologieën je aan een PoC wilt onderwerpen, moet je eerst de randvoorwaarden waarmee je te maken hebt goed in kaart brengen. Hierbij kun je bijvoorbeeld denken aan de mogelijkheden en beperkingen van je beschikbare hardware, de functionele mogelijkheden die een bepaalde database-technologie je biedt, specifieke eisen en wensen die je stelt aan je eindproduct, eventuele beperkingen die je data je oplegt, budgetten en eisen vanuit beheer.

Door al dit soort randvoorwaarden van tevoren goed op een rij te zetten, wordt al snel duidelijk welke technologieën in aanmerking komen voor een PoC, en welke bij voorbaat afvallen. Zoals producten die veel duurder zijn dan het budget toelaat, die niet passen binnen je hardware-landschap, of die essentiële functionaliteit missen.

Praktijkvoorbeelden

Voor een zorgverzekeraar hebben we een PoC uitgevoerd met Open Source database software, waarbij we de geschiktheid van een aantal specifieke, third party, MySQL storage engines wilden testen. We hebben ons daarbij onder meer gericht op de belangrijkste zaken in die omgeving: het dagelijks inladen van grote hoeveelheden data, waarbij doorlooptijd cruciaal is. Bovendien hebben we gekeken naar de performance van het uitvragen van vooraf onvoorspelbare ad hoc query’s door de gebruikte front end tool.

Het uitvoeren van deze Proof of Concept was heel leerzaam. Het liet enerzijds zien dat de gebruikte technieken zeer geschikt waren voor de opslag van data in het datawarehouse en simpele bevragingen. Anderzijds bleek ook dat de gebruikte storage engines totaal ongeschikt waren voor de manier waarop de gebruikte front end tooling bepaalde query’s losliet op de database, alhoewel de manier van dataopslag in theorie heel geschikt leek te zijn. Een korte vervolg-PoC toonde snel aan welke combinatie van technologieën wél zou gaan werken bij dit bedrijf. De bij deze PoCs opgedane kennis heeft aan de basis gestaan van de uiteindelijke datawarehouse omgeving.

Een PoC bij een andere zorgverzekeraar draaide om het bevragen van een extreem grote data mart door een front end tool, waarbij de response tijd belangrijk was.

Dit bedrijf had een omgeving die niet voldoende performance bood, en het doel van de PoC was om aan te tonen of andere database technologieën deze performance bottlenecks weg konden nemen.

Tijdens de PoC is gebleken dat alle geteste technologieën hun beperkingen hadden waardoor ze niet direct inzetbaar waren als alternatief voor de al in gebruik zijnde technologie. Maar één PoC bood voldoende aanknopingspunten voor een korte vervolg-PoC die werd uitgevoerd door een database leverancier zelf. Deze laatste PoC heeft uiteindelijk een goed alternatief scenario opgeleverd voor de omgeving die tot dan toe gebruikt werd.

Zien is geloven

Het belangrijkste dat je bereikt met een Proof of Concept is dat je in korte tijd met beperkte financiële middelen kunt aantonen wat wel en niet werkt voor jouw use cases: zien is geloven.

Door eerst goed de randvoorwaarden in kaart te brengen kun je komen tot een set van database technologieën die in aanmerking komen voor een PoC voor jouw specifieke situatie.

Vervolgens gebruik je je moeilijkste use cases om de sterke en zwakke punten van een database aan te tonen.

Met de resultaten kun je ten slotte in een paar weken een gedegen, onderbouwd en vooral toekomstvast advies opstellen dat volledig passend is bij wat jouw organisatie nodig heeft. Een kleine moeite voor een omgeving die de tand des tijds moet kunnen doorstaan en waarbij het maken van verkeerde keuzes verstrekkende gevolgen kan hebben.