DBaaS goed bekeken

Door: Edco Wallet 6-11-2020

Categorieën
:
Beheer, BLOG, Cloud, DBMS, Open Source, Review,

De belangstelling in Database-as-a-Service (DBaaS) wordt steeds groter, terwijl wij nog slechts aan de vooravond lijken te staan als het gaat om de kwaliteit en mogelijkheden. Er zijn inmiddels talloze variaties verkrijgbaar bij verschillende cloudproviders waarbij databases met ogenschijnlijke eenvoud kunnen worden gedeployd in de cloud. Als je de marketingverhalen mag geloven, heb je geen database administrator meer nodig en kunnen developers met kant-en-klare bouwblokken – containers – direct aan de slag. Maar is DBaaS echt wel goed bekeken?

Snelheid en moderne developmentmethoden

Sinds de opkomst van DevOps- en CI/CD-methoden van ontwikkelen en deployen is er voor developers een zee aan mogelijkheden ontstaan. Snelheid van ontwikkelen is key geworden en daarmee is de behoefte gegroeid om zelf onafhankelijk van anderen meters te maken. Developmentteams van vandaag de dag kunnen kant-en-klare bouwblokken en API’s van internet plukken. Van scratch af aan een applicatie of zelfs omgeving of platform opzetten is niet meer nodig.

Trend

We zien een duidelijke trend waar leveranciers en providers alles zo makkelijk mogelijk proberen te maken. De eenvoudigste en snelste manier om software te deployen in de cloud met gebruik van een eigen API. Je zou kunnen zeggen dat (Public) DBaaS heeft gewonnen als dé manier om databases te deployen in de cloud. Peter Zaitsev, CEO van Percona heeft er recent een keynote aan gewijd (why Public DBaaS is Prime for Open Source Disruption) tijdens het Percona Live Online 2020 event.

Populaire Public DBaaS-modellen

De meest bekende en toegepaste public DBaaS-modellen zijn:

En dan zijn er ook nog een aantal cloud-native DBaaS-modellen zoals:

In het GigaOm radar report for Cloud databases is onderstaande overzicht gepubliceerd. (het volledige rapport is hier te downloaden)

GigaOm radar report Cloud Databases

Mogelijkheden en voordelen DBaaS

DBaaS heeft zo zijn voordelen. Security, Patching, High Availability (HA) inregelen en beheren, back-ups maken, performance tuning, het wordt je allemaal uit handen genomen. Je hebt geen DBA meer nodig om je te helpen of toestemming te geven om een database af te trappen. De developer kan precies die database kiezen die in zijn ogen het best bij de applicatie past en vervolgens erop vertrouwen dat de cloudprovider de zaak in de lucht houdt en zorgt dat de boel goed blijft performen.

Grote verschillen

De verschillen zijn groot en divers. Er zijn verschillen in optimalisatie voor geheugen I/O, of performance en de schaalbaarheid van storage. In sommige gevallen wordt zelfs een fork van de open-source-software gecreëerd om betere performance te behalen ten koste van core-features (zoals Aurora van AWS). Daarnaast zijn er cloud-native oplossingen en DBaaS-modellen die zijn afgeleid van bestaande on-prem toepassingen. De basisconfiguraties zijn over het algemeen goed voor de meeste database instances. Hierdoor kunnen developers en engineers het maximale uit de service halen zonder een complete DBA of Database Expert te zijn.

Overzichten

Op onze website hebben we een DBaaS-overzicht gepubliceerd van de meest toegepaste modellen en daarbij de sterke punten en uitdagingen.

Deze website van Trustradius geeft een mooi overzicht met details, vergelijkingen en ook reviews.

Maar dan de keerzijde

De praktijk is dat developers zonder toezicht, supervisie of advies van een DBA of Database Expert allerlei databases deployen waardoor er een onoverzichtelijke wirwar aan databases en connecties draait. Zo verschijnen er dan toch wat beren op de weg.

Tegenvallende resultaten uit de praktijk

Percona heeft onlangs een onderzoek gepubliceerd over het gebruik en toepassing van open source en cloud databases. In de praktijk gebruikt inmiddels 69% van de ondervraagde bedrijven een bepaalde vorm van DBaaS-oplossing. Van deze groep geeft 22% aan dat de kosten van deze managed database services in de cloud veel duurder uitpakken dan vooraf ingeschat. Verder noemt maar liefst 74% performance issues als het voornaamste (reeds ervaren) probleem op dit moment en 45% noemt de onvoorspelbaarheid van de downtime als issue.

Kosten

In de praktijk blijkt dat wanneer het platform en de database groeien in omvang, er simpelweg steeds meer opslagruimte wordt toegevoegd. Als door het groeiend gebruik van de applicatie de databaseperformance slechter wordt, dan prikken we gewoon CPU’s bij of wat extra geheugen. Maar alles heeft zijn prijs en DBaaS is nou precies ingericht om dit te faciliteren en daar is het verdienmodel ook op ingericht. De maandelijkse factuur zal hard meegroeien met de database en kwaliteit van de applicatie, datamodel en/of queries. Laat staan als we over clusters en redundantie beginnen, want dan komen er ook nog een aantal servers bij en zullen de kosten exponentieel groeien.

Vendor Lock-in

Alle cloudproviders bieden een brede range aan services om daarmee het gemak van DBaaS nog meer te versterken. Alle providers bieden inmiddels een, min of meer, compatible met open-source-variant aan. Waardoor het lijkt alsof met native Postgres of native MySQL wordt gewerkt. Maar de mate waarin de afgenomen database is ingericht, de API die wordt gebruikt, hoe er wordt gemonitord en hoe de High Availability is ingeregeld, maakt verhuizen naar een andere provider of zelfs naar een eigen (gehuurde) server erg moeizaam en zeer kostbaar. Dat heet Vendor Lock-in.

Shared instances

Alle DBaaS-oplossingen zijn ingericht op de algemene deler, het grote gemiddelde. Maatwerk is bijna onmogelijk, uiteraard met wat puzzelwerk en hogere cloudwiskunde en het maken van wonderlijke combinaties is er wel wat performancewinst te behalen. Maar in de basis zal de gekozen DBaaS niet aangepast worden aan specifieke wensen. Daarnaast, en daar is het verdienmodel van DBaaS ook op ingesteld, zijn het enorme shared instances. Waardoor de performance van jouw databases mede-afhankelijk is van het gebruik door overige klanten op deze gedeelde ruimte. Kortom: we zitten allemaal op dezelfde boot, iemand springt op en neer en jij wordt zeeziek.

DBA-expertise

Last but not least, uiteindelijk missen vrijwel alle DBaaS-oplossingen DBA-expertise. Zoals het gebruik van indexen, een gericht datamodel, slimme clustering en serieus database-onderhoud. Stel je maar even een keuken voor nadat u uw kleuter een paar uur zonder toezicht alleen hebt gelaten…

Kortom

DBaaS kan nog steeds een goede optie zijn in experimentele en analytische omgevingen. Of in kleine en snelle ontwikkelteams waar ‘even’ een database nodig is. Maar als er wordt overwogen om databases structureel in de cloud af te nemen en deze als DBaaS-oplossing in te richten? Maak dan een goede overweging en vergeet niet om alsnog een DBA in de arm te nemen, als database-expert, toezichthouder en trusted advisor. Niet alleen vanuit kostenperspectief maar ook om zeker te zijn van de best mogelijke performance.

Hulp nodig of advies

OptimaData heeft al verscheidene klanten geholpen met, maar ook uit, een DBaaS-situatie. Wij kennen als geen ander de fijne kneepjes van het vak en weten altijd de beste opties en optimale setup te vinden. Uit ervaring, omdat we het elke dag doen. Ook eens van gedachten wisselen? Neem gerust vrijblijvend contact op.

Bronnen:

Percona
CockroachDB/GigaOm radar report
Trustradius

Andere relevante blogs over DBaaS

Zie jij door de Cloud bomen het bos nog?

DBaaS of DBA eindbaas?

Index tuning in AWS RDS Postgres

Baas in eigen database

Terug naar blogoverzicht