Microsoft AZ-400: Pakketbeheer en Artefactbeheer — Studiegids
Onderdeel van de Microsoft DevOps Engineer Expert AZ-400 — Studiegids. Oefen met geverifieerde antwoorden in het Microsoft-examencentrum, of doe getimede oefentests op ExamRoll.io.
Overzicht
Pakketbeheer is de ruggengraat van reproduceerbare builds, betrouwbare deployments en veilige toeleveringsketens in Azure DevOps. Azure Artifacts centraliseert de opslag en het beheer van pakketten voor verschillende ecosystemen—NuGet, npm, Maven, Gradle en Universal packages—terwijl het upstream caching van openbare registers en fijnmazige controles voor promotie, retentie en permissies mogelijk maakt. In combinatie met de automatisering van semantische versionering en tools voor beveiliging/compliance, stelt het u in staat om te standaardiseren hoe interne en externe afhankelijkheden op schaal worden geproduceerd, gevonden, goedgekeurd en gebruikt.
Kernconcepten van Azure Artifacts
Een feed is de eenheid voor opslag en toegangscontrole voor pakketten. Teams organiseren feeds doorgaans per product, platform of vertrouwensgrens (bijv. één feed voor alle openbare OSS-afhankelijkheden via upstream, één voor gedeelde interne bibliotheken en één per product). Feeds ondersteunen meerdere pakkettypes, elk met zijn eigen client-tooling.
Views implementeren een gefaseerd promotiemodel binnen één enkele feed:
- local: alle nieuw gepubliceerde pakketten verschijnen hier
- prerelease: gebruikt om bèta/nightly builds beschikbaar te stellen aan early adopters en integratie-pipelines
- release: alleen voor productie goedgekeurde pakketten worden hiernaar gepromoveerd voor breed gebruik Gebruikers koppelen aan een specifieke view om automatisch instabiele content te vermijden. Promoveer of demoveer versies als onderdeel van uw releaseproces om de “blast radius” te beheersen.
Upstream sources verbinden een feed met openbare registers (NuGet.org, npmjs.com, Maven Central). Wanneer ingeschakeld, lossen ontwikkelaars openbare afhankelijkheden op via uw feed. Azure Artifacts fungeert als transparante proxy en cachet de exacte versies die worden gebruikt, wat de betrouwbaarheid verbetert, air-gapped scenario’s mogelijk maakt en u in staat stelt om later de toelevering te “bevriezen” door nieuwe upstream downloads uit te schakelen. U kunt per feed instellen welke upstreams zijn ingeschakeld om aan beleid te voldoen.
Retentie wordt afgedwongen om opslagkosten te verlagen en tegelijkertijd te behouden wat belangrijk is. Definieer beleid om de laatste N versies per pakket te bewaren, alleen versies te behouden die naar de release-view zijn gepromoveerd, en oude prereleases automatisch te verwijderen. Pin specifieke versies vast om ze van de opschoning uit te sluiten (bijv. versies die zijn ingebed in een langlevende product-branch). Stem retentieperiodes af op audit- en rollback-vereisten om een balans te vinden tussen traceerbaarheid en opslagkosten.
Feed-permissies volgen het least-privilege principe:
- Owner: beheert feed-instellingen, permissies, views en retentiebeleid
- Contributor: kan pakketten publiceren, de-listen, afkeuren en promoten; kan geen instellingen op feed-niveau wijzigen
- Reader: alleen herstellen/gebruiken; kan geen pakketten wijzigen Let op: “Collaborator” is geen Azure Artifacts feed-rol. Als u die term tegenkomt, vertaal dan de beoogde bevoegdheid (vaak “kan publiceren”) naar de Contributor-rol in Azure Artifacts.
Beheren van Pakket-ecosystemen
NuGet (dotnet/C#)
- Versionering: Geef de voorkeur aan SemVer 2.0.0 (bijv. 1.4.0, 1.4.1-alpha.3+build.45). Pre-release labels sturen de distributie via views; gebruikers van de release-view komen nooit -alpha/-beta varianten tegen.
- Publiceren:
undefined
of
undefined
, gevolgd door
undefined
of
undefined
naar uw feed-endpoint. Gebruik Azure Pipelines NuGet-taken en promoveer naar prerelease/release views bij het passeren van quality gates.
- Gebruiken: configureer
undefined
met de source URI van de feed (optioneel gespecificeerd voor een view). Herstel via
undefined
of de NuGet Restore-taak.
- Geauthenticeerde feeds: gebruik de Azure Artifacts Credential Provider (ingebouwd in recente dotnet SDK’s) of de NuGet Authenticate pipeline-taak. Voor ontwikkelaars: log in via Visual Studio/Azure CLI; voor CI: geef de build service principal Reader/Contributor-rechten naar behoefte.
npm (JavaScript/TypeScript)
- Scoped packages: publiceer interne pakketten onder een organisatie-scope, bijv. @fabrikam/button. Scopes sluiten van nature aan bij feed-permissies en maken het mogelijk om gebruik tussen projecten te beperken.
- .npmrc: stel
undefined
in,
undefined
, en optioneel
undefined
voor multi-registry setups. Gebruik in CI de npm Authenticate-taak om een tijdelijk auth-token te injecteren. Voor lokaal gebruik:
undefined
met een PAT.
- Private registry: Azure Artifacts fungeert als een private npm-registry met een upstream naar npmjs.com. Gebruik alleen pakketten uit de release-view om niet-goedgekeurde prereleases te blokkeren.
Maven en Gradle (Java/Kotlin)
- Publiceren (Maven): definieer
undefined
in
undefined
dat verwijst naar uw feed en een server-entry in
undefined
met credentials (PAT of service connection). Gebruik
undefined
of de Maven-taak in Azure Pipelines.
- Publiceren (Gradle): pas de
undefined
-plugin toe en configureer
undefined
en publiceer vervolgens met
undefined
.
- Dependency resolution: voeg uw feed-endpoint (optioneel met view-suffix) toe aan
undefined
in Gradle of
undefined
in
undefined
voor Maven. Gebruik
undefined
voor ontwikkel-builds en promoveer release-versies naar de release-view voor stabiele gebruikers.
Universal packages (binaire blobs, scripts, modellen)
- Versionering: volg SemVer-stijl of gehele getallen als versies; elke publicatie is onveranderlijk. Gebruik dit voor artefacten die niet in taalspecifieke ecosystemen passen.
- Publish/download taken: gebruik de Azure DevOps-taken Universal Publish en Universal Download in pipelines, of de Azure CLI (
undefined
). Authenticeer via een Azure DevOps service connection of een ingelogde identiteit.
- Gebruiksscenario’s: gedeelde CLI’s, IaC-modules, testdata, ML-modellen, of cross-language assets waarvoor u RBAC, retentie en promotie nodig heeft, maar geen taalspecifieke tooling.
Controles voor Beveiliging en Compliance
Scannen op kwetsbaarheden moet worden afgedwongen bij het committen en builden. Integreer tools die bekende kwetsbare afhankelijkheden identificeren en advies geven voor upgrades. In veel Azure DevOps-omgevingen wordt SonarQube gebruikt als onderdeel van de ‘quality gate’-strategie om problemen te signaleren, inclusief regels die risico’s in afhankelijkheden aan het licht brengen; je kunt dit aanvullen met gespecialiseerde SCA-tools (bijv. Snyk, Mend/WhiteSource of Black Duck) voor een meer uitputtende CVE-dekking over verschillende ecosystemen. Voor .NET kunnen
undefined
en voor npm
undefined
extra signalen geven; voor Java kan OWASP Dependency-Check als een build-stap worden toegevoegd.
Licentienaleving wordt afgedwongen door SBOM’s of manifesten te scannen tegen een goedgekeurde ‘allowlist’ van licenties. Black Duck wordt vaak toegevoegd aan Azure Pipelines om builds te blokkeren wanneer beperkte licenties worden gedetecteerd. Sla scanrapporten op als pipeline-artefacten en voeg ze toe aan releases voor auditeerbaarheid.
Toegestane/geblokkeerde pakketten kunnen het beste als beleid worden geïmplementeerd in plaats van met ad-hoc uitzonderingen:
- Beperk gebruikers tot de ‘release view’; promoot alleen goedgekeurde versies.
- Schakel nieuwe upstream downloads uit wanneer je een ‘freeze’ nodig hebt, zodat alleen versies uit de cache beschikbaar zijn.
- Gebruik npm scopes en permissies per feed om namespaces te beperken.
- Voeg pipeline-controles toe om builds te laten mislukken bij niet-toegestane pakketten of licenties, en gebruik de promotie van artefacten als goedkeuringsworkflow.
Audit en governance profiteren van gecentraliseerde feeds met upstream caching: je krijgt één centraal punt voor de binnenkomst van pakketten, onveranderlijke geschiedenissen en een consistente herkomst voor het genereren van SBOM’s.
Automatisering van Versiebeheer en Kostenbeheer van Opslag
Semantisch versiebeheer is het makkelijkst te onderhouden met automatisering:
- GitVersion leest je Git-geschiedenis en naamgevingsconventies voor branches om voorspelbaar versies te berekenen (bijv.
undefined
produceert 1.4.0,
undefined
produceert 1.5.0-feature.3). Configureer de modus (Mainline of Continuous Delivery), pre-release labels en tag-bronnen. Injecteer de berekende versie in de
undefined
,
undefined
, of Gradle’s
undefined
-eigenschap voordat je inpakt.
- Automatisch ophogen van versies kan de semantiek van commits of PR-labels volgen. Bijvoorbeeld,
undefined
verhoogt niet,
undefined
verhoogt de minor-versie,
undefined
verhoogt de patch-versie;
undefined
verhoogt de major-versie. Gebruik een pipeline-stap om
undefined
in te stellen en de versie door te geven aan
undefined
-taken.
- Pre-release labels moeten de intentie van de branch weerspiegelen (bijv.
undefined
op feature-branches,
undefined
op release-branches). Publiceer pre-releases naar de ‘prerelease view’ en promoot ze naar de ‘release view’ na een succesvolle staging.
Retentie en het beheer van opslagkosten vereisen proactief beleid:
- Automatisch opschonen: configureer retentie per feed om oudere, niet-gepromoveerde versies na N dagen/versies te verwijderen. Verleng de periodes voor kritieke bibliotheken met een lange ondersteuningshorizon.
- Vastpinnen: pin expliciet versies die zijn ingebed in langlevende producten of compliance-snapshots om ze uit te sluiten van verwijdering.
- Opslagoptimalisatie: geef de voorkeur aan upstream caching boven het lokaal publiceren van duplicaten van openbare pakketten, en consolideer feeds waar praktisch om overhead te verminderen. Monitor de groei van de feed-opslag en pas de beleidsdrempels periodiek aan.
Specifieke details voor upstream-bronnen:
- NuGet: verbind met
undefined
als upstream om NuGet.org-pakketten te proxyen en te cachen.
- npm: verbind met
undefined
om npmjs.com-afhankelijkheden te cachen achter je geauthenticeerde feed.
- Maven: verbind met Maven Central (bijv.
undefined
) zodat zakelijke gebruikers via jouw feed met één enkele URL kunnen ophalen.
### Praktijkscenario
Adobe moet het beheer van packages standaardiseren over meerdere clouds en programmeertalen, terwijl het aantal storingen door instabiliteit van publieke registries wordt verminderd en licentiebeleid wordt afgedwongen. Teams publiceren interne NuGet-, npm- en Maven-artefacten en delen grote, taalonafhankelijke CLI-tools.
- Gecentraliseerde feeds en upstreams opzetten
- Actie: Maak drie Azure Artifacts-feeds aan: “oss-upstream” (met upstreams naar NuGet.org, npmjs.com, Maven Central), “shared-libs” (interne libraries) en “productA” (packages op applicatieniveau). Schakel views (local, prerelease, release) in op alle feeds.
- Reden: “oss-upstream” wordt het enige punt voor ingress/caching; “shared-libs” en “productA” scheiden vertrouwensgrenzen en promotie-workflows.
- Clientconsumptie configureren via views
- Actie: Verwijs nuget.config, .npmrc, settings.xml/Gradle repositories naar de release-view van elke feed voor runtime-consumenten, en naar de prerelease-view voor integratietest-pipelines.
- Reden: Views zorgen ervoor dat alleen gepromote, goedgekeurde packages productieconsumenten bereiken zonder de clientconfiguraties te hoeven wijzigen.
- Publicatie met semantic versioning implementeren
- Actie: Voeg GitVersion toe aan CI voor libraries en apps. Stuur versie-injectie aan in de velden voor
dotnet pack,npm version(zonder Git-tagging, beheerd door de pipeline) en Gradle/Maven-versie. Publiceer naar delocal-view; promoveer naarprereleasena een succesvolle CI; promoveer automatisch naarreleasena staging-tests. - Reden: Deterministische versionering die is afgestemd op de Git-flow zorgt voor coherente pre-release labels en promoties die klaar zijn voor automatisering.
- Geauthenticeerde feeds en de ontwikkelaarservaring beveiligen
- Actie: Gebruik NuGet Authenticate- en npm Authenticate-taken in pipelines; schakel de Azure Artifacts Credential Provider in voor de machines van ontwikkelaars; configureer Maven settings.xml-servers met PATs die worden geroteerd via Azure DevOps-variabelengroepen.
- Reden: Naadloze, op tokens gebaseerde authenticatie voorkomt wildgroei van credentials en ondersteunt niet-interactieve CI-restores.
- Kwetsbaarheids- en licentiebeleid afdwingen
- Actie: Voeg SonarQube quality gates toe aan builds; integreer Black Duck om licentie-allowlists af te dwingen en builds met niet-toegestane licenties of CVE’s met een hoge ernst te blokkeren. Voer voor npm en .NET
npm auditendotnet list package --vulnerableuit; publiceer SBOMs als build-artefacten. - Reden: Meerdere complementaire scanners verminderen blinde vlekken; Black Duck biedt licentiecompliance op schaal, terwijl SonarQube en ecosysteemtools beveiligingsregressies vroegtijdig opsporen.
- Ingress beheren en bevriezen wanneer nodig
- Actie: Sta upstream-downloads alleen toe vanuit “oss-upstream”; schakel nieuwe upstream-ingresses uit tijdens een incident response om de toeleveringsketen te bevriezen. Vertrouw op gecachte packages om builds te onderhouden.
- Reden: Een knelpunt maakt snelle indamming mogelijk als een publieke registry is gecompromitteerd of instabiel is.
- Retentie en pinning toepassen
- Actie: Bewaar de laatste 5 versies voor shared-libs en productA; verwijder niet-gepromote versies die ouder zijn dan 30 dagen; pin versies die gekoppeld zijn aan LTS-branches en wettelijke baselines.
- Reden: Geautomatiseerde opschoning beperkt de opslagkosten, terwijl pins de auditeerbaarheid en de mogelijkheid tot rollback waarborgen.
- Toegang delegeren volgens het ’least-privilege’-principe
- Actie: Wijs de rol ‘Owners’ toe aan platform engineering; ‘Contributors’ aan library-beheerders die moeten publiceren/deprecaten; ‘Readers’ aan productteams die alleen release-artefacten consumeren.
- Reden: Lijnt bevoegdheden uit met verantwoordelijkheden; ontwikkelaars kunnen packages uit de lijst halen of deprecaten zonder brede administratieve rechten.
- Universal packages voor taalonafhankelijke tools
- Actie: Publiceer interne CLI’s en IaC-modules als Universal packages via Universal Publish/Download-taken; versioneer ze semantisch en promoveer ze via views.
- Reden: Biedt RBAC, retentie en promotie voor niet-taalspecifieke assets met een consistent consumptiemodel.
- Meten en itereren
- Actie: Monitor de opslag van feeds, cache hit rates en doorlooptijden voor promoties; pas retentiedrempels, upstream-beleid en promotiecriteria dienovereenkomstig aan.
- Reden: Continue afstemming waarborgt de betrouwbaarheid, kostenefficiëntie en compliance naarmate de schaal van de portfolio evolueert.
← Monitoring · Alle domeinen · Agile Planning en Werkbeheer →
Oefen deze vragen → · Getimede oefening op ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Slaag voor je examen →