Zum Inhalt

Managed Templates: die Template-Bibliothek

Managed Templates (XMT) ist eine Bibliothek fertiger, getesteter Infrastruktur-Module in Terraform und Bicep. Workload- Teams nutzen sie, um ihre Ressourcen in einem spoke so zu bauen, dass sie den Standards der Plattform folgen, ohne selbst jede Policy und Baseline im Blick behalten zu müssen. Die Bibliothek enthält außerdem einen IaC Accelerator: ein lauffähiges Beispielprojekt, das zeigt, wie du deinen Code strukturierst, die Module aufrufst und mit einer pipeline deployst.

Dieser Abschnitt richtet sich an zwei Zielgruppen. Workload-Teams finden in Managed Templates nutzen, im Modulkatalog und im IaC Accelerator, wie sie die Bibliothek verwenden. Die Menschen, die die Bibliothek pflegen, finden, wie sie aufgebaut, getestet und released wird.

Ein optionales Angebot, getrennt von der Plattform

Die Template-Bibliothek ist nicht Teil des Kerncodes von MCP hub und spoke, und sie hat ein eigenes Repository, eigene pipelines, Tests und Versionen. Ob deine Plattform sie hat, wer sie pflegt und wie dir die Module geliefert werden, legt dein Plattform-Team fest (Betriebsmodelle). Die Seiten beschreiben, wie die Bibliothek in ihrer Referenzform aufgebaut ist. Deine Bibliothek kann abweichen.

Was die Bibliothek ist

Eigenschaft Was sie bedeutet
Ein Modul pro Azure-Ressourcentyp Jedes Modul kapselt einen Ressourcentyp (zum Beispiel ein storage account oder ein Key Vault) mit den Einstellungen, die ein workload-Team braucht. Einige Terraform-Module sind Patterns, die mehrere Module kombinieren. Siehe den Modulkatalog.
Auf Azure Verified Modules aufgebaut Die Module rufen die Azure Verified Modules (AVM) von Microsoft auf und reichen deren Parameter und Outputs weiter. Die Bibliothek ergänzt darüber die Standards der Plattform. Einige wenige Module besitzen ihre Ressourcenlogik selbst (siehe den Katalog).
Policy-konform by design Werte, die eine Azure Policy prüft, sind im Modul festgelegt, sodass ein Team keine Ressource deployen kann, die die Baseline verletzt. Die Ziel-Baselines sind CIS Microsoft Azure Foundations Benchmark 2.0, ISO 27001:2013 und der Microsoft Cloud Security Benchmark. Siehe Policy-Compliance.
Getestet Jedes Modul wird in einer Test-subscription deployt und gegen die Azure Policies der Plattform geprüft. Siehe Testing.
Pro Modul versioniert Ein Team pinnt die Version jedes Moduls und entscheidet, wann es upgradet. Siehe Versionierung.
Dokumentiert Die Referenz jedes Moduls (Parameter, Outputs) wird aus dem Code generiert. Siehe Release und Dokumentation.
Terraform und Bicep Beide Technologien leben in einem Repository und einem Produkt, in getrennten Ordnern.
Gepflegt Die Bibliothek wird bei jeder Änderung und nach einem wöchentlichen Zeitplan getestet, und die Module werden aktualisiert, wenn sich die Baselines oder die Upstream-Module ändern.

Wer macht was

Die Bibliothek hat ein pflegendes Team und nutzende Teams. Wer welche Rolle übernimmt, hängt vom Betriebsmodell deiner Plattform ab (Betriebsmodelle).

Rolle Mit managed-service-Vertrag Im Eigenbetrieb
Pflegendes Team: baut, testet, versioniert und released die Module und liefert sie an die Nutzer XMMS Das Team des Kunden, dem die Bibliothek gehört
XMT Ambassador: richtet Zugriff und onboarding auf der Nutzerseite ein und ist der erste Kontakt bei Fragen Eine Person des Kunden Eine Person des Plattform-Teams des Kunden
Workload-Team: ruft die Module in seinem eigenen Code auf, pinnt Versionen, deployt über eine pipeline Das Workload-Team Das Workload-Team

Das Workload-Team bleibt für seinen eigenen Infrastrukturcode und dessen Deployment verantwortlich. Ein Modul verringert den Aufwand mit Policies, ist aber keine Garantie, dass ein workload konform ist (Verantwortlichkeiten).

Was in diesem Abschnitt steht

Seite Inhalt
Managed Templates nutzen Ein Modul referenzieren, Zugriff in einer pipeline erhalten, Versionen wählen und upgraden
Modulkatalog Alle Module nach Service, mit dem, was sie deployen, und ob es sie in Terraform und Bicep gibt
IaC Accelerator Das kopierfertige Beispielprojekt mit Struktur, pipeline und automatisierten Dependency-Updates
Policy-Compliance Wie Module Policies durchsetzen und welche Findings du in Azure Policy trotzdem noch siehst
Zugriff einrichten (XMT Ambassador) Das einmalige Setup und die Zugriffsverwaltung auf der Nutzerseite
Repository-Struktur Die Ordner des Repositorys und was jeder enthält
Testing Der Testansatz: Integrationstests, Azure-Policy-Compliance, gemeinsame Ressourcen
Pipelines und Skripte Die pipelines und die Hilfsskripte des Repositorys
Versionierung Semantic Versioning auf Modulebene, das Changelog und Upgrade-Hinweise
Release und Dokumentation Release-Prozess, generierte Dokumentation, Auslieferung an Nutzer
Module erstellen und beitragen Ein neues Modul erstellen, Fixes an Upstream-Modulen, Leitfaden zum Beitragen
Zusammenfassungen der Entscheidungen Die Entscheidungen hinter dem Design, kurz gefasst

Wie es zur Plattform passt

flowchart LR
    avm["Azure Verified Modules (upstream)"] --> xmt["Managed Templates library"]
    pol["Azure Policy of the platform"] --> xmt
    xmt -->|"versioned releases"| ws["Workload team code in a spoke"]
    acc["IaC Accelerator (example project)"] -.->|"copy and adapt"| ws
    ws --> spoke["Spoke (baseline of the platform)"]

Die Module setzen die Baseline eines spokes voraus: private Konnektivität, die Policies auf den management groups und die gemeinsamen Ressourcen. Sie sind ein Weg, konform zu sein, kein Weg an den Policies vorbei. Eine Ressource, die ein Modul nicht konform erstellen kann, ist ein Grund, das Modul zu erweitern oder eine Ausnahme zu beantragen (Policy-Ausnahmen).