Implementer en skalerbar ALM-tilgang ved hjælp af Microsoft Package Deployer

Efterhånden som Power Platform og Dynamics 365 implementeringer vokser i størrelse og kompleksitet, har organisationer brug for en ALM-strategi (Application Lifecycle Management), der understøtter flere udviklere, kontrollerede udgivelser, udrulningsautomatisering og styring på tværs af miljøer.

Denne referencearkitektur kombinerer Microsoft Package Deployer, Git, Azure DevOps og Power Platform CLI til skalerbar ALM. Den integrerer kildekontrol, peer review, automatiserede udrulninger, hotfixadministration og sporbarhed af udrulninger.

Tip

Denne artikel indeholder et eksempelscenarie og en generel referencearkitektur. Tilgangen kan tilpasses organisationer af forskellig størrelse og på tværs af mange brancher for at understøtte skalerbar udvikling, udrulning og praksis for releasehåndtering.

Arkitekturdiagram

Diagram over en ALM-arbejdsproces for Dataverse ved hjælp af Visual Studio Code, Azure Pipelines, Package Deployer og trinvise miljøer.

Workflow

Følgende arbejdsproces svarer til de faser, der er illustreret i arkitekturdiagrammet.

Trin 1: Udvikl og indsend ændringer

Udviklere bruger Visual Studio Code sammen med kommandolinjegrænsefladen i Power Platform til at forberede ændringer til peer review.

  1. Udviklere bruger Visual Studio Code til at administrere miljøforbindelser via Power Platform Tools Visual Studio Code udvidelse. Udvidelsen indeholder funktionalitet til at administrere godkendelsesprofiler, der gemmer udviklernes forbindelser til miljøer på tværs af forskellige tenants.

  2. Udviklere opretter branches i Visual Studio Code til deres individuelle arbejde.

  3. Udviklere udtrækker løsninger fra Dataverse og angiver løsningsversioner ved hjælp af Power Platform CLI-opgaver, der er defineret i Visual Studio Code. Processen omfatter udpakning af løsning .zip filer og placering af de udpakkede filer i dedikerede mapper.

  4. Udviklere vælger derefter ("cherry-pick") de ændringer, der er knyttet til deres fuldførte arbejde, hvilket hjælper med at sikre, at ufuldstændige ændringer fra andre udviklere i det delte udviklingsmiljø ikke committes.

  5. Udviklere skubber derefter deres cherry-pickede ændringer til Git som pull requests til peer review.

Fase 2: Opret og valider udrulningspakker

Git-repositorier, Package Deployer og Azure Pipelines bruges til at bygge og udrulle pakker.

  1. Git repositories

    1. Repositories indeholder de versionsstyrede komponenter fra Dataverse.

    2. Cherry-pickede ændringer fra den forrige fase flettes først ind i versionsstyringssystemet, når en pullanmodning er godkendt. Af hensyn til sporbarheden skal du sammenkæde alle relevante arbejdselementer i backloggen, der er knyttet til ændringerne, med pull requesten.

    Arbejdselementer, der er knyttet til pullanmodninger, har en historik over pipelineudførelser og klassiske udgivelser, der indeholder de ændringer, der er omfattet af arbejdselementet. Gennemse denne historik i arbejdselementet for at spore, hvor ændringerne er udrullet.

  2. Package Deployer

    1. Microsoft Package Deployer opretter pakker, der indeholder de løsninger og data, der er nødvendige for udrulning til efterfølgende miljøer, f.eks. test og produktion. Det giver også mulighed for udvidelige funktioner via C#-kode for at udføre yderligere logik før, under eller efter udrulning.

    2. Placér Package Deployer-projektet i det samme repository som de udpakkede løsninger. Den indeholder følgende mapper og filer:

    • PkgAssets indeholder alle løsnings-.zip og datafiler, der skal distribueres som en del af pakken.

    • ImportConfig.xml definerer den rækkefølge, løsningerne udrulles i. Denne fil indeholder også implementeringsindstillingerne for hver løsning, f.eks. om uadministrerede tilpasninger overskrives under implementeringen.

  3. Build-pipeline

    En Azure Pipeline bygger Package Deployer-løsningen:

    1. Pipelinen pakker løsningernes komponenter i kildestyringen i .zip filer og placerer dem i mappen PkgAssets .

    2. Pipelinen committer derefter det opdaterede dll-bibliotek (dynamic-link library) til versionsstyring.

  4. Udrulningspipeline

    1. Buildpipelinen udløser denne Azure Pipeline, når den er fuldført.

    2. Udrulningspipelinen er en pipeline med flere faser:

      1. Første fase: Opret det udrullelige pipelineartefakt, der indeholder pakken fra Package Deployer-projektet.

      2. Anden fase: Deployér pakken fra artefaktet til et CI-miljø (kontinuerlig integration).

        1. CI-miljøet er dedikeret til validering af udrulning. Du logger ikke ind i dette miljø. Hvis en udrulning mislykkes, kan teams løse problemer, før udrulningen påvirker andre test-, integrations- eller produktionsmiljøer.

        2. Udrul til QA- (kvalitetssikring), MIG- (migrering) og INT-miljøer (integration) parallelt eller sekventielt. Antallet af udrulningsfaser afhænger af de miljøer, der er i brug, og udrulningsflowet.

Trin 3: Godkend og frigiv

Denne fase understøtter løbende levering via kontrollerede releases.

  1. Klassiske udgivelser bruger de artefakter, der er produceret af den forrige pipeline, og kan konfigureres til at gennemtvinge godkendelse før udrulning. Brug dem til de mest kontrollerede miljøer, f.eks. UAT og produktion.

    Brug gates før udrulning, når du udruller til produktionsmiljøer for at sikre, at udrulninger er godkendt korrekt. Hvis du vil forhindre utilsigtede produktionsinstallationer, skal du kræve godkendelse fra et foruddefineret antal brugere og genautentificering, før installationen kan fortsætte.

  2. I dette scenarie skal du bruge godkendelseskontroller før udrulning til CD (kontinuerlig levering) for at sikre, at kun fuldt udviklede og testede funktioner udrulles via trinvise udrulninger med godkendelseskontroller. Den forrige fase understøtter CI/CD (kontinuerlig integration og kontinuerlig udrulning), hvor ændringer automatisk fremmes gennem miljøerne.

Fase 4: Udrul og synkroniser hotfixes

Denne fase understøtter hotfixinstallationer til produktions- og udviklingsmiljøer.

En udvikler udløser manuelt denne Azure Pipeline og angiver det logiske navn for programrettelsesløsning. Pipeline:

  1. Udtrækker programrettelsen som både unmanaged og managed fra et hotfixmiljø.

  2. Installerer den administrerede patch i produktionsmiljøet.

  3. Udruller den ikke-administrerede patch i udviklingsmiljøet.

    1. Kører et PowerShell-script, der bruger handlingen AddSolutionComponent Dataverse , og fletter programrettelseskomponenter i den overordnede løsning. Som det sidste trin sletter scriptet programrettelsen fra udviklingsmiljøet.

    2. Næste gang løsningerne udtrækkes, sendes rettelsen til kildestyring via hovedprocessen, da den nu er en del af den primære løsningsstruktur, der er udrullet. Denne proces sker også ved den planlagte sikkerhedskopiering. Du kan køre denne pipeline efter behov, så teams ikke behøver at vente på timeren.

    3. Når løsningerne udrulles til produktion med en højere version end programrettelserne, fjernes programrettelserne ved opgraderingen.

Fase 5: Sikkerhedskopiér udviklingsløsninger

Denne Azure Pipeline kører efter en tidsplan for at sikkerhedskopiere udviklingsløsninger til et separat Git-lager.

Pipeline:

  1. Udtrækker både ikke-administrerede og administrerede løsninger.

  2. Pakker løsningerne ud.

  3. Gemmer ændringer i sikkerhedskopirepositorierne.

  4. Holder hovedlageret opdateret med de færdige funktioner, som teamet committer, mens sikkerhedskopilageret indeholder den nyeste version på tidspunktet for den planlagte kørsel. Denne fremgangsmåde giver dig mere kontrol over mainline-deployment.

Komponenter

Denne referencearkitektur bruger følgende komponenter:

  • Visual Studio Code for:

    • Lokal filialadministration
    • Administration af autorisationsprofiler med Power Platform-udvidelse.
    • Løsningsudtrækning med kommandolinjegrænsefladen i Power Platform.
    • Selektiv medtagelse af ændringer i Git commits.
  • Git-repositorier til:

    • Versionsstyring.
    • Peer review af pull requests.
  • Azure Boards for:

    • Backlogadministration.
    • Sporbarhed af arbejdselementets udrulningspipeline og releases.
  • Azure DevOps pipelines til implementering af CI/CD til løsningsudrulning.

  • Azure-releases til kontrolleret udrulning af testede artefakter til målmiljøerne.

Scenariedetaljer

Denne løsning kombinerer Azure DevOps pipelines og administration af Git-baserede repositories med Power Platform og Dynamics 365 implementeringer. Resultatet er en skalerbar ALM-tilgang, der understøtter teams med flere udviklere, udrulninger på tværs af flere miljøer og peer reviews. Den skaleres med størrelsen af implementeringen og antallet af Dataverse-løsninger, samtidig med at styring, ændringssporing og parallel udvikling håndteres.

Du kan anvende denne tilgang på mange brancher med komplekse storskala Power Platform- og Dynamics 365-løsninger, der bruger Dataverse. Eksempler omfatter detailhandel, finans, produktion, sundhedsvæsen, offentlige myndigheder, energi, telekommunikation, uddannelse, bilbranchen, nonprofitorganisationer, spil, medier og underholdning, rejser og hotel- og restaurationsbranchen, faciliteter og fast ejendom, luftfart, landbrug og sport. Brug denne fremgangsmåde til at etablere en udrulnings- og gennemgangsproces, der skalerer med dit udviklingsteam og din arbejdsbelastning.

I denne fremgangsmåde fokuseres der på ændringskontrol via forgrenings- og peer review-faser i Git for Dynamics 365 og Dataverse fra tilpasninger til kodebaseret udvikling. Det giver mulighed for parametrisering af data i en enkelt pakke, der indeholder Dataverse-løsninger, hvilket giver teams mulighed for at tilpasse deres udrulningstilgang via udvidbar kode i pakken, f.eks. aktiviteter før udrulning eller efter udrulning.

Overvej denne fremgangsmåde, når du definerer en miljøstrategi i discovery-fasen af et projekt.

Denne løsning er mest relevant for:

  • Store implementeringer af Dataverse med flere udviklere på tværs af forskellige brancher.
  • Organisationer, der kræver stærk ændringskontrol, sporing og understøttelse af parallel udvikling.

De primære interessenter omfatter:

  • IT-teams
  • Tekniske teams
  • Projektledere

Du kan bruge denne løsning til at:

  • Undgå at implementere ufærdige funktioner.
  • Muliggør parallel udvikling.
  • Gør det nemmere at spore ændringer.
  • Implementér en peer review-proces før udrulningen.
  • Vedligehold et enkelt job med én handling ved at administrere en enkelt udrullelig pakke.
  • Gem artefakter med mere detaljerede ændringer, og udrul dem ofte for at reducere risikoen for udrulningsfejl.

Overvejelser

Disse overvejelser implementerer søjlerne i Power Platform Well-Architected, et sæt vejledende principper, der forbedrer kvaliteten af en arbejdsbyrde. Få mere at vide i Microsoft Power Platform Well-Architected.

Reliability

Denne arkitektur muliggør forudsigelige udrulninger, understøtter kontrollerede udgivelser og reducerer nedetid ved at flytte risikoen til tidligere automatiserede faser.

  • Pipelines med flere faser: Reducer udrulningsrisikoen ved at validere i hver fase.

  • Dedikeret CI-miljø: Sørg for registrering af tidlige fejl uden at påvirke andre miljøer.

  • Pakkeinstallationsprogram: Sikrer ensartet udrulning og løsningsrækkefølge via ImportConfig.xml.

  • Hotfix-pipeline: Tilbyd en struktureret proces til at anvende presserende rettelser til både produktions- og udviklingsmiljøer.

  • Sikkerhedskopieringspipeline: Bevar planlagte snapshots af DEV-løsninger, og sørg for gendannelsesmuligheder.

Security

Sikr en tydelig ansvarsadskillelse, reviderede godkendelser og sikre automatiserede interaktioner, hvilket reducerer risikoen for uautoriserede eller utilsigtede udrulninger.

  • Tjenesteforbindelser med tjenesteprincipaler: Beskyt ved hjælp af rollebaseret adgang og med kontrolleret sikkerhed i Dataverse.

  • Autentificeringsport: Gennemtving genautentificering og godkendelser, før udrulninger til produktion.

  • Grenpolitikker: Kræv peer review, før du fletter ændringer til beskyttede grene.

  • ADO-tilladelser: Begræns adgangen til pipelines og releases til godkendte brugere.

Driftsmæssig ekspertise

Understøtter optimeret drift via automatiserede pipelines, sporbare ændringer og styringsvenlige processer, der skaleres med team- og løsningskompleksitet.

  • Azure Boards-integration: Giver fuld sporing fra arbejdselement til pull request, build og udgivelse.

  • Strategi for peer review og forgrening: Forbedrer kodekvaliteten og reducerer regressionsrisici.

  • Faseudrulning med godkendelsesgate: Sikrer kontrolleret udrulning af nye funktioner.

  • Automatisering af sikkerhedskopier, hotfixes og mainline-deployeringer: Reducerer manuelle fejl og forbedrer konsistensen.

Ydeevneeffektivitet

Leverer opdateringer hurtigere, behandler større mængder ændringer og skalerer effektivt udviklings- og udrulningskapaciteten på tværs af flere miljøer.

  • Parallelle udrulninger: Øger gennemløbet af udrulningen og reducerer ventetider.

  • Power Platform CLI og cherry-picking af ændringer: Optimerer udtræk af løsninger og kontrol over de ændringer, der bliver committet.

  • Dedikerede YAML-pipelineskabeloner: Understøtter genbrug og reduceret administration.

  • CI-miljø: Fremskynder valideringer uafhængigt af menneskelig kontrol.

Optimering af oplevelse

Teamene har en mere strømlinet, gennemsigtig og ensartet arbejdsgang gennem udviklings- og udrulningscyklusser.

  • Visual Studio Code og Visual Studio Code-udvidelsen Power Platform Tools: Brug moderne værktøjer, og giv en problemfri oplevelse mellem IDE og Dataverse.

  • pull requests: Styrk samarbejde og vidensdeling.

  • Package Deployer-udvidelse (før- eller eftertrin): Tilføj ekstra udrulningstrin, f.eks. dataimport, opdateringer af poster og installationsvalideringer.

  • Arbejdselement, der er knyttet til udrulningshistorikken: Viser en beskrivelse af ændringer.

Næste trin

Når du har implementeret ALM-metoden, skal du konfigurere en struktureret proces for at generere udgivelsesnoter, der tydeligt kommunikerer ændringer og opdateringer.

Du kan f.eks. bruge:

  • Scripting til at læse sammenkædede arbejdselementer og oprette en oversigt.
  • En Microsoft Copilot Studio-agent til at hente oplysninger fra Azure DevOps API'en via en MCP-server (Model Context Protocol) og automatisk generere udgivelsesnoter.

Bidragydere

Microsoft vedligeholder denne artikel. Følgende bidragydere skrev denne artikel.

Hovedforfattere: