Azure-landningszoner – designöverväganden för Bicep-moduler
I den här artikeln beskrivs designöverväganden för den modulariserade Azure-landningszoner (ALZ) – Bicep-lösning som du kan använda för att distribuera och hantera kärnplattformsfunktionerna i azure-landningszonens konceptuella arkitektur enligt beskrivningen i Cloud Adoption Framework (CAF).
Bicep är ett domänspecifikt språk (DSL) som använder deklarativ syntax för att distribuera Azure-resurser. Den har koncis syntax, tillförlitlig typsäkerhet och stöd för återanvändning av kod.
En implementering av den här arkitekturen är tillgänglig på GitHub: Azure-landningszoner (ALZ) – Bicep-implementering. Du kan använda den som utgångspunkt och konfigurera den enligt dina behov.
Kommentar
Det finns implementeringar för flera distributionstekniker , inklusive portalbaserade ARM-mallar och Terraform-moduler. Valet av distributionsteknik bör inte påverka den resulterande distributionen av Azure-landningszoner.
ALZ Bicep Accelerator
Du hittar stegvisa anvisningar om hur du implementerar, automatiserar och underhåller din ALZ Bicep-modul med ALZ Bicep Accelerator.
ALZ Bicep Accelerator-ramverket har utvecklats för att ge slutanvändarna stöd för registrering och distribution av ALZ Bicep med fullfjädrade CI/CD-pipelines, stöd för GitHub Actions och Azure DevOps Pipelines, dedikerat ramverk för att hålla sig synkroniserat med nya ALZ Bicep-versioner och ändra eller lägga till anpassade moduler och ger vägledning för förgreningsstrategi och pipelines för pull-begäranden för linting och validering av Bicep-moduler.
Designa
Arkitekturen drar nytta av den modulära karaktären hos Azure Bicep och består av flera moduler. Varje modul kapslar in en kärnfunktion i den konceptuella arkitekturen för Azure-landningszoner. Modulerna kan distribueras individuellt, men det finns beroenden att känna till.
Arkitekturen föreslår införandet av orchestrator-moduler för att förenkla distributionsupplevelsen. Orchestrator-modulerna kan användas för att automatisera distributionen av modulerna och kapsla in olika distributionstopologier.
Moduler
Ett grundläggande begrepp i Bicep är användningen av moduler. Med moduler kan du ordna distributioner i logiska grupper. Med moduler kan du förbättra läsbarheten för dina Bicep-filer genom att kapsla in komplex information om distributionen. Du kan också enkelt återanvända moduler för olika distributioner.
Möjligheten att återanvända moduler ger en verklig fördel när du definierar och distribuerar landningszoner. Det möjliggör repeterbara, konsekventa miljöer i kod samtidigt som du minskar den ansträngning som krävs för att distribuera i stor skala.
Lager och mellanlagring
Förutom moduler är Bicep-landningszonens arkitektur strukturerad med hjälp av ett koncept med lager. Lager är grupper av Bicep-moduler som är avsedda att distribueras tillsammans. Dessa grupper utgör logiska steg i implementeringen.
En fördel med den här skiktade metoden är möjligheten att lägga till i din miljö stegvis över tid. Du kan till exempel börja med ett litet antal av lagren. Du kan lägga till de återstående lagren i ett senare skede när du är redo.
Modulbeskrivningar
Det här avsnittet innehåller en översikt på hög nivå över kärnmodulerna i den här arkitekturen.
Skikt | Modul | beskrivning | Användbara länkar |
---|---|---|---|
Kärna | Hanteringsgrupper | Hanteringsgrupper är de högsta resurserna i en Azure-klientorganisation. Med hanteringsgrupper kan du enklare hantera dina resurser. Du kan tillämpa principen på hanteringsgruppsnivå och resurser på lägre nivå ärver den principen. Mer specifikt kan du använda följande objekt på hanteringsgruppsnivå som ska ärvas av prenumerationer under hanteringsgruppen:
Den här modulen distribuerar hanteringsgruppshierarkin enligt definitionen i den konceptuella arkitekturen för Azure-landningszonen. |
|
Kärna | Anpassade principdefinitioner | DeployIfNotExists (DINE) eller Ändra principer hjälper till att säkerställa att de prenumerationer och resurser som utgör landningszoner är kompatibla. Politiken underlättar också hanteringen av landningszoner. Den här modulen distribuerar anpassade principdefinitioner till hanteringsgrupper. Alla kunder kan inte använda DINE- eller Ändra-principer. Om så är fallet för dig ger CAF-vägledning om anpassade principer vägledning. |
|
Kärna | Definitioner för anpassad roll | Rollbaserad åtkomstkontroll (RBAC) förenklar hanteringen av användarrättigheter i ett system. I stället för att hantera enskilda personers rättigheter bestämmer du vilka rättigheter som krävs för olika roller i systemet. Azure RBAC har flera inbyggda roller. Med anpassade rolldefinitioner kan du skapa anpassade roller för din miljö. Den här modulen distribuerar anpassade rolldefinitioner. Modulen bör följa CAF-vägledningen om rollbaserad åtkomstkontroll i Azure. |
|
Hantering | Loggning, Automation och Sentinel | Med Azure Monitor, Azure Automation och Microsoft Sentinel kan du övervaka och hantera din infrastruktur och dina arbetsbelastningar. Azure Monitor är en lösning som gör att du kan samla in, analysera och agera på telemetri från din miljö. Microsoft Sentinel är en molnbaserad säkerhetsinformation och händelsehantering (SIEM). Det gör att du kan:
Azure Automation är ett molnbaserat automatiseringssystem. Den innehåller:
Den här modulen distribuerar de verktyg som krävs för att övervaka, hantera och utvärdera hot mot din miljö. Dessa verktyg bör omfatta Azure Monitor, Azure Automation och Microsoft Sentinel. |
|
Anslutning | Nätverk | Nätverkstopologi är en viktig faktor i distributioner av Azure-landningszoner. CAF fokuserar på två kärnnätverksmetoder:
De här modulerna distribuerar nätverkstopologin som du väljer. |
|
Identitet | Rolltilldelningar | Identitets- och åtkomsthantering (IAM) är den viktigaste säkerhetsgränsen inom molnbaserad databehandling. Med Azure RBAC kan du utföra rolltilldelningar av inbyggda roller eller anpassade rolldefinitioner till säkerhetsobjekt. Den här modulen distribuerar rolltilldelningar till tjänsthuvudnamn, hanterade identiteter eller säkerhetsgrupper mellan hanteringsgrupper och prenumerationer. Modulen bör följa CAF-vägledningen om azure-identitets- och åtkomsthantering. |
|
Kärna | Prenumerationsplacering | Prenumerationer som har tilldelats till en hanteringsgrupp ärver:
Den här modulen flyttar prenumerationer under lämplig hanteringsgrupp. |
|
Kärna | Inbyggda och anpassade principtilldelningar | Den här modulen distribuerar azure-landningszonens standardtilldelningar till hanteringsgrupper. Den skapar också rolltilldelningar för systemtilldelade hanterade identiteter som skapats av principer. | |
Hantering | Orchestrator-moduler | Orchestrator-moduler kan avsevärt förbättra distributionsupplevelsen. Dessa moduler kapslar in distributionen av flera moduler i en enda modul. Detta döljer komplexiteten för slutanvändaren. |
Anpassa Bicep-implementeringen
Implementeringarna av Azure-landningszonen som tillhandahålls som en del av Cloud Adoption Framework passar en mängd olika krav och användningsfall. Det finns dock ofta scenarier där anpassning krävs för att uppfylla specifika affärsbehov.
Dricks
Mer information finns i Anpassa arkitekturen för Azure-landningszoner för att uppfylla kraven .
När plattformslandningszonen har implementerats är nästa steg att distribuera programlandningszoner som gör det möjligt för programteam under landing zones
hanteringsgruppen med de skyddsräcken som centrala IT- eller PlatformOps-administratörer behöver. Hanteringsgruppen corp
är avsedd för företagsanslutna program, medan online
hanteringsgruppen är avsedd för program som främst är offentligt riktade, men som fortfarande kan ansluta till företagsprogram via hubbnätverk i vissa scenarier.
Implementeringen av Bicep Azure-landningszonen kan användas som grund för din anpassade distribution. Det ger dig ett sätt att påskynda implementeringen genom att ta bort behovet av att börja från början på grund av en specifik nödvändig ändring som styr ett färdigt alternativ.
Information om hur du anpassar modulerna finns i GitHub-lagringsplatsens Wiki GitHub: Azure Landing Zones (ALZ) Bicep – Wiki – Konsumentguide. Du kan använda den som utgångspunkt och konfigurera den enligt dina behov.