PostgreSQL met CloudNativePG als dienst in het applicatiecluster van het team, in een afgeschermd deel dat het platform beheert: waar de database staat, hoe zij uit sjabloon en dienstbeschrijving ontstaat, wie wat doet en hoe de dienst groeit.
Nog niet bevestigd door een mens. Eigenaar: vdo89. Bron in de atlas
Een applicatieteam krijgt een relationele database met onderhoud, toegang per toepassing, bewaking, back-up en herstel
naar een gekozen tijdstip, vanuit dezelfde dienstbeschrijving als zijn applicatiecluster. De database draait in dat
cluster, in een eigen naamruimte die het platform beheert; het team gebruikt haar maar heeft er geen rechten.
Dit onderwerp beschrijft de plaats en het product, de levering uit sjabloon en dienstbeschrijving, de verdeling van
taken, wat het team zelf kiest en hoe de dienst groeit naar een gedeelde databasevoorziening per cel.
Waarom zo
Een database in het cluster van het team houdt de eerste levering eenvoudig en de database dicht bij de toepassing;
bij één afnemer is een aparte databasevoorziening met eigen netwerkpaden en scheiding tussen afnemers niet nodig.
Doordat het platform de objecten, de opslagtoegang en de beheerfunctie beheert, blijven versies, rollen en herstel in
één hand.
Het voorstel houdt het aanbod klein, met twee profielen, twee hoofdversies, één opslagklasse en geen eigen
instellingen per team, en laat alles uit sjabloon en dienstbeschrijving komen, zodat levering en herstel herhaalbaar
zijn.
De beheerde database is PostgreSQL, geleverd met CloudNativePG als beheerfunctie. In de eerste levering draait zij als dienst in het applicatiecluster van het team, dicht bij de toepassing.
Toelichting
Afgewezen: direct een gedeelde databasevoorziening per cel. Die vraagt een extra cluster, netwerkpaden tussen clusters en scheiding tussen afnemers, wat onnodig is zolang er één afnemer is.
Iedere database krijgt een eigen platformnaamruimte met de databasenaam volgens de naamgeving van het platform, bijvoorbeeld planning-ont-01, zonder teamrechten. Ieder applicatiecluster met een database krijgt via beleid van het vlootbeheer één beheerfunctie, clusterbreed in een eigen platformnaamruimte, met de Barman Cloud-plug-in in dezelfde naamruimte als de beheerfunctie.
Toelichting
Afnemers zijn zo gescheiden doordat iedere database in het applicatiecluster van haar eigen team staat; binnen het cluster scheiden naamruimte, netwerkbeleid en een eigen rol per toepassing. De capaciteit valt in het quotum van het team. De beheerfunctie hoort bij de standaardinrichting van ieder applicatiecluster met een database in de dienstbeschrijving, in een door de leverancier bevestigde versiecombinatie; de plug-in vereist cert-manager.
Het team heeft geen rechten in de databasenaamruimte, ook niet met een verhoging binnen de eigen dienst. Het ziet status, metingen en logboeken van de eigen database, zonder geheimen of opdrachtregel, en krijgt geen superuserwachtwoord. Het recht om Cluster- of DatabaseRole-objecten te wijzigen, waarmee rechten in de database zijn toe te kennen, blijft een beheerrecht dat apart wordt begrensd.
De databases van de basisdiensten gebruiken hetzelfde product, met drie exemplaren per database op lokale volumes en een back-up via de Barman Cloud-plug-in naar de objectgateway van de cel, over TLS 1.3, voor herstel binnen de cel. Zij horen bij het basisdienstencluster en vallen buiten deze dienst.
Iedere database komt met rollen, back-up, adres en netwerkbeleid uit het databasesjabloon in de opslagplaats Catalogus en de dienstbeschrijving in de opslagplaats Afnemers. Argo CD maakt de objecten en het vlootbeheer herstelt afwijkingen; een afwijking wordt gemeld en hersteld.
Toelichting
Zo zijn levering en herstel herhaalbaar. In versiebeheer staan de beheerfunctie per product (operators/<product>/), de databaseobjecten per cluster (clusters/<cluster>/) en de proeven (tests/).
Alleen de uitrolidentiteit van Argo CD schrijft Cluster-, DatabaseRole-, Database- en ObjectStore-objecten, omdat die objecten rechten in de database toekennen. Sjabloon en beleidspakket wijzigen met twee beoordelaars naast de auteur.
Het team kiest in de dienstbeschrijving het profiel, de versie, de grootte, de rollen, de verbindende toepassingen en de bewaartermijn van gegevens en back-ups; het herstelvenster volgt het profiel. Het vraagt herstel aan. Het wijzigt geen instellingen van PostgreSQL, installeert geen extensies buiten het beeld en beheert geen back-ups. Vergroten is een standaardwijziging; verkleinen gaat via een nieuwe database en overzetting.
Het platform onderhoudt de databasevoorziening, het team zijn gegevensstructuur en gegevens. Platformbeheer is eindverantwoordelijk en legt adressen, namen en de firewallregel per cel vast in het detailontwerp per cel en de inventaris. De diensteigenaar databases besluit over aanbod, dienstniveaus en vrijgave, het applicatieteam over zijn gegevens en het gedrag van zijn toepassing. Tot de overdracht voert het ontwikkelteam de uitvoerende taken uit.
Taak
Platformbeheer
Applicatieteam
Diensteigenaar databases
Andere domeinen
Databasesjabloon, beleidspakket en beheerfunctie
A/R
I
C
CISO-functie C
Aanbod: hoofdversies, varianten en dienstniveaus per profiel
R
I
A
CISO-functie C
Dienstbeschrijving: grootte, versie, rollen en verbindende toepassingen
C
A/R
I
—
Levering, wijziging en beëindiging via het vaste pad
A/R
C
I
Netwerkbeheer R (adres, naam en firewallregel)
Gegevensstructuur, gegevens en gedrag van de toepassing
C
A/R
I
—
Rollen en verbindingen in het geheimenbeheer
A/R
I
I
SOC I (audit)
Servercertificaten
R
I
I
PKI-beheer A (beleid en tussen-CA)
Back-up en archivering in de cel
A/R
I
I
Opslagbeheer C (objectopslag)
Kopie buiten de cel en onveranderbare kopie
C
I
I
Back-upbeheer A/R
Herstel naar tijdstip
A/R
R (aanvraag en goedkeuring)
I
—
Kleine updates en overgang van de beheerfunctie
A/R
I
I
—
Nieuwe hoofdversie
A/R
R (plan, proef en akkoord)
C
—
Bewaking, meldingen en capaciteit
A/R
I (eigen meldingen)
I
Opslagbeheer C
Beveiligingslogboeken en detectie
R (logbron)
I
I
SOC A/R
Overgang van een bestaande database
R
A
C
Eigenaar van de bron C
Vrijgave voor reguliere en bedrijfskritische productie
R
I
A
CISO-functie C
Toelichting
R is uitvoerend, A eindverantwoordelijk, C geraadpleegd en I geïnformeerd.
De omvang van de beheerde database bij de eerste levering en de beoogde groei.
Kenmerk
Eerste levering
Groei
Databases
Die van het eerste team, bij ontwikkelen en beproeven, met een koppeling naar een bestaand systeem; de proefdatabases in het cluster van de testtoepassing van het eerste team, in de proefgroep van cel 1
Een of meer per applicatiecluster, met een naam volgens de naamgeving van het platform; in groeipadstap 3 meer teams en de overgang van een representatieve bestaande toepassing
Exemplaren
1 bij ontwikkelen en beproeven
3 in reguliere productie, na de vrijgave; in bedrijfskritische productie daarnaast een replicacluster in de andere cel
Grootte
Uit de dienstbeschrijving, ten hoogste 100 GB
Groter alleen met een gemeten hersteltijd
Versies
PostgreSQL 17 en 18; ‘standaard’ is 18
Een nieuwe hoofdversie na toelating en proef
Herstelvenster
7 dagen bij ontwikkelen en beproeven, 30 dagen in reguliere productie
Bij bedrijfskritische productie volgens de hersteleisen van de dienst
Afnemers
Eén team
Meer teams; databases die meerdere clusters of virtuele servers delen, in de gedeelde databasevoorziening per cel
Databases die meerdere clusters of virtuele servers delen, krijgen vanaf groeipadstap 3 een gedeelde databasevoorziening per cel: een gehost cluster per cel en per profiel dat haar vraagt, onder platformbeheer, in het routeringsdomein van dat profiel en met hetzelfde sjabloon, op het clusterbeheer buiten de tien gehoste besturingen van de eerste levering. Afnemers verbinden via gedeclareerde verbindingen, en de voorziening heeft eigen capaciteitsbeheer.
Toelichting
De overgang daarheen is een geplande migratie met het team: de dienstbeschrijving blijft gelijk, maar latentie, isolatie, back-up en aansluitpunt veranderen. De bewijsset wordt op die voorziening herhaald.
De dienst heeft weinig varianten: twee profielen, twee hoofdversies, één opslagklasse en geen eigen instellingen per team. Database, rollen, back-up en herstel komen uit sjabloon en dienstbeschrijving in versiebeheer.