NLEN
Technical support?
Home > Blog

DBaaS of DBA eindbaas

Thomas Spoelstra 10-6-2020 14:38
Catégories: Beheer, BLOG, Carierre, Cloud, DBMS, Review

We schreven al eerder dat er niks mis is met het beheer van databases in een wat oudere omgeving. Maar ook met wat rijpere databasebeheerders is niks mis. Thomas Spoelstra – ja, die van die man cave – is er zo een. Hij weet als geen ander hoe hij een database zo efficiënt mogelijk in moet richten, omdat er ‘vroeger’ simpelweg niet meer schijfruimte of geheugen was. Nu we massaal overstappen naar de cloud, met al z’n ruimte en mogelijkheden om op te schalen, lijken die efficiency skills niet meer zo belangrijk. Tot de kosten de cloudpan uitrijzen. Dan heb je toch iemand nodig die inhoudelijk het datamodel kan beoordelen en finetunen, om zo je cloud-kosten te reduceren. Iemand als Thomas dus…

Vorige eeuw

Je kunt mij gerust een oude DBA noemen. Mijn eerste stappen in de wondere wereld van databases zette ik in de vorige eeuw. In 1989 om precies te zijn. Die wondere wereld bestond uit DMBS-systemen waar jongere collega’s nog nooit van gehoord hebben, zoals INFOS-II en dBase III. Gegevens werden vaak opgeslagen in platte bestanden en we waren meesters in het genereren van sleutels en het optimaliseren van opslag.

De sleutel, de hele sleutel en niets anders dan de sleutel

Op een goede dag maakte ik kennis met een relationeel databasesysteem, Sybase 10, dat draait op een ander relikwie: OpenVMS. Een beperking die ik me tot op de dag van vandaag herinner, was de maximale grootte van een database van twee gigabyte. De zorg die we moesten besteden aan het plaatsen van verschillende databases op verschillende schijven om het aantal spindels en de prestaties te vergroten! Toen moest er nog serieus nagedacht worden over het ontwerp van het datamodel. Tabellen moest je compact houden en de gegevenstypen voor elke kolom moesten zorgvuldig selecteren om je gegevens te normaliseren. De derde normale vorm werd als heilig beschouwd, waarbij het mantra was: elk attribuut moet een feit vertegenwoordigen over de sleutel, de hele sleutel en niets anders dan de sleutel. Je moest echt een serieus goede reden hebben om niet te normaliseren naar deze magische derde normale vorm. Het afstemmen en optimaliseren van zoekopdrachten was een essentieel onderdeel van de dagelijkse taken.

Fast forward

Inmiddels zijn we een decennium of drie verder en zie hoe de wereld is veranderd. Hardware is goedkoper dan ooit. In zekere zin volgt het de wet van Moore, waarbij machines om de paar jaar in vermogen verdubbelen en in vergelijking nauwelijks duurder zijn geworden. Van discrete harde schijven als databaseopslag, stapten we over op RAID5 en hadden we te maken met enorme opslagarrays met nauwelijks een bewegend onderdeel - afgezien van de ventilatoren. Platters en spindels? Daar had bijna niemand het meer over. Want als de database groeit, voeg je gewoon meer opslagruimte toe. Zonder met je ogen te knipperen. Gaan de prestaties wat achteruit? Dan voeg je toch gewoon een paar CPU's toe met een paar gigabyte aan RAM. Maar dit brengt verborgen kosten met zich mee.

Schrik

Met de snelheid waarmee we vandaag de dag de cloud omarmen – en alles wat daarbij hoort, zoals DbaaS – voorzie ik dat sommige traditionele DBA-vaardigheden zo langzaamaan minder belangrijk worden. Tot een bepaald punt. We hebben dit al een aantal keer gezien: bedrijven gaan naar de cloud en voegen opslag en vooral hardware toe zodra er prestatieproblemen optreden. Dat gebeurt zo een paar keer, totdat iemand schrikt van de maandelijkse factuur. Dan wordt er ineens geroepen: Waarom geven we zoveel uit aan cloudinfrastructuur voor onze database? Wat moeten we doen om onze cloud-uitgaven te verminderen?

Database-verwaarlozing

Met deze vraag hebben we een aantal klanten bijgestaan. Een van de dingen die we steeds zien terugkeren, is het gebrek aan onderhoud aan de database. Het opnieuw opbouwen van indexen, het terugwinnen van ruimte, het reorganiseren van tabellen, allemaal zaken die vaak worden verwaarloosd. Datatype-mismatches in query's is ook zo’n veel voorkomend verschijnsel dat bijdraagt aan slechte prestaties. Maar ook verbindingen tussen tabellen die op z’n zachtst gezegd niet ideaal zijn; we hebben dramatische prestatieverbeteringen gezien door gewoon een query te herschrijven. En dit zijn nog maar een paar simpele voorbeelden.

Klamme handjes

Zolang DbaaS-aanbiedingen de markt overstromen (denk aan AWS RDS en AWS Aurora, Azure SQL), blijven dergelijke prestatieproblemen bestaan. Een paar muisklikken, je creditcardnummer en hop, je database staat in de cloud. Maar als je organisatie groeit, heeft die ‘kleine’ database van 20 gigabyte voor je het weet een omvang van een terabyte. Zie dan maar eens dat je PostgreSQL-database blijft presteren, zonder klamme handjes te krijgen.

Meer beperkingen

En zo zitten er meer beperkingen aan het DbaaS-concept. Op een bare-metal PostgreSQL-server kan je een onbeperkt aantal extensies installeren, terwijl een DbaaS-instantie je daar ernstig in beperkt. Op een bare metal-instantie kun je een extensie installeren en experimenteren met hypothetische indexen en partities voor je de stap neemt om de index te maken of de tabel te partitioneren. Het partitioneren van een enorme tabel is geen sinecure en moet wel de tijd en moeite waard zijn. Makkelijk te doen op je bare-metal, maar niet ondersteund op de DbaaS-instanties.

Met uitsterven bedreigd

Helaas lijkt het alsof de traditionele DBA-vaardigheden langzaam aan het uitsterven zijn en dat is jammer. Want wie kan dan nog inhoudelijk je datamodel beoordelen en finetunen om daarmee je cloud-kosten te reduceren? Wie kan dan nog tijd besteden aan het bekijken van query's en datamodellen, en deze optimaliseren voor maximale prestaties? Wie kan dan nog tijd besteden aan het opstellen van een goed onderhoudsplan voor de databases? Wie kan dan nog de ontwikkelaars adviseren en coachen in best practices?

Hoe zit het met jouw DBA-vaardigheden?

Heb jij ze nog wel, die old skool DBA-vaardigheden? Of zou je deze vaardigheden heel graag willen ontwikkelen? Dan zijn we op zoek naar jou om ons team te versterken.

Is jouw database fit genoeg?

Neem vrijblijvend contact met ons op als je meer wilt weten over de mogelijkheden van een QuickScan of HealthCheck op jouw omgeving of als je je zorgen maakt om de performance van je databases. Wil je meer weten over de route naar effectief databasebeheer? Download dan hier onze whitepaper.

Andere relevante blogs over databases en cloud:

Databases in de cloud

Creatieve benadering partitioneringsanalyse RDS Postgres

Terug naar blogoverzicht

Répondre