Lab: AZ-400 end-to-end delivery challenge
Outcome
Take one safe training change from a tracked work item through pull request, validated pipeline, immutable artifact, governed deployment, security gate, and production-style telemetry. This is the course synthesis challenge.
Before you begin
Use a personal GitHub/Azure DevOps training project and an Azure training subscription only if you are authorized and have a cost limit. Use a sample application and fake/test secrets only. Read the cleanup section before creating resources.
Scenario
The product team wants a new feature released progressively. The platform team requires traceability, protected default branch, YAML CI, reproducible artifacts, least-privilege Azure deployment, a production approval, security scanning, and a measurable feedback signal.
Do
- Create an issue/work item with acceptance criteria, rollout metric, rollback trigger, and a reference ID.
- Create a short-lived branch, implement a small safe feature behind a feature flag, and open a pull request that links the work item.
- Build CI in either GitHub Actions or Azure Pipelines: lint/unit test, a structured test result, security/dependency check, immutable versioned artifact, and pull-request trigger.
- Protect the default branch with required review and required checks. Deliberately fail one safe test/scanner fixture and show that merge is blocked.
- Define training infrastructure as code. Add a preview/what-if stage and deploy through a scoped, preferably federated identity—not a stored subscription Owner credential.
- Deploy the artifact to a protected training environment. Require an approval/check, record the artifact version and deployment evidence, and use an idempotent deployment path.
- Emit one feature-use event and a health/availability signal. Create an alert/action group and a dashboard/query that compares the flagged cohort or deployment version with expected behavior.
- Update the work item and release note with the deployed version, environment, evidence, and rollout decision.
Verify
Produce an evidence chain that another person can follow without oral context:
- Work item → branch/PR → code review/checks.
- Pipeline run → test/security evidence → immutable artifact version.
- IaC preview → deployment identity/scope → environment approval.
- Deployment version → telemetry/alert → follow-up work or rollout decision.
Break and fix
- Introduce a safe test or scanner finding; prove branch protection blocks merge, then remediate it.
- Attempt deployment with the environment approval ungranted; record the pause/rejection, then complete authorized approval.
- Toggle the feature flag or use a controlled failing route. Verify the telemetry/alert signal and document whether you roll forward, roll back, or stop exposure.
- Re-run the deployment. Prove that it converges without unintended duplicate resources or release drift.
Clean up
Disable or delete the training feature flag, alert/action group, environment, service connections/role assignments, training IaC resources, artifacts, repositories, and test identities when they are no longer needed. Confirm no production access or billable resource remains.
Reflection
Explain the difference among a branch-protection check, a security gate, an environment approval, a service-connection role assignment, a feature flag, and an alert. Each is a control at a different point in the delivery system.
Sources and re-audit
- GitHub branch protection, Azure DevOps workload identity service connections, and Application Insights overview, checked 2026-08-22.
Re-audit when branch protection, pipeline identity federation, deployment environments, feature flags, or telemetry alerting changes.
Related
Processes and communications · CI · Release strategy · Security · Feedback · All labs