1 open besluit1414 voorstellen

Onderwerp

De beheerde database als dienst

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

Domein
Volgt uit
Functies
Producten
Verwant

Wat het is

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.

Uitspraken

1 vastgesteld13 voorstellen

Alle 13 voorstellen vaststellen

Plaats en product

VastgesteldOntwerpbesluit#

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.

VoorstelOntwerpbesluit#

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.

VoorstelRegel#

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.

Toelichting

Controle: een negatieve proef.

VoorstelUitgangspunt#

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.

Toelichting

Hun productiebescherming is de onveranderbare kopie; de inrichting staat bij basisdiensten en startketen.

Levering uit sjabloon

VoorstelRegel#

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/).

VoorstelRegel#

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.

VoorstelRegel#

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.

VoorstelWaarde#

De interfaces van de beheerde database, met hun isolatie en grenzen.

InterfaceAfnemerIsolatieGrens of quotumBijzonderheden
DienstbeschrijvingTeameigenaarPer team; beleidstoetsingProfiel, versie, grootte tot 100 GB, rollenNoemt het applicatiecluster; reguliere productie na de vrijgave
DatabaseverbindingToepassingen uit de dienstbeschrijvingNetwerkbeleid; eigen rol per toepassingmax_connections uit het sjabloonVia de databasenaam, alleen de schrijvende kant
Tijdelijke inloggegevensServiceaccount van de toepassingKubernetes-authenticatierol per serviceaccount en naamruimte; beleid per pad1 uur, verlengbaar tot 24 uurGeheimenkoppeling in de naamruimte van de toepassing
StructuurwijzigingMigratietaak van het teamEigen technische identiteit, lid van ‘eigenaar’1 uur per uitvoeringIn reguliere productie alleen uit een beoordeeld wijzigingsvoorstel
Herstel naar tijdstipEigenaarAfgeschermde naamruimte zonder verbinding met de toepassingHerstelvenster; één herstelexemplaar tegelijkProductieherstel na goedkeuring
InzageTeamAlleen de eigen database, zonder geheimen—Portaal en bewaking
Logische replicatieEigenaar van een bestaande databaseStatische rol; gedeclareerde verbindingTot de omschakelingAlleen voor een overgang

Taken en eigenaarschap

VoorstelWaarde#

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.

TaakPlatformbeheerApplicatieteamDiensteigenaar databasesAndere domeinen
Databasesjabloon, beleidspakket en beheerfunctieA/RICCISO-functie C
Aanbod: hoofdversies, varianten en dienstniveaus per profielRIACISO-functie C
Dienstbeschrijving: grootte, versie, rollen en verbindende toepassingenCA/RI—
Levering, wijziging en beëindiging via het vaste padA/RCINetwerkbeheer R (adres, naam en firewallregel)
Gegevensstructuur, gegevens en gedrag van de toepassingCA/RI—
Rollen en verbindingen in het geheimenbeheerA/RIISOC I (audit)
ServercertificatenRIIPKI-beheer A (beleid en tussen-CA)
Back-up en archivering in de celA/RIIOpslagbeheer C (objectopslag)
Kopie buiten de cel en onveranderbare kopieCIIBack-upbeheer A/R
Herstel naar tijdstipA/RR (aanvraag en goedkeuring)I—
Kleine updates en overgang van de beheerfunctieA/RII—
Nieuwe hoofdversieA/RR (plan, proef en akkoord)C—
Bewaking, meldingen en capaciteitA/RI (eigen meldingen)IOpslagbeheer C
Beveiligingslogboeken en detectieR (logbron)IISOC A/R
Overgang van een bestaande databaseRACEigenaar van de bron C
Vrijgave voor reguliere en bedrijfskritische productieRIACISO-functie C
Toelichting

R is uitvoerend, A eindverantwoordelijk, C geraadpleegd en I geïnformeerd.

Omvang en groei

VoorstelWaarde#

De omvang van de beheerde database bij de eerste levering en de beoogde groei.

KenmerkEerste leveringGroei
DatabasesDie 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 1Een 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
Exemplaren1 bij ontwikkelen en beproeven3 in reguliere productie, na de vrijgave; in bedrijfskritische productie daarnaast een replicacluster in de andere cel
GrootteUit de dienstbeschrijving, ten hoogste 100 GBGroter alleen met een gemeten hersteltijd
VersiesPostgreSQL 17 en 18; ‘standaard’ is 18Een nieuwe hoofdversie na toelating en proef
Herstelvenster7 dagen bij ontwikkelen en beproeven, 30 dagen in reguliere productieBij bedrijfskritische productie volgens de hersteleisen van de dienst
AfnemersEén teamMeer teams; databases die meerdere clusters of virtuele servers delen, in de gedeelde databasevoorziening per cel
VoorstelOntwerpbesluit#

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.

VoorstelWerking#

De dienst komt in fasen, afgestemd op het groeipad.

FaseInhoudGroeipadstapVoorwaarde
LeeromgevingProeven vooraf, zonder gegevens van RWS1De gekozen productversies
Proefgroep in cel 1Beheerfunctie en databasesjabloon; bewijsset voor ontwikkelen en beproeven en voor reguliere productie1Standaardinrichting van de applicatieclusters gereed; objectopslag, geheimenbeheer en onveranderbare kopie beschikbaar
Eerste afnemerDatabase bij ontwikkelen en beproeven voor het eerste team, met een koppeling1Acceptatie met de acceptatiecriteria van de stapel, anders de terugvaloptie
Vrijgave reguliere productieDrie exemplaren; herstel uit de kopie buiten de cel beproefd2Vrijgave voor reguliere productie; eigen bewakingsvoorziening met vergrendelde logopslag in bedrijf; dreigingsmodel
Cel 2 en bedrijfskritische productieDezelfde code in cel 2; replicacluster in de andere cel; overname en terugkeer beproefd, ook zonder gezonde cel2Vrijgave voor bedrijfskritische productie; replicacluster aangetoond in de proef van herstel na een aanval
Meer teams en overgangOvergang van bestaande databases uit het databasehotel; gedeelde databasevoorziening per cel3Gedeelde voorziening ingericht; bewijsset op die voorziening herhaald
VoorstelUitgangspunt#

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.

Verwijzen hiernaar

Onderwerpen 4