1 open besluit1414 voorstellen

Onderwerp

Exemplaren, overname en dienstniveaus

Bij ontwikkelen en beproeven heeft een database één exemplaar, in reguliere productie drie op verschillende werkers met automatische overname en uitsluiting van het oude schrijvende exemplaar. Met de dienstniveaus per profiel, de opslag, het gedrag bij uitval en de capaciteit in het quotum van het team.

Nog niet bevestigd door een mens. Eigenaar: vdo89. Bron in de atlas

Domein
Volgt uit
Functies
Producten
Verwant

Wat het is

Het dienstprofiel bepaalt hoeveel exemplaren een database heeft. Bij ontwikkelen en beproeven is dat er één, dat na uitval opnieuw start; in reguliere productie zijn het er drie op verschillende werkers, met één schrijvend exemplaar en automatische overname. Voor bedrijfskritische productie komt daar een replicacluster in de andere cel bij.

Dit onderwerp beschrijft de overname, het gedrag bij uitval van ieder onderdeel eronder, de dienstniveaus per profiel en de capaciteit die een database in het quotum van het team inneemt.

Waarom zo

De opslag beschermt de gegevens, niet de beschikbaarheid: met één exemplaar onderbreekt iedere uitval, vervanging of clusterupdate van een werker de database. Drie exemplaren op verschillende werkers houden de dienst in reguliere productie beschikbaar, maar delen nog steeds het opslagcluster van de cel.

Het voorstel kiest één schrijvend exemplaar met asynchrone replicatie en een begrensd herstelpunt, omdat synchrone replicatie iedere schrijfopdracht laat wachten en de norm ook zo wordt gehaald. De normen gelden voor het platform; de dienstafspraak voor een toepassing volgt uit de bedrijfsimpactanalyse.

Uitspraken

2 vastgesteld15 voorstellen

Alle 15 voorstellen vaststellen

Exemplaren en overname

VoorstelOntwerpbesluit#

Een database bij ontwikkelen en beproeven heeft één exemplaar. Een database in reguliere productie heeft drie exemplaren op drie verschillende werkers (podAntiAffinityType required), met een apart volume voor het transactielogboek en automatische overname binnen het cluster. Dat vraagt ten minste drie werkers en drie keer de opslag.

Toelichting

Afgewezen voor reguliere productie: één exemplaar dat na uitval opnieuw start, omdat de opslag wel de gegevens beschermt maar niet de beschikbaarheid. Controle: beleidstoetsing en de uitvalproef.

VoorstelOntwerpbesluit#

Er is één schrijvend exemplaar. De andere exemplaren volgen met asynchrone streaming replicatie, met de certificaten van de beheerfunctie; archive_timeout van 5 minuten begrenst het herstelpunt ook bij verlies van alle exemplaren. Het verlies bij overname is het niet gerepliceerde deel: een aanvaard restrisico, gemeten en begrensd door de melding bij 60 seconden replicatievertraging.

Toelichting

Afgewezen: synchrone replicatie op een quorum van replica’s. Iedere schrijfopdracht wacht dan op een replica, en zonder replica’s stopt het schrijven of valt de database terug op asynchroon; de norm van 5 minuten wordt ook zo gehaald. Synchroon met verplichte bevestiging door één replica blijft de terugvaloptie, en de route voor een dienst zonder toegestaan verlies, via een wijzigingsvoorstel. Waar het beleid van RWS letterlijk volledig synchrone replicatie zonder gegevensverlies vraagt, vult één schrijvend exemplaar met een begrensd herstelpunt dat beleid in.

VoorstelRegel#

Valt in reguliere productie het schrijvende exemplaar uit, dan neemt de meest bijgewerkte replica automatisch over en schrijft het oude exemplaar niet meer, ook niet na een netwerkscheiding. De dienst voor de schrijvende kant volgt het nieuwe schrijvende exemplaar, en het oude komt terug als replica.

Toelichting

Dat de beheerfunctie een schrijvend exemplaar stopt dat de besturing en de andere exemplaren niet meer bereikt, is een acceptatiecriterium; terugvaloptie is synchrone replicatie met verplichte bevestiging door één replica, zodat een afgezonderd exemplaar geen schrijfopdracht afrondt. Deze automatische overname binnen één databasecluster staat los van de gecontroleerde overname van een bedrijfskritische dienst tussen de cellen, die met uitsluiting van de oude kant begint. Controle: de uitvalproef.

VoorstelOntwerpbesluit#

Een database in bedrijfskritische productie krijgt daarnaast een replicacluster van CloudNativePG in de andere cel. Replicatie naar de andere cel bestaat alleen daarvoor, over een gedeclareerde verbinding: een eigen virtueel adres op de verkeersverdeling van de cel met het schrijvende exemplaar geeft TCP 5432 door naar het databaseadres, en TLS eindigt bij de database. Overname gaat volgens het draaiboek, na uitsluiting.

Toelichting

Er is geen eis aan de hoofdversie. De werking wordt aangetoond in de proef van herstel na een aanval, vóór de vrijgave voor bedrijfskritische productie.

VoorstelUitgangspunt#

De herstelafspraak voor bedrijfskritische productie volgt de bedrijfsimpactanalyse; de normen van reguliere productie gelden daar niet vanzelf. De dienstbeschrijving legt per dienst schrijfautoriteit, herstelpunt en hersteltijd vast. De reactie op een melding is dan binnen 30 minuten, 24 uur per dag en 7 dagen per week, en het herstel begint binnen 1 uur.

Opslag

VoorstelWaarde#

De volumes gebruiken de opslagklasse normaal-blok (prestatielaag ‘normaal’) uit de rechtstreekse koppeling van het applicatiecluster met het opslagcluster, als ReadWriteOnce op RBD. In reguliere productie heeft iedere database daarnaast een apart volume voor het transactielogboek (walStorage). De exemplaren delen het opslagcluster; de scheiding tussen hen loopt via de werkers.

Toelichting

De databasevolumes vallen buiten de volumeback-up van het cluster; de database heeft haar eigen back-up.

Gedrag bij uitval

VoorstelUitgangspunt#

De database erft de foutdomeinen eronder: drie kopieën in drie rekken op het opslagcluster, werkers die over werkerknooppunten en rekken zijn gespreid, en de gehoste besturing op het clusterbeheer. Drie PostgreSQL-exemplaren beschermen dus niet tegen verlies van het opslagcluster of van de hele cel.

VoorstelWerking#

Per onderdeel liggen de plaatsing, het gedrag bij uitval en het herstel van de database vast.

Uitval vanExemplaren en plaatsingGedragHerstel
Een replica (reguliere productie)Twee replica’s op eigen werkersGeen onderbrekingDe beheerfunctie start het exemplaar opnieuw met zijn volume.
Het schrijvende exemplaar (reguliere productie)Eén van de drieOvername door de meest bijgewerkte replica; verbindingen breken af; verlies alleen van het niet gerepliceerde deelHet oude exemplaar komt terug als replica; de toepassing verbindt opnieuw.
Het exemplaar of zijn werker (ontwikkelen en beproeven)EénDe database is onbereikbaarStart op een andere werker met hetzelfde volume; geen verlies.
Een werkerknooppunt of rekWerkers als virtuele machinesReguliere productie gaat door zolang er een exemplaar overblijftDe werkervirtualisatie start de werkers elders.
Gehoste besturing of beheerfunctieBesturing op het clusterbeheer; één beheerfunctie per clusterDe database werkt door, zonder overname of wijzigingHerstel van de gehoste besturing; de beheerfunctie start elders.
Het opslagclusterEén per celLezen en schrijven stoppen; bij verlies van één rek nietStart uit de volumes, anders uit de back-up.
De objecttoegangObjectgateways per realm in ten minste twee rekkenArchivering stopt; het transactielogboek groeit op het volumeMelding; daarna archiveert de plug-in de achterstand.
Het geheimenbeheerDrie exemplaren op het basisdienstenclusterLopende verbindingen werken door; nieuwe aanmeldingen slagen tot de inloggegevens verlopen, 20 minuten tot 1 uur na de laatste verlengingHerstel van het geheimenbeheer gaat voor.
De celOntwikkelen en beproeven en reguliere productie in één celAlle exemplaren vallen uitHerstel uit de kopie buiten de cel na controle in de herstelomgeving, daar op de gastklasse van de werkervirtualisatie, met de achterstand van die kopie (circa 1 uur) als herstelpunt; bedrijfskritische productie via overname door het replicacluster; bij aantasting van het beheer via de herstelkern.
VoorstelWerking#

Een database start zodra applicatiecluster, opslagkoppeling en beheerfunctie werken; het geheimenbeheer is pas nodig voor de toepassingen. Bij herstel van een cel is de volgorde binnen de dienst: applicatiecluster, beheerfunctie en beeldcatalogus, de database uit haar volumes of de back-up, certificaat, adres en naam, verbinding met het geheimenbeheer, en daarna de toepassingen. Na herstel uit een back-up krijgt het beheeraccount een nieuw wachtwoord en worden alle leases ingetrokken.

Dienstniveaus

VoorstelWaarde#

De dienstniveaus van de beheerde database per profiel. In reguliere productie is de overname binnen 2 minuten en de overschakeling bij onderhoud binnen 1 minuut; er is geen percentagenorm, wel een maandelijkse meting van de beschikbaarheid van de schrijvende kant, zoals per cluster. De normen gelden voor het platform en zijn toetsbaar in de uitvalproef; de dienstafspraak voor de volledige toepassing volgt uit de bedrijfsimpactanalyse.

EigenschapOntwikkelen en beproevenReguliere productieMeting en bewijs
Exemplaren en overname1; na uitval opnieuw gestart3; automatische overname met uitsluiting; onderbreking ten hoogste 2 minutenUitvalproef
Herstelpunt binnen de celIeder tijdstip in het venster; geen norm, want opnieuw op te bouwenTen hoogste 5 minuten bij herstel; bij overname het niet gerepliceerde deelHerstelproef; replicatievertraging
HersteltijdOpnieuw op te bouwenBinnen 4 uur voor een database tot 100 GBHerstelproef per kwartaal
Herstelvenster7 dagen30 dagenBack-upoverzicht
Herstelpunt na verlies van de celAchterstand van de kopie buiten de cel, circa 1 uurIdemGemeten per database; melding boven 2 uur
Onderbreking bij onderhoudKorte onderbreking bij de herstartOverschakeling van ten hoogste 1 minuut; verbindingen worden opnieuw opgebouwdGemeten in de proef
BeschikbaarheidGeen normGeen percentagenorm, wel de normen hierboven; gemeten per maandBereikbaarheid van de schrijvende kant
Reactie op een meldingBinnen 8 werkuren, tijdens kantoortijdBinnen 1 uur tijdens kantoortijd; herstel begint binnen 4 uurReactietijd vastgelegd; escalatie volgens de vaste route
VoorstelUitgangspunt#

In reguliere productie wacht een melding buiten kantoortijd tot kantoortijd. Dat is een aanvaard restrisico, begrensd door de automatische overname met uitsluiting; wie meer vraagt, kiest bedrijfskritische productie.

Capaciteit

VoorstelRegel#

Een database is in de eerste levering ten hoogste 100 GB, omdat de hersteltijdnorm tot die grootte geldt; groter kan alleen als de dienstbeschrijving een gemeten hersteltijd noemt. De beleidstoetsing controleert de grens.

VoorstelRegel#

In het quotum van het team tellen per exemplaar processor, geheugen en datavolume, in reguliere productie ook het logboekvolume, plus één herstelexemplaar ter grootte van de grootste database van het cluster, zodat herstel niet op capaciteit wacht. Het gebruik wordt per database gerapporteerd. De volumes tellen mee in de uitgegeven quota van het opslagcluster, die samen onder 75 procent van de bruikbare capaciteit blijven.

Toelichting

Controle: beleidstoetsing en de capaciteitsrapportage.

VoorstelRegel#

Database-exemplaren draaien met het striktste beveiligingsprofiel en met limieten voor processor en geheugen; in reguliere productie zijn de requests gelijk aan de limieten. Dat geeft scheiding en voorspelbare prestaties.

VoorstelUitgangspunt#

De dienst groeit met de applicatieclusters. De grenzen zijn de capaciteit van werkervirtualisatie en opslagcluster, en de /26 van het cluster, die werkers, ingangsadres en databaseadressen delen. De groeiroute voor een zware schrijfbelasting is de prestatielaag ‘snel’, als werklastklasse met eigen capaciteitsbeleid.

Verder verkennen

Dit concept in de atlas

25 verwijzingen