2 open besluiten1414 voorstellen

Onderwerp

Opbouw van het platform

Eén vlootbeheer boven zelfstandige beheercellen, één per datacenter, met vier eigen platformclusters per cel. Wat de cellen delen, is vlootbreed of staat buiten de cellen, met eigen maatregelen en een eigen herstelpad.

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

Domein
Volgt uit
Functies
Producten
Verwant

Wat het is

Het platform bestaat uit één vlootbeheer boven zelfstandige beheercellen. Iedere cel heeft vier eigen platformclusters: clusterbeheer, werkervirtualisatie, opslagcluster en basisdienstencluster. Ieder datacenter heeft één cel; de eerste levering bouwt beheercel 1 in AM4, groeipadstap 2 beheercel 2 in AM2.

Buiten de cellen staan het vlootbeheer en de herstelvoorzieningen. Wat de cellen verder delen, zijn vlootbrede rollen en bestaande RWS-voorzieningen, elk met een vastgelegde plaats per cel en een eigen herstelpad.

Waarom zo

De cel begrenst uitval: een storing, fout of aanval blijft binnen één cel, en een bedrijfskritische dienst kan naar de andere cel. Iedere scheiding kost capaciteit en beheer; daarom staat bij iedere keuze in de opbouw waarom een eenvoudiger alternatief is afgewezen.

Vlootbrede rollen kunnen wel beide cellen raken; daarvoor gelden eigen maatregelen en een eigen beproeving. De plaatsing van de vlootbrede voorzieningen en het ontstaan van een cel uit dezelfde code maken de hoofdlijn concreet; het zijn voorstellen die op een besluit van de architect wachten.

Uitspraken

15 vastgesteld8 voorstellen

Alle 8 voorstellen vaststellen

Vlootbeheer boven zelfstandige cellen

VastgesteldOntwerpbesluit#

Het platform bestaat uit beheercellen onder één vlootbeheer. Iedere cel heeft een eigen clusterbeheer, werkervirtualisatie, opslagcluster en basisdienstencluster, en wordt afzonderlijk onderhouden en hersteld, zodat een storing, fout of aanval binnen de cel blijft.

Toelichting

Gevolg: een dienst in het profiel bedrijfskritische productie vraagt twee cellen, met het tweede exemplaar van de dienst in de andere cel.

VastgesteldOntwerpbesluit#

In de eerste implementatie heeft ieder datacenter één beheercel: de eerste levering bouwt beheercel 1 in AM4, groeipadstap 2 beheercel 2 in AM2. Cel en datacenter vallen zo samen als storingsgebied: uitval van een datacenter is uitval van één cel, en de overname van een bedrijfskritische dienst is overname naar het andere datacenter, per dienst voorbereid en beproefd.

Toelichting

Afgewezen: één cel over beide datacenters heen. Die stelt aanvullende harde eisen aan verbinding en opslag en vraagt een afzonderlijk architectuurbesluit.

VastgesteldUitgangspunt#

Een cel is niet aan een locatie gebonden: meer cellen per datacenter of een cel elders blijven mogelijk zonder ander ontwerp. De plaatsing van iedere volgende cel wordt beoordeeld op herstel en gedeelde afhankelijkheden, waaronder verstoringen die beide Amsterdamse locaties tegelijk treffen; die vangen de cellen in AM4 en AM2 niet op. Een nieuwe cel, een andere plaats voor een cel of een cel over twee datacenters vraagt daarom een ontwerpbesluit over herstel en gedeelde afhankelijkheden.

Toelichting

De architect beoordeelt dat ontwerpbesluit.

Clusters en totaalbeeld

VastgesteldUitgangspunt#

Het platform kent vijf soorten platformclusters, elk met een eigen kerntaak: het vlootbeheer voor de hele vloot, buiten de cellen, en per cel het clusterbeheer, de werkervirtualisatie, het opslagcluster en het basisdienstencluster. Hun servers en capaciteit liggen vast bij de clusters zelf.

ClusterKerntaakBereik
VlootbeheerGezamenlijk beleid, versieoverzicht, uitrolvolgorde en samengevatte metingen van alle clusters, met de standaardinrichting die het op ieder OpenShift-cluster afdwingt.Eén cluster voor de hele vloot, buiten de cellen; gebruikt in de eerste levering nog het opslagcluster en de toegangsvoorziening van cel 1. Het opslagcluster valt erbuiten.
ClusterbeheerGehoste besturing van de applicatieclusters, per applicatiecluster één besturing als containers.Per cel. Uitval raakt de besturing van alle applicatieclusters van de cel; hun werklasten draaien door.
WerkervirtualisatieRekenkracht voor de toepassingen: virtuele werkers en virtuele servers, per cluster in een eigen netwerk.Per cel; fysieke werkers zijn een variant.
OpslagclusterOpslag voor alle clusters van de cel, met per cluster een eigen afgeschermde ruimte en eigen sleutels.Per cel, op eigen servers verdeeld over de rekken, met het rek als foutdomein; bouw en beheer door opslagbeheer van RWS.
BasisdienstenclusterZelfstandig werken en herstellen van de cel.Per cel een eigen compact cluster van drie servers, met reserve voor uitval van één server; RWS-brede basisdiensten draaien vanaf groeipadstap 2 in ten minste twee cellen.
VastgesteldUitgangspunt#

In de doelsituatie met twee cellen, vanaf groeipadstap 2, staat het vlootbeheer boven de twee beheercellen. Per cel draaien de clusters, virtuele machines, databases en het opslagcluster, met daaromheen de netwerk-, beveiligings-, identiteits- en herstelvoorzieningen. De onveranderbare kopie en de herstelkern staan buiten de cellen; het tweede exemplaar van een bedrijfskritische dienst staat in de andere cel.

Toelichting

Dit beeld toont functies en beheerrelaties, geen opstartvolgorde of afhankelijkheden; die staan in de opstart- en herstelvolgorde. De aansluiting op het SOC hoort bij de eerste levering.

Waarom deze opbouw en niet eenvoudiger

VastgesteldOntwerpbesluit#

Het vlootbeheer staat op een eigen compact cluster buiten de cellen: één overzicht en één uitrol voor alle cellen, en bij uitval van het vlootbeheer draaien de clusters door. In de eerste levering gebruikt het vlootcluster nog het opslagcluster, de toegangsvoorziening en de basisdiensten van cel 1; verlies van cel 1 raakt dan ook het vlootbeheer.

Toelichting

Afgewezen: het vlootbeheer op het basisdienstencluster van cel 1. Dat maakt het beheer van de hele vloot blijvend afhankelijk van die ene cel.

VastgesteldOntwerpbesluit#

De besturing van applicatieclusters is gehoste besturing op het clusterbeheer: ieder team krijgt een eigen cluster met een eigen versie en onderhoudsvenster binnen de ondersteunde versiecombinaties, tegen beperkte beheerlast. Een gehoste besturing vraagt een fractie van de middelen van drie eigen besturingsknooppunten.

Toelichting

Afgewezen: één groot gedeeld cluster met een naamruimte per team. Dat scheidt teams minder scherp en dwingt hen tot dezelfde versie; die vorm volgt in groeipadstap 4 wel als applicatieomgeving voor containers.

VastgesteldOntwerpbesluit#

Werkers draaien als virtuele machines op een eigen cluster voor werkervirtualisatie. Die virtualisatie is zelf een cluster van het platform, met hetzelfde vlootbeheer, dezelfde toelatingscontrole voor de werkerbeelden en dezelfde back-up, en is uit code te herbouwen; werkers worden vervangen, niet ter plaatse bijgewerkt.

Toelichting

Afgewezen: werkers op de bestaande virtualisatie van RWS. Die bindt het platform aan een voorziening die wordt afgebouwd en splitst beheer en herstel over twee werelden.

VastgesteldOntwerpbesluit#

Iedere cel heeft een apart opslagcluster op eigen servers. De opslag staat los van de clusters die haar gebruiken en wordt afzonderlijk onderhouden en hersteld; verlies van één server of een heel rek uit een gezonde toestand kost geen gegevens.

Toelichting

Afgewezen: opslag in de clusters zelf. Die verstrengelt onderhoud en herstel van opslag en cluster, en versnippert capaciteit en beheer over de circa tweehonderd clusters die één opslagcluster kan bedienen. Het ontwerp van het opslagcluster staat in het domein Opslag & foutdomeinen.

VastgesteldOntwerpbesluit#

De basisdiensten staan per cel op een eigen compact cluster, zodat een cel zelfstandig werkt en herstelt. Basisdiensten die hun gegevens zelf repliceren, gebruiken lokale opslag, zodat het geheimenbeheer bruikbaar blijft bij herstel van het opslagcluster, zolang de ontgrendelsleutel buiten de cel, de naam- en tijdvoorziening en de toegang beschikbaar zijn.

Toelichting

Afgewezen: basisdiensten op het vlootcluster staan buiten de cel; op het clusterbeheer delen zij de levenscyclus van het cluster dat alle applicatieclusters bestuurt; als virtuele machines op de bestaande virtualisatie vallen zij buiten vlootbeheer, toelatingscontrole en herbouw uit code.

VastgesteldOntwerpbesluit#

Herstel loopt via de back-upvoorziening van RWS. De herstelomgeving wordt op afroep uit code opgebouwd met capaciteit uit de reserve van de andere cel en daarna weer verwijderd; die reserve moet dan ook de overname van bedrijfskritische diensten dragen.

Toelichting

Afgewezen: een eigen herstelcluster met eigen opslag buiten de cellen. Dat is het meest afgeschermd, maar vraagt hardware die er niet is. Een tweede kopie in de andere cel onder dezelfde beheerrechten beschermt tegen uitval, niet tegen een aanvaller of fout met platformrechten die beide cellen bereikt.

VastgesteldOntwerpbesluit#

Firewalls zijn de enige overgang tussen zones en verkeer is standaard dicht. Een team declareert een verbinding en het platform legt haar aan; de zonecontrole toetst haar vooraf aan de zonematrix, zodat geen gedeclareerde verbinding buiten die matrix om ontstaat. Routes en netwerkbeleid dwingen dit ook af; secundaire interfaces en het hostnetwerk vallen buiten het netwerkbeleid en mogen alleen als de dienstbeschrijving ze vermeldt.

Toelichting

Afgewezen: open verkeer binnen het cluster met een firewallaanvraag per verbinding. Dat maakt van iedere koppeling een ticket, juist het knelpunt dat het platform wil wegnemen, en laat verkeer tussen naamruimten ongecontroleerd. Zones en verbindingen staan in het domein Netwerk, ingang & zones.

Wat vlootbreed is en buiten de cellen staat

VastgesteldUitgangspunt#

Vlootbrede rollen en gedeelde voorzieningen kunnen wel beide cellen raken: het vlootbeheer, het versiebeheer, de ondertekening, RWS-HR en de directory als bronnen van het identiteitsbeheer, de certificaatvoorziening (PKI), de automatisering, de onderlaag van het netwerk en externe diensten. Daarvoor gelden aparte maatregelen, waaronder een beproeving van een gecompromitteerd vlootbeheer in de toets herstel na een aanval. Toegangsvoorziening en identiteitsbeheer zelf zijn per cel.

VoorstelUitgangspunt#

Identiteitsbronnen, naam- en tijddiensten, de PKI, het SOC en de back-upvoorziening zijn bestaande RWS-voorzieningen. Zij worden via afspraken met hun eigenaren onderdeel van de levering: per voorziening liggen het koppelvlak, het beheer en het bewijs vast. Zo’n gedeelde voorziening kan beide cellen raken; herhaalbare bouw uit dezelfde code bewijst daarom geen onafhankelijkheid.

VoorstelOntwerpbesluit#

Van iedere platformfunctie met één exemplaar voor de vloot staat het leidende exemplaar in cel 1: het vlootcluster, het versiebeheer en het bouw- en portaalcluster. Na verlies van cel 1 worden zij in cel 2 hersteld, niet dubbel uitgevoerd; tot dat herstel is er geen bouw, vrijgave of aanvraagroute. Van een basisdienst met een vlootbrede rol schrijft één cel; de andere wordt pas na uitsluiting van de eerste leidend.

Toelichting

Afgewezen: een tweede actief vlootcluster in cel 2. Dat geeft twee hubs voor dezelfde clusters, dubbel vlootbeheer en extra servers voor een voorziening waarvan uitval de clusters niet stillegt. Het past alsnog als de gemeten hersteltijd niet bij het continuïteitsplan past.

VoorstelWaarde#

De vlootbrede voorzieningen en basisdiensten staan als volgt over de cellen, in de eerste levering, vanaf groeipadstap 2 en bij verlies van cel 1.

VoorzieningEerste leveringVanaf groeipadstap 2Bij verlies van cel 1
Vlootbeheer, met centrale beveiligingsbewaking en ondertekenvoorzieningVlootcluster vl-01 in de rekken van AM4, op opslag, toegangsvoorziening en basisdiensten van cel 1Kopie van zijn back-up in cel 2Clusters van cel 2 draaien door; herstel na uitsluiting van vl-01 op een hersteldoel in cel 2
Versiebeheer van het platformEén exemplaar voor de vloot op het basisdienstencluster van cel 1Schrijvend in cel 1; in cel 2 staan inrichting en capaciteit klaarOpgebouwd in cel 2 uit de onveranderbare kopie; tot dan wijzigen alleen via de noodroute
Toegangsvoorziening en identiteitsbeheerPer cel; cel 1 kent de vlootbrede rollen toe en bedient de aanmelding van het vlootbeheerEigen exemplaar in cel 2 uit dezelfde code en RWS-bronnen; houdt de vlootbrede rollen bij uit de code, zonder replicatieCel 2 wordt leidend voor vlootbrede rollen en aanmelding na uitsluiting van cel 1
ContainerregistryIn cel 1Eigen exemplaar in cel 2; vrijgegeven inhoud gerepliceerdCel 2 levert de vrijgegeven inhoud; een nieuwe vrijgave wacht op bouwcluster en ondertekening
Overige basisdienstenPer celEigen exemplaar in cel 2Cel 2 werkt met haar eigen exemplaren
Bouwcluster en portaalclusterGehoste clusters in cel 1 (bouw-prd-c1-01 en portaal-prd-c1-01)In cel 1Nieuw uit code in cel 2, gegevens uit de back-up; tot dan geen bouw en geen aanvraagroute
Eigen bewakingsvoorzieningGeenDrie eigen servers per celDie van cel 2 werkt door
Herstelomgeving; onveranderbare kopie en herstelkernHerstelomgeving op afroep op de reserve van cel 1; kopie en herstelkern buiten de cellenHerstelomgeving in de andere cel dan de getroffenHerstel van cel 1 in cel 2 uit kopie en herstelkern
Ontgrendeling van het geheimenbeheerHardwaresleutelmodule van PKI-beheer; terugval: drie van de vijf sleuteldelen buiten de celTerugval ook via de transit-engine van de andere celCel 2 via de module, anders met haar sleuteldelen
Naam, tijd, interne PKI met tussen-CA ‘vloot’, identiteitsbronnen (RWS-HR en directory), SOCBestaande RWS-voorzieningenOngewijzigdNiet geraakt, tenzij de oorzaak buiten de cellen ligt
VoorstelUitgangspunt#

Het vlootcluster staat logisch buiten de cellen, maar fysiek in de rekken, op de fabric en aan de stroom van AM4. Verlies van AM4 is daarom ook verlies van het vlootbeheer.

VoorstelOntwerpbesluit#

Het vlootbeheer beheert alle OpenShift-clusters van het platform, maar niet het opslagcluster, de eigen bewakingsvoorziening en het bestaande AI-cluster. Dat AI-cluster is niet uit de code van het platform opgebouwd: het blijft in gebruik met eigen beheer, zonder import, plaats op het clusterbeheer of vlootbrede rechten, en sluit na de overgang van AM2 aan op de fabric en het opslagcluster van cel 2.

Toelichting

Nieuwe AI-capaciteit voor Datawetenschap en AI komt vanaf groeipadstap 3 op GPU-knooppunten in de werkervirtualisatie.

Eén code, meer cellen

VoorstelOntwerpbesluit#

Cel 2 ontstaat uit dezelfde code als cel 1; alleen de celwaarden en de registratie verschillen. Dat bewijst herhaalbaarheid, geen onafhankelijkheid.

Toelichting

Afgewezen: cel 2 als kopie van cel 1. Een kopie neemt fouten en geheimen over en bewijst geen herhaalbaarheid.

VoorstelRegel#

Iedere cel ontstaat uit de code in de opslagplaats Platform en de gecontroleerde spiegel. Wat haar onderscheidt, staat alleen in haar celwaarden (cellen/<cel>/), in de clusterbestanden van haar clusters (clusters/<cluster>/) en in haar datacenterregistratie. Iedere cel krijgt zo ook een eigen uitwerking per locatie.

Toelichting

Gecontroleerd bij de opbouw van cel 2 en met de meldingen van afwijkingen van de gewenste inrichting.

Verwijzen hiernaar

Onderwerpen 5