NLEN
Direct technisch advies?
Home > Blog

DataBase-as-a-Service onder de loep genomen

Edco Wallet / Thomas Brinkman 27-07-2022 9:06 AM
Categories: BLOG, Cloud, DBMS, Open Source, Review

De cloud is hot, heel hot. Maar dé cloud bestaat niet, er zijn verschillende cloudmodellen – public, private en hybrid – en er zijn grofweg drie hoofdsoorten van cloudcomputing: SaaS, IaaS en PaaS. Onderdeel van PaaS is DBaaS. Wat is DBaaS, wat zijn de voor- en nadelen en maakt DBaaS een DBA overbodig? We bespreken het in deze blog.

DBaaS in het kort

Bij DBaaS huur je een compleet geconfigureerde database van de cloudprovider. De cloudprovider is verantwoordelijk voor het beheer, de updates en de performance. Deze service komt het meest overeen met PaaS, maar bevat een belangrijk verschil. Bij DBaaS hebben ontwikkelaars toegang tot de onderliggende database waardoor zij zelf een databasetechnologie kunnen kiezen die aansluit op de applicatie. Later zoomen we dieper in op de voor- en nadelen van DBaaS, maar kortweg kunnen we stellen dat het voordeel van DBaaS is dat je direct aan de slag kunt en zelfs zonder database-expertise verder kunt. Bovendien kun je snel resources opschakelen. Een nadeel van DBaaS is dat je weinig controle hebt over de configuratie en vrijwel niet kunt tunen. Voorbeelden zijn SQL Azure, AWS RDS Postgres.

Cloudmodellen

Alles naar dé cloud brengen kan niet, simpelweg omdat dé cloud niet bestaat. Er bestaan verschillende modellen zoals private, public en hybrid cloud. Bovendien is het niet per definitie noodzakelijk om alles naar de cloud te brengen. Door slimme combinaties te maken met de vormen en de modellen en zelfs meerdere cloudproviders, creëer je een mix die zorgt voor maximale kwaliteit, flexibiliteit, en met controle over de kosten.

Public cloud

In een public cloud deel je jouw omgeving of server waar jouw applicatie op draait in het datacenter van de cloudprovider met andere klanten van deze cloudprovider. Let hier goed op wat er gebeurt met je privacygevoelig data in verband met de GDPR. In de public cloud is security een issue, maar de meeste cloudproviders besteden hier zelf al veel aandacht aan.

Private cloud

In een private cloud zijn alle servers, componenten en services die je gebruikt in het datacenter alleen voor jou. Je bent de enige afnemer en je maakt geen onderdeel uit van een gedeelde omgeving. Je hebt meer exclusieve controle over de resources. Als je het slim aanpakt zou dit zelfs voordelig kunnen uitpakken.

Hybrid cloud

Dit is een combinatie van public en private cloud. Software met gevoelige informatie staat in de private cloud. Applicaties die snel of flexibel moeten zijn, bijvoorbeeld als het gaat om op- en afschalen, staan in de public cloud. Hierbij kies je in feite het beste uit twee werelden.

Databases in de cloud

Als je besluit je database in de cloud te gaan draaien – of af te nemen – moet je op een aantal dingen letten. Welke dingen dat exact zijn, dat hangt af van je doel, de toepassing, het budget en je voorwaarden. In het kort kunnen we de volgende aandachtspunten noemen:

DBaaS

Het voordeel van DBaaS is dat het snel, flexibel en standaard geconfigureerd is, met onbeperkte resources. Er is vrijwel geen DBA-expertise nodig. Een mogelijk nadeel is dat de kosten vrij snel oplopen met het afnemen van services of het opschalen van resources. Er is geen sprake van efficiënt databasebeheer en de mogelijkheden om maatwerkconfiguraties toe te passen zijn er niet of in beperkte mate. Tunen is niet mogelijk en bij gebruik van open source databasetechnologie kunnen veel community-extensies niet gebruikt worden.

PaaS

Bij PaaS moet je rekening houden met het gebruik van bestaande software. Niet alle bestaande software is geschikt om in een PaaS-omgeving te functioneren, in een PaaS-omgeving heb je bijvoorbeeld geen toegang tot de root van de harde schijf. Niet alle CPU-kracht en geheugen wordt toegewezen aan de cloudapplicatie. Dat komt omdat er vaak op een gedeeld platform gehost wordt, waardoor andere applicaties (en databases) mogelijk gebruik maken van dezelfde resources. Wat de database betreft heb je dezelfde voor- en nadelen als met DBaaS.

IaaS

IaaS lijkt het meest op een on-premise implementatie. Het gaat hier met name om het gebruik van virtuele servers. Belangrijk is hier een goed onderzoek naar de eventuele beperkingen in bijvoorbeeld I/O, waardoor de databaseperformance anders kan zijn in de praktijk dan in een afgeschermde lokale omgeving. Als afnemer ben je zelf verantwoordelijk voor het inregelen van beveiliging en back-up. Het voordeel is dat je invloed hebt op de keuze van de gebruikte databasetechnologie. Je kan dus je database tunen naar jouw applicatie. Je kan de inrichting standaardiseren, naar je eigen organisatie. Uitrollen en deployment van databases is complexer en je moet het zelf ‘verzinnen’ en bouwen, waardoor wel enige expertise nodig is.

SaaS

Het voordeel van SaaS is dat de leverancier al het beheer en onderhoud verzorgt, daar heb je geen omkijken naar. Daarentegen heb je ook geen mogelijkheid om de software aan te passen.

SaaS, PaaS, IaaS en DBaaS overzicht

Populaire Public DBaaS-modellen

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

  • Amazon RDS
  • Azure database for (PostgreSQL, MySQL, MariaDB)
  • Azure SQL
  • Google Cloud SQL
  • IBM Cloud Databases

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

  • CockroachDB
  • MongoDB Atlas
  • Amazon Aurora
  • Google Cloud Spanner en Bigtable
  • TimeScaleDB
  • BigAnimal (nieuwkomer van EDB specifiek voor PostgreSQL)

In het GigaOm Radar Report for Cloud Databases is onderstaand overzicht gepubliceerd.

GigaOm radar rapport voor Cloud Databases

Efficiënt omgaan met database-omgevingen in de cloud

Als database-experts hebben wij uitgebreid onderzocht hoe je het best kunt omgaan met de ontwikkelingen rondom databases in de cloud en hoe deze efficiënt kunnen functioneren. Wat zijn de aandachtspunten?

Verschillende aanbieders

Om te beginnen zijn er veel oplossingen beschikbaar. Daarbij moet je denken aan de volwassen platformen van de grote drie – Microsoft  Azure, Amazon Web Services en Google Cloud Platform –, waarbij je kunt kiezen voor verschillende DataBase-as-a-Service-oplossingen. Er zijn ook talloze kleinere aanbieders van DBaaS-oplossingen, met unieke functionaliteiten en flexibiliteit (die zijn te migreren naar diverse public cloudserviceproviders). Maar wat zijn nu de voor- en nadelen?

Voordelen van DBaaS-oplossingen

DBaaS heeft zo zijn voordelen.

Snel en eenvoudig

Je kunt heel makkelijk even verschillende dbms-oplossingen of nieuwe features uitproberen in de cloud. Het is relatief eenvoudig – een testopstelling is zo gemaakt –, goedkoop en de time-to-market is kort. 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 om 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.

Makkelijk opschalen

De keuze voor een DBaaS-oplossing komt een DevOps-cultuur ten goede. Het continue proces van stappen binnen dit procesmodel maakt dat er steeds opnieuw code wordt gedeployed, getest en uitgebracht. Als je dat doet in een omgeving die je makkelijk kunt opschalen, is dat uiteraard heel handig.

(Initieel) lagere kosten

De keuze voor een DBaaS-oplossing is initieel een stuk goedkoper dan een on-premise-oplossing. Organisaties met een grote database, bereiken echter op een gegeven moment een kantelpunt. Het is daarom raadzaam om periodiek te toetsen of dat kantelpunt al is bereikt. Vanaf dan loont het om in eigen beheer te deployen, met een eigen DBA en een eigen systeembeheerder. Vergeet niet ook te testen of de performance en prijs nog wel naar wens is.

Integratie

Een DBaaS-oplossing integreert makkelijk met andere cloudoplossingen. Kanttekening is wel dat vendor-lockin sneller op kan treden.

Verschillen tussen DBaaS-oplossingen

Er zijn echter grote verschillen tussen de diverse oplossingen. 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.

Nadelen van DBaaS-oplossingen

Beperkte dienstverlening

Of je nu kijkt naar de grote drie of naar de kleinere aanbieders, bij allemaal mist een stukje dienstverlening. Ze bieden de omgeving aan, maar hebben niet de mankracht om proactief, maar ook zelfs niet reactief, met je mee te kijken of jij als klant je databaseomgeving wel zo efficiënt mogelijk hebt ingericht. Die behoefte is er echter wel. Je kunt veel ellende voorkomen door je omgeving op te bouwen en in te richten op basis van je meest ideale en positieve verwachtingen. 

Cloudspecifieke features vergroten kans op vendor-lockin

Vrijwel alle cloudserviceproviders, groot en klein, kunnen specifieke features aanbieden. Die kunnen aantrekkelijk lijken, maar vergis je niet. Ze integreren vaak naadloos met andere producten of diensten van datzelfde ecosysteem van die cloudserviceprovider, maar dan zit je wel vast aan die provider. 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. Om vendor-lockin te voorkomen, moet je een goede exit-strategie hebben om snel te kunnen verhuizen naar een andere provider. Dat maakt je onafhankelijker.

Privacy 

Natuurlijk kun je ook in de cloud je data – zowel in-transit als at-rest – encrypten, maar je data zal hoe dan ook altijd opgeslagen zijn op de systemen van de cloudserviceprovider. Hoe je het ook wendt of keert, die data moeten door de poorten van de provider komen. In bepaalde sectoren, denk bijvoorbeeld aan overheden en banken, is dat ongewenst.  

Wachten op updates 

Brengt de fabrikant van jouw DBMS-software een nieuwe update of een bugfix uit, dan moet die eerst getest worden op de infrastructuur van de cloudprovider. Pas als dat een goed resultaat oplevert, kun je de update of bugfix doorvoeren. 

Noisy neighbour-effect 

Als meerdere gebruikers op hetzelfde cloudplatform veel resources gebruiken, blijft er minder capaciteit over voor anderen. Ook al wordt dat niet altijd duidelijk aangegeven, er zit altijd een limiet aan je resources. Dat kan van invloed zijn op de performance van je database. 

Schaalbaarheid kan voor verrassingen zorgen 

Een groot voordeel van de cloud is dat het heel elastisch is, je betaalt naar verbruik en kunt op- en afschalen als dat nodig is. Maar vergeet het verbruik niet te monitoren. Doe je dat niet en je database wordt ineens heel veel gebruikt, door een testomgeving of door klanten, kan je ineens een enorme rekening gepresenteerd krijgen.

Kosten

Percona heeft in 2020 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 hoger zijn dan vooraf ingeschat. 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.

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.

Wat zijn de behoeftes?

Welke hiaten zien wij in het huidige aanbod waar je als database-expert op in kan spelen? Met name het proactief meekijken naar de inrichting van een omgeving is een gemis. Er is duidelijk behoefte aan een cloud-DBA. Maar ook op het vlak van monitoring en autotuning bestaan de nodige behoeftes. Het monitoren van de infrastructuur zou een stuk uitgebreider mogen. Het monitoren van de storage, denk bijvoorbeeld aan het aantal IOPS - Input/Output Operaties Per Seconde – zou ook een welkome aanvulling zijn. Zo zou je, met een goede partner, het advies kunnen krijgen om te kiezen voor een hogere storageclass, waardoor de prestatie van je omgeving op peil blijft. Tenslotte is er ook meer behoefte aan financial governance (kostenbeheersing, monitoring en optimalisatie), vooral omdat elke cloudserviceprovider verschillende prijsmodellen heeft.

Betekent DBaaS het einde van de database-administrator?

De belangstelling voor DBaaS wordt steeds groter. Tegelijkertijd staan we nog maar aan de vooravond 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 dat wel zo?

Moderne ontwikkelmethoden

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. We zien een duidelijke trend waar leveranciers en providers alles zo makkelijk mogelijk proberen 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. Je zou kunnen zeggen dat (Public) DBaaS heeft gewonnen als dé manier om databases te deployen in de cloud.

Echter, 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…

Conclusie

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.

Advies nodig?

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 contact met ons op, we leren je graag kennen.

Meer blogs over dit onderwerp

Geboren en getogen in de cloud

Databases in de cloud, zonder nadelen

Zie jij door de cloud-bomen het bos nog?

Wie van de 3...database in AWS, Azure, GCP?

DBaaS of DBA eindbaas

Terug naar blogoverzicht

 

React