Den här artikeln innehåller implementeringsvägledning för automatisering av prenumerationsautomatisering. Med prenumerationsautomater standardiseras processen för att begära, distribuera och styra prenumerationer så att programteamen kan distribuera sina arbetsbelastningar snabbare.
Bild 1. En implementering av prenumerationsautomater i en azure-exempelmiljö.
Vi har skapat Bicep- och Terraform-moduler för prenumerationsautomater som du bör använda som utgångspunkt. Du bör ändra mallarna så att de passar dina implementeringsbehov. Mer information om prenumerationsautomatprocessen finns i Översikt över prenumerationsautomater.
Arkitektur
Du bör skapa automatisering av prenumerationsautomatisering för att utföra tre primära uppgifter. Automatisering av prenumerationsautomatisering bör (1) samla in data om prenumerationsbegäran, (2) initiera plattformsautomation och (3) skapa prenumerationen med hjälp av infrastruktur som kod. Det finns flera metoder för att implementera automatisering av prenumerationsautomatisering för att utföra dessa tre uppgifter. Exempelimplementeringen (bild 2) visar en metod som använder ett Gitflow. Gitflow-designen överensstämmer med den deklarativa metod som många plattformsteam använder för att hantera plattformen.
Bild 2. Exempel på implementering av automatisering av prenumerationsautomatisering.
I exempelimplementeringen (bild 2) samlar datainsamlingsverktyget in prenumerationsbegärandedata. När prenumerationsbegäran får godkännande initierar den plattformsautomationen. Plattformsautomationen består av pipelinen för begäran, källkontroll och distributionspipelinen. Pipelinen för begäran skapar en JSON- eller YAML-prenumerationsparameterfil med data från datainsamlingsverktyget. Pipelinen för begäran skapar också en ny gren, checkar in prenumerationsparameterfilen och öppnar en pull-begäran i källkontrollen. Den nya grenen sammanfogas med huvudgrenen i källkontrollen. Sammanfogningen utlöser distributionspipelinen för att skapa prenumerationen med modulerna infrastruktur som kod.
Distributionen bör placera prenumerationen i rätt hanteringsgrupp baserat på styrningskraven (se bild 1). Distributionen skapar en preliminär prenumerationsbudget som grund för kostnadshantering. Baserat på arbetsbelastningens behov kan distributionen skapa ett tomt virtuellt nätverk och konfigurera peering till en regional hubb. Plattformsteamet bör lämna över prenumerationen till programteamet när du har skapat och konfigurerat den. Programteamet bör uppdatera prenumerationsbudgeten och skapa arbetsbelastningsresurserna.
Samla in data
Målet med att samla in data är att få affärsgodkännande och definiera värdena för JSON/YAML-prenumerationsparameterfilen. Du bör använda ett datainsamlingsverktyg för att samla in nödvändiga data när programteamet skickar prenumerationsbegäran. Datainsamlingsverktyget ska samverka med andra system i arbetsflödet för prenumerationsautomatisering för att initiera plattformsautomationen.
Använd ett datainsamlingsverktyg. Du kan använda ett IT Service Management-verktyg (ITSM) för att samla in data eller skapa en kundportal med ett verktyg med låg kod eller ingen kod som Microsoft PowerApps. Datainsamlingsverktyget bör tillhandahålla affärslogik för att godkänna eller neka prenumerationsbegäran.
Samla in nödvändiga data. Du måste samla in tillräckligt med data för att definiera värdena för JSON/YAML-prenumerationsparametern så att du kan automatisera distributionen. De specifika värden som du samlar in beror på dina behov. Du bör samla in krav för begärandeförfattare, kostnadsställe och nätverk (internet eller lokal anslutning). Det kan vara bra att be programteamet om förväntade arbetsbelastningskomponenter (programplattform, datakrav), datakänslighet och antal miljöer (utveckling, test, förproduktion, produktion).
Verifiera data. Du bör verifiera data under datainsamlingsprocessen. Det är svårare att hantera problem senare i faserna för plattformsautomatisering.
Skapa en spårningsbar begäran. Datainsamlingsverktyget bör skapa en loggad och spårbar begäran för en ny prenumeration (till exempel ett ärende i ett ITSM-verktyg). Begäran bör innehålla alla nödvändiga data för att uppfylla kraven för den prenumerationen. Du bör binda affärslogik och auktoriseringsspårning till begäran.
Gränssnitt med andra interna system. Vid behov bör datainsamlingsverktyget samverka med andra verktyg eller system i din organisation. Målet är att utöka begäran med data från andra system. Du kan behöva identitets-, ekonomi-, säkerhets- och nätverksdata för att köra automatiseringen. Automatiseringen kan till exempel samverka med ett IPAM-verktyg (IP-adresshantering) för att reservera rätt IP-adressutrymme.
Skapa en utlösare. När prenumerationsbegäran får godkännande bör dataöverföringen utlösa plattformsautomationen. Det är bäst att skapa ett push-meddelande med nödvändiga data från datainsamlingsverktyget. Du kan behöva ett mellanprogramlager, till exempel Azure Functions eller Azure Logic Apps, för att initiera processen.
Initiera plattformsautomatisering
Meddelandet och data från datainsamlingsverktyget ska utlösa plattformsautomationen. Målet med plattformsautomatisering är att skapa en JSON/YAML-prenumerationsparameterfil, sammanfoga filen till huvudgrenen och distribuera den med modulerna infrastruktur som kod för att skapa prenumerationen. Plattformsteamet bör äga och underhålla plattformsautomationen. Plattformsautomatiseringen i exempelimplementeringen består av pipelinen för begäran, källkontroll och distributionspipelinen (se bild 2).
Använd JSON- eller YAML-filer. Du bör använda strukturerade datafiler (JSON eller YAML) för att lagra data för att skapa en prenumeration. Du bör dokumentera filens struktur och göra den utökningsbar för att stödja framtida behov. Följande JSON-kodfragment definierar till exempel prenumerationsparametervärdena för en av Bicep-modulerna i 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
}
}
Se hela filen. Fler exempel finns i Bicep-exempel och Terraform-exempel
Använd en fil per prenumerationsbegäran. Prenumerationen är distributionsenheten i prenumerationsautomatprocessen, så varje prenumerationsbegäran bör ha en dedikerad prenumerationsparameterfil.
Använd ett system för pull-begäranden. Gitflow-processen som skapar prenumerationsparameterfilen bör automatisera följande steg:
- Skapa en ny gren för varje prenumerationsbegäran.
- Använd de data som samlas in för att skapa en enda YAML/JSON-prenumerationsparameterfil för den nya prenumerationen i grenen.
- Skapa en pull-begäran från din gren till
main
. - Uppdatera datainsamlingsverktyget med en tillståndsändring och referens till den här pull-begäran.
Pipelinen för begäran i exempelimplementeringen kör dessa steg (se bild 2). Du kan också använda en kodbaserad lösning som finns i Azure om arbetsflödet är komplext.
Verifiera parameterfilen för prenumerationen. Pull-begäran ska utlösa en lintningsprocess för att verifiera begärandedata. Målet är att säkerställa att distributionen lyckas. Den bör verifiera YAML/JSON-prenumerationsparameterfilen. Det kan också kontrollera att IP-adressintervallet fortfarande är tillgängligt. Du kanske också vill lägga till en manuell granskningsport med mänsklig inblandning. De kan utföra den slutliga granskningen och göra ändringar i prenumerationsparameterfilen. Utdata ska vara en JSON/YAML-prenumerationsparameterfil med alla data för att skapa en prenumeration.
Utlös distributionspipelinen. När pull-begäran slås samman till grenen main
ska sammanfogningen utlösa distributionspipelinen.
Skapa en prenumeration
Den sista uppgiften för automatisering av prenumerationsautomatisering är att skapa och konfigurera den nya prenumerationen. Exempelimplementeringen använder distributionspipelinen för att distribuera modulen infrastruktur som kod med JSON/YAML-prenumerationsparameterfilen (se bild 2).
Använd infrastruktur som kod. Distributionen bör använda infrastruktur som kod för att skapa prenumerationen. Plattformsteamet bör skapa och underhålla dessa mallar för att säkerställa korrekt styrning. Du bör använda Bicep- och Terraform-modulerna för prenumerationsautomater och ändra dem så att de passar dina implementeringsbehov.
Använd en distributionspipeline. Distributionspipelinen samordnar skapandet och konfigurationen av den nya prenumerationen. Pipelinen ska utföra följande uppgifter:
Aktivitetskategori | Pipelineaktivitet |
---|---|
Identitet | • Skapa eller uppdatera Microsoft Entra-resurser för att representera prenumerationsägarskapet. • Konfigurera privilegierade arbetsbelastningsidentiteter för distributioner av arbetsbelastningsteam. |
Kontroll | • Placera i hanteringsgruppshierarkin. • Tilldela prenumerationsägare. • Konfigurera rollbaserade åtkomstkontroller på prenumerationsnivå (RBACs) till konfigurerade säkerhetsgrupper. • Tilldela Azure Policy på prenumerationsnivå. • Konfigurera Registrering av Microsoft Defender för molnet. |
Nätverk | • Distribuera virtuella nätverk. • Konfigurera peering för virtuella nätverk till plattformsresurser (regional hubb). |
Budgetar | • Skapa budgetar för prenumerationsägare med hjälp av insamlade data. |
Rapportering | • Uppdatera externa system, till exempel IPAM, för att checka in på IP-reservationer. • Uppdatera begäran om datainsamlingsverktyget med det slutliga prenumerationsnamnet och den globalt unika identifieraren (GUID). • Meddela programteamet att prenumerationen är klar. |
Du behöver ett kommersiellt avtal för att skapa en prenumeration programmatiskt. Om du inte har något kommersiellt avtal måste du införa en manuell process för att skapa prenumerationen, men du kan fortfarande automatisera alla andra aspekter av prenumerationskonfigurationen.
Upprätta en arbetsbelastningsidentitet. Distributionspipelinen behöver behörighet att utföra dessa åtgärder med alla system som den har gränssnitt med. Du bör antingen använda hanterad identitet eller OpenID Connect (OIDC) för att autentisera till Azure.
Efterdistribution
Automatiseringen av prenumerationsautomaterna slutar med att prenumerationen skapas och konfigureras. Plattformsteamet bör lämna över den nya prenumerationen till programteamet när de har skapats. Programteamet bör uppdatera prenumerationsbudgeten, skapa arbetsbelastningsresurserna och distribuera arbetsbelastningen. Plattformsteamet styr styrningen av prenumerationen och hanterar ändringar i prenumerationsstyrningen över tid.
Framtvinga kostnadshantering. Prenumerationsbudgetar ger meddelanden som är viktiga för kostnadshantering. Distributionen bör skapa en preliminär prenumerationsbudget baserat på prenumerationsbegärandedata. Programteamet tar emot prenumerationen. De bör uppdatera budgeten för att uppfylla arbetsbelastningens behov. Mer information finns i:
- Skapa och hantera budgetar
- Hantera kostnader med Azure Budgets
- Kostnadsfördelning
- Spåra kostnader mellan affärsenheter, miljöer eller projekt
Hantera prenumerationsstyrning. Du bör uppdatera prenumerationen när styrningskraven för arbetsbelastningen ändras. Du kan till exempel behöva flytta en prenumeration till en annan hanteringsgrupp. Du bör skapa automatisering för vissa av dessa rutinåtgärder. Mer information finns i:
- Flytta hanteringsgrupper och prenumerationer
- Håll principer och principinitiativ uppdaterade
- Resurstaggning
- Anpassa Arkitekturen för Azure-landningszoner efter behov
Nästa steg
Prenumerationsautomater förenklar och standardiserar processen för att skapa prenumerationer och placerar den under organisationens styrning. Du bör implementera automatisering av prenumerationsautomatisering för att hjälpa dina programteam att komma åt programlandningszoner snabbare och registrera arbetsbelastningar snabbare. Mer information finns i: