Zum Inhalt

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.