Hantera microsoft 365-klientkonfiguration med hjälp av Microsoft365DSC och Azure DevOps

Azure DevOps
Azure Key Vault
Azure Windows Virtual Machines
Microsoft 365

Lösningen som beskrivs här spårar ändringar som gjorts av tjänstadministratörer och lägger till en godkännandeprocess för distributioner till Microsoft 365-klientorganisationer. Det kan hjälpa dig att förhindra ospårade ändringar i Microsoft 365-klientorganisationer. Det hjälper också till att förhindra konfigurationsavvikelser mellan flera Microsoft 365-klienter.

Arkitektur

Diagram som visar arkitekturen för att automatisera ändringar i Microsoft 365-klientkonfigurationer.

Ladda ned en Visio-fil med den här arkitekturen.

Arbetsflöde

  1. Administratör 1 lägger till, uppdaterar eller tar bort en post i admin 1:s förgrening av Microsoft 365-konfigurationsfilen.
  2. Admin 1 checkar in och synkroniserar ändringarna till admin 1:s förgrenade lagringsplats.
  3. Administratör 1 skapar en pull-begäran (PR) för att sammanfoga ändringarna till huvudlagringsplatsen.
  4. Bygg-pipelinen körs på PR.
  5. Administratörer granskar koden och sammanfogar PR.
  6. Den sammanfogade PR utlöser en pipeline för att kompilera MOF-filer (Managed Object Format). Pipelinen anropar Azure Key Vault för att hämta autentiseringsuppgifter som används i MOFs.
  7. En Azure PowerShell-uppgift i en pipeline för flera enheter använder de kompilerade MOF-filerna för att distribuera konfigurationsändringar via Microsoft365DSC.
  8. Administratörer validerar ändringar i en mellanlagrad Microsoft 365-klientorganisation.
  9. Administratörer får meddelanden från godkännandeprocessen i Azure DevOps för microsoft 365-produktionsklientorganisationen. Administratörer godkänner eller avvisar ändringarna.

Komponenter

  • Azure Pipelines möjliggör kontinuerlig integrering (CI) och kontinuerlig leverans (CD) för att testa och skapa din kod och skicka den till alla mål.
  • Azure Key Vault förbättrar säkerheten för lagring för token, lösenord, certifikat, API-nycklar och andra hemligheter. Det ger också strikt kontrollerad åtkomst till dessa hemligheter.
  • Microsoft365DSC tillhandahåller automatisering för distribution, konfiguration och övervakning av Microsoft 365-klienter via PowerShell DSC.
  • Windows PowerShell DSC är en hanteringsplattform i PowerShell. Du kan använda den för att hantera utvecklingsinfrastrukturen med hjälp av en konfigurationsmodell som kod.

Alternativ

Som ett nästa steg kan du använda DSC i Azure Automation för att lagra konfigurationer på en central plats och lägga till rapportering av efterlevnad med önskat tillstånd.

Den här arkitekturen använder Key Vault för att lagra Azure App Service-certifikat eller användarautentiseringsuppgifter som används för autentisering till Microsoft 365-klientorganisationen. Key Vault ger skalbarhet. Du kan också använda pipelinevariabler för att minska lösningens komplexitet.

Information om scenario

Många företag använder DevOps-metoder och vill tillämpa dessa metoder på sina Microsoft 365-klienter. Om du inte använder DevOps för Microsoft 365 kan det uppstå några vanliga problem:

  • Felaktig konfiguration
  • Utmaningar med att spåra konfigurationsändringar
  • Ingen godkännandeprocess för klientändringar

Du kan använda lösningen som beskrivs i den här artikeln för att automatisera ändringar i Microsoft 365-klientkonfigurationer med hjälp av Azure DevOps och Microsoft365DSC. Microsoft365DSC är en PowerShell DSC-modul (Desired State Configuration). Du kan använda den för att konfigurera och hantera Microsoft 365-klienter i en sann DevOps-stil: konfiguration som kod.

Potentiella användningsfall

Den här lösningen kan hjälpa dig att hantera Microsoft 365-klientkonfigurationen på ett kontrollerat och automatiserat sätt, med hjälp av DevOps-verktyg och -metoder, i hela:

  • Utvecklings-, test-, acceptans- och produktionsmiljöer.
  • Flera kundklientorganisationer, som i ett scenario med en hanterad tjänstleverantör.

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

De flesta som börjar med PowerShell DSC upptäcker att det tar ett tag att lära sig det. Det hjälper om du har en gedigen förståelse för PowerShell och erfarenhet av att skapa skript.

Operations

Vissa driftsteam anser att Azure DevOps är ett verktyg för utvecklare. Men de här teamen kan dra nytta av att använda Azure DevOps. Driftteam kan:

  • Lagra skripten på en lagringsplats och lägg till källkontroll och versionshantering.
  • Automatisera distributioner av skript.
  • Använd tavlor för att spåra uppgifter, projekt med mera.

Att använda en modell med konfiguration som kod är inte en engångsuppgift. Det är en förändring i ditt sätt att arbeta och en grundläggande förändring för alla teammedlemmar. Du gör inte längre ändringar manuellt. I stället implementeras allt i skript och distribueras automatiskt. Alla teammedlemmar måste ha de kunskaper som krävs för att göra den här ändringen.

Skalbarhet

Du kan använda den här lösningen när du arbetar med flera miljöer, flera arbetsbelastningar och/eller flera team. Du kan konfigurera valideringsprocessen så att experter måste godkänna varje arbetsbelastning. Du kan också utöka lösningen så att den distribueras till flera klienter, för ett utvecklings-/test-/acceptans-/produktionsscenario och/eller för flera organisationer.

Om du vill öka skalbarheten ytterligare kan du använda en aggregerad konfigurationsdatalösning som Datum.

Säkerhet

De flesta Microsoft365DSC-resurser stöder autentisering via användarnamn och lösenord. Men vi rekommenderar inte den typen av autentisering eftersom Microsofts metodtips rekommenderar multifaktorautentisering. Programautentiseringsuppgifter är den bästa metoden, där det stöds av Microsoft 365-resurserna. Till exempel stöder SharePoint Online, Microsoft Entra-ID och andra resurser programautentiseringsuppgifter.

Om du skapar en Microsoft365DSC-lösning på Azure DevOps kan du också dra nytta av säkerheten i Azure Pipelines och en godkännandeprocess för att skydda distributionen till din produktionsklientorganisation.

DevOps

Du kan köra den här lösningen i Azure DevOps Server. Du kan skapa en liknande lösning i GitHub med hjälp av GitHub Actions.

Kostnadsoptimering

Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.

Prisinformation för Azure DevOps finns i Priser för Azure DevOps. Om du införlivar Key Vault i din lösning kan du hitta prisinformation här.

Du kan också använda Priskalkylatorn för Azure för att beräkna kostnader.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Nästa steg