Dieser Artikel enthält Implementierungsanleitungen für die Automatisierung des Abonnementverkaufs. Der Abonnementverkauf standardisiert den Prozess zum Anfordern, Bereitstellen und Steuern von Abonnements, sodass Anwendungsteams ihre Workloads schneller bereitstellen können.
Abbildung 1. Eine Implementierung des Abonnementverkaufs in einer Azure-Beispielumgebung.
Wir haben Bicep- und Terraform-Module für den Abonnementverkauf erstellt, die Sie als Ausgangspunkt verwenden sollten. Sie sollten die Vorlagen an Ihre Implementierungsanforderungen anpassen. Weitere Informationen zum Abonnementverkaufsprozess finden Sie unter Übersicht zum Abonnementverkauf.
Aufbau
Sie sollten die Automatisierung für den Abonnementverkauf so gestalten, dass sie drei Hauptaufgaben erfüllt. Mit der Automatisierung des Abonnementverkaufs sollten (1) Abonnementanforderungsdaten gesammelt, (2) die Plattformautomatisierung initiiert und (3) das Abonnement mithilfe von Infrastruktur-als-Code erstellt werden. Es gibt verschiedene Ansätze für die Implementierung der Automatisierung des Abonnementverkaufs, um diese drei Aufgaben zu erfüllen. Die Beispielimplementierung (Abbildung 2) zeigt einen Ansatz, der einen Gitflow verwendet. Das Gitflow-Design entspricht dem deklarativen Ansatz, den viele Plattformteams zum Verwalten der Plattform verwenden.
Abbildung 2. Beispielimplementierung der Automatisierung des Abonnementverkaufs.
In der Beispielimplementierung (Abbildung 2) sammelt das Datensammlungstool Abonnementanforderungsdaten. Wenn die Abonnementanforderung die Genehmigung erhält, initiiert sie die Plattformautomatisierung. Die Plattformautomatisierung besteht aus der Anforderungspipeline, der Quellcodeverwaltung und der Bereitstellungspipeline. Die Anforderungspipeline erstellt eine JSON- oder YAML-Abonnementparameterdatei mit den Daten aus dem Datensammlungstool. Die Anforderungspipeline erstellt außerdem einen neuen Branch, committet die Abonnementparameterdatei und öffnet einen Pull Request in der Quellcodeverwaltung. Der neue Branch wird mit dem Hauptbranch in der Quellcodeverwaltung zusammengeführt. Durch die Zusammenführung wird die Bereitstellungspipeline ausgelöst, mit der das Abonnement mit den Infrastruktur-als-Code-Modulen erstellt wird.
Bei der Bereitstellung sollte das Abonnement basierend auf den Governanceanforderungen (siehe Abbildung 1) in der richtigen Verwaltungsgruppe platziert werden. Die Bereitstellung erstellt ein vorläufiges Abonnementbudget als Grundlage für die Kostenverwaltung. Basierend auf den Anforderungen des Workloads könnte durch die Bereitstellung ein leeres virtuelles Netzwerk erstellt und das Peering mit einem regionalen Hub konfiguriert werden. Das Plattformteam sollte das Abonnement nach der Erstellung und Konfiguration an das Anwendungsteam übergeben. Das Anwendungsteam sollte das Abonnementbudget aktualisieren und die Workloadressourcen erstellen.
Sammeln von Daten
Das Ziel des Sammelns von Daten besteht darin, die Geschäftsgenehmigung zu erhalten und die Werte der JSON/YAML-Abonnementparameterdatei zu definieren. Sie sollten ein Datensammlungstool verwenden, um die erforderlichen Daten zu sammeln, wenn das Anwendungsteam die Abonnementanforderung übermittelt. Das Datensammlungstool sollte mit anderen Systemen im Abonnementverkaufsworkflow zusammenarbeiten, um die Plattformautomatisierung zu initiieren.
Verwenden Sie ein Tool für die Datensammlung. Sie können ein IT Service Management-(ITSM-)Tool verwenden, um die Daten zu sammeln oder ein Kundenportal mit einem Low-Code- oder No-Code-Tool wie Microsoft PowerApps zu erstellen. Das Datensammlungstool sollte Geschäftslogik zum Genehmigen oder Ablehnen der Abonnementanforderung bereitstellen.
Sammeln Sie die erforderlichen Daten. Sie müssen genügend Daten sammeln, um die Werte des JSON/YAML-Abonnementparameters zu definieren, damit Sie die Bereitstellung automatisieren können. Welche Werte Sie erfassen, hängt von Ihren Anforderungen ab. Sie sollten die Anforderungsautorisierer, die Kostenstelle und die Netzwerkanforderungen (Internet oder lokale Konnektivität) erfassen. Es kann hilfreich sein, das Anwendungsteam nach den erwarteten Workloadkomponenten (Anwendungsplattform, Datenanforderungen), der Datensensitivität und der Anzahl von Umgebungen (Entwicklung, Test, Präproduktion, Produktion) zu fragen.
Überprüfen Sie die Daten. Sie sollten Daten während des Datensammlungsprozesses überprüfen. Es ist schwieriger, Probleme später in den Phasen der Plattformautomatisierung zu beheben.
Erstellen Sie eine nachverfolgbare Anforderung. Ihr Datensammlungstool sollte eine protokollierte und nachverfolgbare Anforderung für ein neues Abonnement erstellen (z. B. ein Ticket in einem ITSM-Tool). Die Anforderung sollte alle erforderlichen Daten enthalten, um die Anforderungen dieses Abonnements zu erfüllen. Sie sollten die Geschäftslogik und die Autorisierungsnachverfolgung an die Anforderung binden.
Schnittstelle mit anderen internen Systemen. Bei Bedarf sollte das Datensammlungstool mit anderen Tools oder Systemen in Ihrer Organisation zusammenarbeiten. Ziel ist es, die Anforderung mit Daten aus anderen Systemen anzureichern. Möglicherweise benötigen Sie Identitäts-, Finanz-, Sicherheits- und Netzwerkdaten, um die Automatisierung auszuführen. Beispielsweise könnte die Automatisierung mit einem IP-Adressverwaltungs-(IPAM-)Tool zusammenarbeiten, um den richtigen IP-Adressraum zu reservieren.
Erstellen Sie einen Trigger. Wenn die Abonnementanforderung eine Genehmigung erhält, sollte die Datenübertragung die Plattformautomatisierung auslösen. Es empfiehlt sich, eine Pushbenachrichtigung mit den erforderlichen Daten aus Ihrem Datensammlungstool zu erstellen. Möglicherweise benötigen Sie eine Middlewareebene, z. B. Azure Functions oder Azure Logic Apps, um den Prozess zu initiieren.
Initiieren der Plattformautomatisierung
Die Benachrichtigung und die Daten aus dem Datensammlungstool sollten die Plattformautomatisierung auslösen. Das Ziel der Plattformautomatisierung besteht darin, eine JSON/YAML-Abonnementparameterdatei zu erstellen, die Datei mit dem Mainbranch zusammenzuführen und mit den Infrastructure-as-Code-Modulen bereitzustellen, um das Abonnement zu erstellen. Das Plattformteam sollte die Plattformautomatisierung besitzen und verwalten. Die Plattformautomatisierung in der Beispielimplementierung besteht aus der Anforderungspipeline, der Quellcodeverwaltung und der Bereitstellungspipeline (siehe Abbildung 2).
Verwenden Sie JSON- oder YAML-Dateien. Sie sollten strukturierte Datendateien (JSON oder YAML) verwenden, um die Daten zum Erstellen eines Abonnements zu speichern. Sie sollten die Struktur der Datei dokumentieren und erweiterbar machen, um zukünftige Anforderungen zu unterstützen. Der folgende JSON-Codeschnipsel definiert beispielsweise die Abonnementparameterwerte für eines der Bicep-Module in GitHub.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionDisplayName": {
"value": "sub-bicep-lz-vending-example-001"
},
"subscriptionAliasName": {
"value": "sub-bicep-lz-vending-example-001"
},
"subscriptionBillingScope": {
"value": "providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/123456"
},
// Insert more parameters here
}
}
Sehen Sie sich die gesamte Datei an. Weitere Beispiele finden Sie unter Bicep-Beispiele und Terraform-Beispiele.
Verwenden Sie eine Datei pro Abonnementanforderung. Das Abonnement ist die Bereitstellungseinheit im Abonnementverkaufsprozess, sodass jede Abonnementanforderung über eine dedizierte Abonnementparameterdatei verfügen sollte.
Verwenden Sie ein Pull Request-System. Im Gitflow-Prozess, mit dem die Abonnementparameterdatei erstellt wird, sollten folgende Schritte automatisiert werden:
- Erstellen Sie einen neuen Branch für jede Abonnementanforderung.
- Verwenden Sie die gesammelten Daten, um eine einzelne YAML/JSON-Abonnementparameterdatei für das neue Abonnement im Branch zu erstellen.
- Erstellen Sie einen Pull Requests aus Ihrem Branch in
main
. - Aktualisieren Sie das Datensammlungstool mit einer Zustandsänderung und einem Verweis auf diesen Pull Request.
Die Anforderungspipeline in der Beispielimplementierung führt diese Schritte aus (siehe Abbildung 2). Sie können auch eine codebasierte Lösung verwenden, die in Azure gehostet wird, wenn der Workflow komplex ist.
Überprüfen Sie die Abonnementparameterdatei. Der Pull Request sollte einen Lintingprozess auslösen, um die Anforderungsdaten zu überprüfen. Das Ziel ist es, sicherzustellen, dass die Bereitstellung erfolgreich ist. Die YAML/JSON-Abonnementparameterdatei sollte überprüft werden. Außerdem könnte überprüft werden, ob der IP-Adressbereich noch verfügbar ist. Sie können auch ein manuelles Überprüfungsgate mit menschlichem Eingreifen hinzufügen. Sie können die endgültige Überprüfung durchführen und Änderungen an der Abonnementparameterdatei vornehmen. Die Ausgabe sollte eine JSON-/YAML-Abonnementparameterdatei mit allen Daten zum Erstellen eines Abonnements sein.
Lösen Sie die Bereitstellungspipeline aus. Wenn der Pull Request in den Branch main
zusammengeführt wird, sollte der Merge die Bereitstellungspipeline auslösen.
Erstellen eines Abonnements
Die letzte Aufgabe der Automatisierung des Abonnementverkaufs besteht darin, das neue Abonnement zu erstellen und zu konfigurieren. Für die Beispielimplementierung wird die Bereitstellungspipeline verwendet, um das Infrastruktur-als-Code-Modul mit der JSON/YAML-Abonnementparameterdatei (siehe Abbildung 2) bereitzustellen.
Verwenden Sie Infrastructure-as-Code. Ihre Bereitstellung sollte Infrastructure-as-Code verwenden, um das Abonnement zu erstellen. Das Plattformteam sollte diese Vorlagen erstellen und verwalten, um eine ordnungsgemäße Governance sicherzustellen. Sie sollten die Abonnementverkaufsmodule Bicep und Terraform verwenden und sie an Ihre Implementierungsanforderungen anpassen.
Verwenden Sie eine Bereitstellungspipeline. Die Bereitstellungspipeline orchestriert die Erstellung und Konfiguration des neuen Abonnements. Die Pipeline sollte die folgenden Aufgaben ausführen:
Aufgabenkategorie | Pipelineaufgabe |
---|---|
Identität | • Erstellen oder Aktualisieren von Microsoft Entra-Ressourcen zur Darstellung des Abonnementbesitzes. • Konfigurieren privilegierter Workloadidentitäten für Bereitstellungen für Workloadteams. |
Governance | • Platzieren in einer Verwaltungsgruppenhierarchie. • Zuweisen des Abonnementbesitzers. • Konfigurieren rollenbasierter Zugriffssteuerungen (Role-Based Access Controls, RBACs) auf Abonnementebene für konfigurierte Sicherheitsgruppen • Zuweisen von Azure Policy auf Abonnementebene. • Konfigurieren Sie die Microsoft Defender for Cloud-Registrierung |
Netzwerk | • Bereitstellen virtueller Netzwerke. • Konfigurieren des Peerings virtueller Netzwerke mit Plattformressourcen (regionaler Hub). |
Budgets | • Erstellen von Budgets für die Abonnementbesitzer mithilfe der gesammelten Daten. |
Reporting | • Aktualisieren externer Systeme, z. B. IPAM zum Commiten für IP-Reservierungen. • Aktualisieren der Anforderung des Datensammlungstools mit dem endgültigen Abonnementnamen und dem global eindeutigen Bezeichner (Globally Unique Identifier, GUID). • Benachrichtigen des Anwendungsteams, dass das Abonnement bereit ist |
Sie benötigen eine kommerzielle Vereinbarung, um ein Abonnement programmgesteuert zu erstellen. Wenn Sie keine kommerzielle Vereinbarung haben, müssen Sie einen manuellen Prozess zum Erstellen des Abonnements einführen, können aber weiterhin alle anderen Aspekte der Abonnementkonfiguration automatisieren.
Richten Sie eine Workloadidentität ein. Die Bereitstellungspipeline benötigt die Berechtigung, diese Vorgänge mit allen Systemen auszuführen, mit denen sie zusammenarbeitet. Sie sollten entweder die verwaltete Identität oder OpenID Connect (OIDC) verwenden, um sich bei Azure zu authentifizieren.
Nach der Bereitstellung
Die Automatisierung des Abonnementverkaufs endet mit der Erstellung und Konfiguration des Abonnements. Das Plattformteam sollte das neue Abonnement nach der Erstellung an das Anwendungsteam übergeben. Das Anwendungsteam sollte das Abonnementbudget aktualisieren, die Workloadressourcen erstellen und die Workload bereitstellen. Das Plattformteam steuert die Governance des Abonnements und verwaltet die Änderungen an der Abonnementgovernance, die sich im Laufe der Zeit vollziehen.
Erzwingen sie das Kostenmanagement. Mit Abonnementbudgets werden Benachrichtigungen bereitgestellt, die für die Kostenverwaltung von entscheidender Bedeutung sind. Durch die Bereitstellung sollte ein vorläufiges Abonnementbudget basierend auf den Abonnementanforderungsdaten erstellt werden. Das Anwendungsteam erhält das Abonnement. Es sollte das Budget aktualisieren, um die Anforderungen der Workload zu erfüllen. Weitere Informationen finden Sie unter:
- Erstellen und Verwalten von Budgets
- Verwalten von Kosten mit Azure-Budgets
- Kostenzuteilung
- Nachverfolgen von Kosten für Geschäftseinheiten, Umgebungen oder Projekte
Verwalten Sie die Abonnementgovernance. Sie sollten das Abonnement aktualisieren, wenn sich die Governanceanforderungen des Workloads ändern. Beispielsweise müssen Sie ein Abonnement in eine andere Verwaltungsgruppe verschieben. Sie sollten eine Automatisierung für einige dieser Routinevorgänge erstellen. Weitere Informationen finden Sie unter
- Verschieben von Verwaltungsgruppen und Abonnements
- Sicherstellen, dass Richtlinien und Richtlinieninitiativen auf dem neuesten Stand sind
- Tags für Ressourcen
- Anpassen der Architektur der Azure-Zielzonen an die Anforderungen
Nächste Schritte
Der Abonnementverkauf vereinfacht und standardisiert die Erstellung des Abonnements und stellt es unter die Governance der Organisation. Sie sollten die Automatisierung des Abonnementverkaufs implementieren, damit Ihre Anwendungsteams schneller auf Anwendungszielzonen zugreifen und Workloads schneller integrieren können. Weitere Informationen finden Sie unter