Hoe het achter de schermen werkt¶
Je hebt dit niet nodig om je spoke te gebruiken, maar het helpt om te weten waarom sommige dingen werken zoals ze werken.
Platformteam
In deze documentatie is het platformteam XMMS (managed service) of het eigen platformteam van je organisatie (zelfbeheer). Zie Beheermodellen.
Je spoke is een bestand¶
Elke spoke wordt beschreven in één JSON-bestand in de configuratierepository van het platform, bijvoorbeeld
spokes/finance/canvas_invprt_dev.json. Daarin staan je naam, omgeving, subscription, tags, toegangsgroepen, netwerk en
optionele resources. Het platformteam bewerkt dat bestand wanneer je een wijziging aanvraagt.
Een pipeline laat Azure overeenkomen met het bestand¶
sequenceDiagram
participant You
participant PT as Platform team
participant Repo as Config repository
participant Pipe as Spoke pipeline
participant Az as Azure
You->>PT: Request (new spoke / change)
PT->>Repo: Pull request with the spoke file
Repo->>Repo: Review + automatic validation
PT->>Pipe: Run for this one spoke
Pipe->>Az: Plan: what will change?
PT->>Pipe: Review plan, approve
Pipe->>Az: Apply
PT->>You: Confirmation
De pipeline gebruikt Terraform. Die vergelijkt het bestand met wat er in Azure bestaat en wijzigt alleen de verschillen. Daarom geldt het volgende:
- handmatige wijzigingen aan je baseline worden teruggedraaid bij de volgende run: het bestand wint;
- de korte naam van je workload en je omgeving kunnen niet veranderen: ze identificeren de state van je spoke;
- een wijziging gaat altijd langs review en een plan voordat er iets gebeurt in Azure.
Je spoke en de hub¶
flowchart LR
subgraph hub["Hub (platform team)"]
fw["Azure Firewall"]
dns["DNS resolver + private DNS zones"]
agw["Application Gateway + WAF"]
end
subgraph spoke["Your spoke"]
vnet["Your VNet"]
res["Your resources"]
end
internet((Internet))
onprem((On-premises))
vnet -- "hub connection" --> fw
fw --> internet
fw --> onprem
internet --> agw --> vnet
vnet -. "DNS" .-> dns
- Je VNet verbindt met de hub via een virtual hub connection. Uitgaand verkeer loopt via de firewall.
- Inkomend webverkeer komt binnen via de Application Gateway en de bijbehorende WAF, als je publicatie hebt aangevraagd.
- Je VNet gebruikt de DNS resolver van de hub, zodat private endpoints worden opgelost via de centrale private DNS zones.
Waar je spoke staat: management groups en policy¶
Je subscription staat in een management group (bijvoorbeeld één voor interne workloads en één voor workloads die op het internet zichtbaar zijn). Policies en roltoewijzingen worden op de management group gezet en door je subscription overgeërfd. Daarom verandert het zelf verplaatsen van een subscription welke policies gelden, en daarom kun je dat niet doen (Beperkingen). De hiërarchie wordt uitgelegd in de architectuurreferentie.
Naamresolutie¶
Je netwerk gebruikt de hub-DNS-server van je regio. Een naam in een centrale private DNS zone, zoals een private endpoint van een PaaS-service, wordt opgelost naar het private IP-adres, zodat het verkeer binnen het netwerk blijft. Namen van interne domeinen die on-premises staan, worden doorgestuurd door de DNS resolver van het platform. Details staan in DNS-ontwerp.
Firewallregels: wie beslist¶
De centrale firewall wordt gedeeld door alle workloads, dus de regels zijn georganiseerd per workload en beschrijven inkomend verkeer. De eigenaar van de bestemming beslist wie erbij mag. Een regel van je spoke naar een andere workload heeft daarom normaal gesproken de goedkeuring nodig van de eigenaar van die workload, en meestal van je security officer. Zie Organisatie van firewallregels voor hoe de regels zijn opgebouwd.
Canary en productie¶
Het platformteam test elke wijziging aan de hub eerst op een aparte canary-kopie van de hub. Je spokes worden gehost in de production hub. Wijzigingen aan de hub bereiken je pas nadat ze op canary zijn geslaagd.
Meer weten?¶
De technische documentatie van het platform staat in de sectie Platform.
- De gedachte achter het platform: architectuurreferentie en ontwerpprincipes.
- Hoe beslissingen, uitzonderingen en wijzigingen worden afgehandeld: Governance.