So funktioniert es im Hintergrund¶
Du brauchst das nicht, um deinen Spoke zu nutzen, aber es hilft zu verstehen, warum manche Dinge so funktionieren, wie sie funktionieren.
Plattform-Team
In dieser Dokumentation ist das Plattform-Team XMMS (managed service) oder das Plattform-Team deiner Organisation (Eigenbetrieb (self-managed)). Siehe Betriebsmodelle.
Dein Spoke ist eine Datei¶
Jeder Spoke wird in einer JSON-Datei im Konfigurations-Repository der Plattform beschrieben, zum Beispiel
spokes/finance/canvas_invprt_dev.json. Sie enthält deinen Namen, die Umgebung, Subscription, Tags, Zugriffsgruppen,
Netzwerk und optionale Ressourcen. Das Plattform-Team bearbeitet diese Datei, wenn du eine Änderung anfragst.
Eine Pipeline gleicht Azure mit der Datei ab¶
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
Die Pipeline nutzt Terraform. Sie vergleicht die Datei mit dem, was in Azure existiert, und ändert nur die Unterschiede. Deshalb gilt:
- Manuelle Änderungen an deiner Baseline werden beim nächsten Lauf rückgängig gemacht: Die Datei hat Vorrang;
- dein Workload-Kurzname und deine Umgebung können sich nicht ändern: Sie identifizieren den state deines Spokes;
- eine Änderung durchläuft immer ein Review und einen Plan, bevor in Azure etwas passiert.
Dein Spoke und der Hub¶
flowchart LR
subgraph hub["Hub (Plattform-Team)"]
fw["Azure Firewall"]
dns["DNS resolver + private DNS zones"]
agw["Application Gateway + WAF"]
end
subgraph spoke["Dein Spoke"]
vnet["Dein VNet"]
res["Deine Ressourcen"]
end
internet((Internet))
onprem((On-Premises))
vnet -- "Hub-Verbindung" --> fw
fw --> internet
fw --> onprem
internet --> agw --> vnet
vnet -. "DNS" .-> dns
- Dein VNet ist über eine virtual hub connection mit dem Hub verbunden. Ausgehender Traffic läuft über die firewall.
- Eingehender Web-Traffic kommt über das Application Gateway und seine WAF herein, wenn du die Veröffentlichung angefragt hast.
- Dein VNet nutzt den Hub-DNS-Resolver, sodass private endpoints über die zentralen private DNS zones aufgelöst werden.
Wo dein Spoke liegt: Management Groups und Policy¶
Deine Subscription liegt in einer Management Group (zum Beispiel eine für interne Workloads und eine für Workloads mit Internetzugang). Policies und Rollenzuweisungen werden auf der Management Group gesetzt und von deiner Subscription geerbt. Deshalb ändert das eigenhändige Verschieben einer Subscription, welche Policies gelten, und deshalb kannst du es nicht tun (Einschränkungen). Die Hierarchie wird in der Architekturreferenz erklärt.
Namensauflösung¶
Dein Netzwerk nutzt den Hub-DNS-Server deiner Region. Ein Name in einer zentralen private DNS zone, etwa ein private endpoint eines PaaS-Services, wird zu seiner privaten IP-Adresse aufgelöst, sodass der Traffic im Netzwerk bleibt. Namen interner Domains, die On-Premises liegen, leitet der DNS-Resolver der Plattform weiter. Details stehen im DNS-Design.
Firewallregeln: Wer entscheidet¶
Die zentrale Firewall wird von allen Workloads gemeinsam genutzt, daher sind Regeln pro Workload organisiert und beschreiben eingehenden Traffic. Der Owner des Ziels entscheidet, wer es erreichen darf. Eine Regel von deinem Spoke zu einem anderen Workload braucht daher normalerweise die Genehmigung des Owners dieses Workloads und meist die deines Security Officers. Wie die Regeln aufgebaut sind, steht in der Organisation der Firewallregeln.
Canary und Produktion¶
Das Plattform-Team testet jede Änderung am Hub zuerst auf einer separaten canary-Kopie des Hubs. Deine Spokes werden im prod-Hub gehostet. Änderungen am Hub erreichen dich erst, nachdem sie auf canary funktioniert haben.
Mehr erfahren?¶
Die technische Dokumentation der Plattform findest du im Bereich Plattform.
- Die Überlegungen hinter der Plattform: Architekturreferenz und Designprinzipien.
- Wie Entscheidungen, Ausnahmen und Änderungen behandelt werden: Governance.