Azure DevOps AZ-400 Exam – Study Notes

Microsoft recently released information around the new Azure DevOps exam: – https://www.microsoft.com/en-us/learning/exam-az-400.aspx

This blog post will cover available learning materials and docs links to information relevant to the exam AZ-400, links to these articles will be updated regularly.

Hopefully this will give you a head start on what you need to learn in order to pass the AZ-400 exam.

UPDATE: The following course is the best study resource I have found before I sat and passed this exam: –

These 2 are also very good: –


Introducing Azure DevOps – https://azure.microsoft.com/en-us/blog/introducing-azure-devops/ and https://azure.microsoft.com/en-us/solutions/devops/

And how about some free Azure DevOps labs – https://azuredevopslabs.com/

Checkout Donovan Brown and others demoing off Azure Devops  – https://www.youtube.com/watch?v=FWmcGK714IE

Design a DevOps Strategy (20-25%)
Recommend a migration and consolidation strategy for DevOps tools – Analyze existing artifact (e.g. deployment packages, NuGet) and container repositories
– Analyze existing test management tools
– Analyze existing work management tools
– Recommend migration and integration strategies for artifact repositories, source control, test management, and work management

Azure Test Plans – https://azure.microsoft.com/en-gb/services/devops/test-plans/
Azure Boards – https://docs.microsoft.com/en-us/azure/devops/boards/get-started/what-is-azure-boards?view=vsts&tabs=new-nav
Migrate to Azure DevOps – https://docs.microsoft.com/de-de/azure/devops/articles/migration-overview?view=vsts

Design and implement an Agile work management approach – Identify and recommend project metrics, KPIs, and DevOps measurements (e.g. cycle time, lead time, Azure Kubernetes Service, WIP limit)
– Implement tools and processes to support Agile work management
– Mentor team members on Agile techniques and practices
– Recommend an organization structure that supports scaling Agile practices
– Recommend in-team and cross-team collaboration mechanisms
Implement tools and processes to support Agile work management – https://docs.microsoft.com/en-us/azure/devops/boards/get-started/what-is-azure-boards?view=vsts&tabs=new-nav

Design a quality strategy – Analyze existing quality environment
– Identify and recommend quality metrics
– Recommend a strategy for feature flag lifecycle
– Recommend a strategy for measuring and managing technical debt
– Recommend changes to team structure to optimize quality
– Recommend performance testing strategy

Design a secure development process – Inspect and validate code base for compliance
– Inspect and validate infrastructure for compliance
– Recommend a secure development strategy
– Recommend tools and practices to integrate code security validation (e.g. static code analysis)
– Recommend tools and practices to integrate infrastructure security validation

Getting started with the Secure DevOps Kit for Azure (AzSK) – https://azure.microsoft.com/en-gb/resources/videos/azure-friday-getting-started-with-the-secure-devops-kit-for-azure-azsk/
Use InSpec for compliance automation of your Azure infrastructure – https://docs.microsoft.com/en-us/azure/chef/chef-inspec-overview
Mindset shift to a DevSecOps culture – https://docs.microsoft.com/en-us/azure/devops/learn/devops-at-microsoft/security-in-devops
Static Code Analyis – https://marketplace.visualstudio.com/items?itemName=Veracode.veracode-vsts-build-extension
Learn how to add continuous security validation to your CI/CD pipeline – https://docs.microsoft.com/en-us/azure/devops/articles/security-validation-cicd-pipeline?view=vsts

Design a tool integration strategy – Design a license management strategy (e.g. VSTS users, concurrent pipelines, test environments, open source software licensing, DevOps tools and services, package management licensing)
– Design a strategy for end-to-end traceability from work items to working software
– Design a strategy for integrating monitoring and feedback to development teams
– Design an authentication and access strategy
– Design a strategy for integrating on-premises and cloud resources


Implement DevOps Development Processes (20-25%)
Design a version control strategy – Recommend branching models
– Recommend version control systems
– Recommend code flow strategy

Git –  https://docs.microsoft.com/en-us/azure/devops/learn/git/what-is-git
Branch policies –  https://docs.microsoft.com/en-gb/azure/devops/repos/git/branch-policies?view=vsts

Implement and integrate source control – Integrate external source control
– Integrate source control into third-party continuous integration and continuous deployment (CI/CD) systems

Implement and manage build infrastructure – Implement private and hosted agents
– Integrate third party build systems
– Recommend strategy for concurrent pipelines
– Manage VSTS pipeline configuration (e.g. agent queues, service endpoints, pools, webhooks)

Pipelines – https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=vsts
Concurrent Jobs – https://docs.microsoft.com/en-us/azure/devops/pipelines/licensing/concurrent-jobs-vsts?view=vsts

Implement code flow – Implement pull request strategies
– Implement branch and fork strategies
– Configure branch policies

Pull Requests – https://blogs.msdn.microsoft.com/devops/2014/06/10/conduct-a-git-pull-request-on-visual-studio-online/
Branch Policies:-
https://docs.microsoft.com/en-us/azure/devops/repos/git/branch-policies?view=vsts
https://blogs.msdn.microsoft.com/buckh/2016/03/20/gated-checkin-for-git-using-branch-policies-to-run-a-build-in-vsts-and-tfs/
https://docs.microsoft.com/en-us/azure/devops/repos/git/branch-policies-overview?view=vsts

Implement a mobile DevOps strategy – Manage mobile target device sets and distribution groups
– Manage target UI test device sets
– Provision tester devices for deployment
– Create public and private distribution groups

Mobile DevOps – https://channel9.msdn.com/Shows/DevOps-Lab/Real-World-Mobile-DevOps-with-VSTS-and-App-Center
UI Tests – https://docs.microsoft.com/en-us/appcenter/test-cloud/vsts-plugin
Distribution Groups – https://docs.microsoft.com/en-us/appcenter/distribution/groups

Managing application configuration and secrets – Imhttps://docs.microsoft.com/en-us/appcenter/distribution/groupsplement a secure and compliant development process
– Implement general (non-secret) configuration data
– Manage secrets, tokens, and certificates
– Implement applications configurations (e.g. Web App, Azure Kubernetes Service, containers)
– Implement secrets management (e.g. Web App, Azure Kubernetes Service, containers, Azure Key Vault)
– Implement tools for managing security and compliance in the pipeline

Secure DevOps Kit for Azure – https://www.microsoft.com/itshowcase/Article/Content/919/Building-cloud-apps-using-the-Secure-DevOps-Kit-for-Azure
Manage secrets, tokens and certs – https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=vsts
Implement applications configurations (e.g. Web App, Azure Kubernetes Service, containers) – https://azuredevopslabs.com/
Implement secrets management – https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/manage-conditional-access?view=vsts
Implement tools for managing security and compliance in the pipeline – https://docs.microsoft.com/en-us/azure/devops/release-notes/2018/sprint-141-update


Implement Continuous Integration (10-15%)
Manage code quality and security policies – Monitor code quality
– Configure build to report on code coverage
– Manage automated test quality
– Manage test suites and categories
– Monitor quality of tests
– Integrate security analysis tools (e.g. SonarQube, WhiteSource Bolt, Open Web Application Security Project)

Monitor Code Quality – https://docs.microsoft.com/en-us/azure/architecture/example-scenario/apps/devops-dotnet-webapp
DevOps Reporting – https://azure.microsoft.com/en-gb/services/devops/reporting/
Automated Testing – https://channel9.msdn.com/Events/Microsoft-Azure/Azure-DevOps-Launch-2018/A104
Test suites and categories – https://www.azuredevopslabs.com/labs/azuredevops/testmanagement/
Integrate security analysis tools – https://docs.microsoft.com/en-us/azure/devops/java/sonarqube?view=vsts

Implement a container build strategy – Create deployable images (e.g. Docker, Azure Container Registry)
– Analyze and integrate Docker multi-stage builds

Container DevOps in Azure – https://channel9.msdn.com/Events/Build/2018/BRK2142
Add a container registry in Azure – https://www.linkedin.com/learning/developing-container-based-applications-with-visual-studio-and-azure/add-a-container-registry-in-azure and https://blogs.msdn.microsoft.com/devops/2017/06/09/deploying-applications-to-azure-container-service/

Implement a build strategy – Design build triggers, tools, integrations, and workflow
– Implement a hybrid build process
– Implement multi-agent builds
– Recommend build tools and configuration
– Set up an automated build workflow

Design build triggers – https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=vsts&tabs=yaml and https://docs.microsoft.com/en-us/azure/devops/pipelines/release/triggers?view=vsts
Azure Pipelines – https://docs.microsoft.com/en-us/azure/devops/pipelines/?view=vsts
DevOps tool integrations – https://azure.microsoft.com/en-gb/products/devops-tool-integrations/
DevOps overview for Azure DevOps Services – https://docs.microsoft.com/en-us/azure/devops/user-guide/devops-alm-overview?view=vsts


Implement Continuous Delivery (10-15%)
Design a release strategy – Recommend release tools
– Identify and recommend release approvals and gates
– Recommend strategy for measuring quality of release and release process
– Recommend strategy for release notes and documentation
– Select appropriate deployment pattern

Use the visual designer – https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started-designer?view=vsts&tabs=new-nav
Use approvals and gates to control your deployment – https://docs.microsoft.com/en-us/azure/devops/pipelines/release/deploy-using-approvals?view=vsts
Release approvals and gates overview – https://docs.microsoft.com/en-us/azure/devops/pipelines/release/approvals/?view=vsts
Release deployment control using gates – https://docs.microsoft.com/en-us/azure/devops/pipelines/release/approvals/gates?view=vsts

Set up a release management workflow – Automate inspection of health signals for release approvals by using release gates
– Configure automated integration and functional test execution
– Create a release pipeline (e.g. Azure Kubernetes Service, Service Fabric, WebApp)
– Create multi-phase release pipelines
– Integrate secrets with release pipeline
– Provision and configure environments
– Manage and modularize tasks and templates (e.g. task and variable groups)

UI test with Selenium – https://docs.microsoft.com/en-us/azure/devops/pipelines/test/continuous-test-selenium?view=vsts
Run Functional Tests task – https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/test/run-functional-tests?view=vsts
Set up environments to run continuous test tasks with your build tasks – https://docs.microsoft.com/en-us/azure/devops/pipelines/test/set-up-continuous-test-environments-builds?view=vsts
Run automated tests from test plans – https://docs.microsoft.com/en-us/azure/devops/test/run-automated-tests-from-test-hub?view=vsts
Continuously build, test and deploy to any platform and cloud – https://azure.microsoft.com/en-gb/services/devops/pipelines/
Define your multi-stage continuous deployment (CD) pipeline – https://docs.microsoft.com/en-us/azure/devops/pipelines/release/define-multistage-release-process?view=vsts
Multi-phase builds – VSTS Sprint 123 Update – https://docs.microsoft.com/en-us/azure/devops/release-notes/2017/sep-15-team-services
Release stages, queuing policies, and options – https://docs.microsoft.com/en-us/azure/devops/pipelines/release/environments?view=vsts
Multiple jobs – https://docs.microsoft.com/en-us/azure/devops/pipelines/process/multiple-phases?view=vsts&tabs=yaml
Azure Key Vault task – https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-key-vault?view=vsts
Task and variable groups – https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=vsts&tabs=yaml
Task groups for builds and releases – https://docs.microsoft.com/en-us/azure/devops/pipelines/library/task-groups?view=vsts

Implement an appropriate deployment pattern – Implement blue-green deployments
– Implement canary deployments
– Implement progressive exposure deployments
– Scale a release pipeline to deploy to multiple endpoints (e.g. deployment groups, Azure Kubernetes Service, Service Fabric)

Implement blue-green deployments – https://azure.microsoft.com/en-us/blog/blue-green-deployments-using-azure-traffic-manager/
https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/jenkins/jenkins-aks-blue-green-deployment.md
Implement progressive exposure deployments – https://blogs.msdn.microsoft.com/devops/2018/05/07/release-gates-enable-progressive-exposure-and-phased-deployments/
https://docs.microsoft.com/en-us/azure/devops/learn/devops-at-microsoft/progressive-experimentation-feature-flags
Explore how to progressively expose your Azure DevOps extension releases in production to validate, before impacting all users – https://docs.microsoft.com/en-us/azure/devops/articles/phase-rollout-with-rings?view=vsts


Implement Dependency Management (5-10%)
Design a dependency management strategy – Recommend artifact management tools and practices
– Abstract common packages to enable sharing and reuse
– Inspect codebase to identify code dependencies that can be converted to packages
– Identify and recommend standardized package types and versions across the solution
– Refactor existing build pipelines to implement version strategy that publishes packages

Getting started with package management using Azure Artifacts – https://www.youtube.com/watch?v=b3BPkyikvNM
Azure Artifacts – https://azure.microsoft.com/en-gb/services/devops/artifacts/
Secure and share packages using feed permissions – https://docs.microsoft.com/en-us/azure/devops/artifacts/feeds/feed-permissions?view=vsts&tabs=new-nav
Collaborate more and build faster with packages – https://docs.microsoft.com/en-us/azure/devops/artifacts/collaborate-with-packages?view=vsts
Versioning – https://marketplace.visualstudio.com/items?itemName=gittools.gitversion

Manage security and compliance – Inspect open source software packages for security and license compliance to align with corporate standards (e.g. GPLv3)
– Configure build pipeline to access package security and license rating (e.g. Black Duck, White Source)
– Configure secure access to package feeds

Configure build pipeline to access package security and license rating (e.g. Black Duck, White Source) – https://marketplace.visualstudio.com/items?itemName=black-duck-software.hub-tfs
Configure secure access to package feeds – https://docs.microsoft.com/en-us/azure/devops/artifacts/feeds/feed-permissions?view=vsts&tabs=new-nav


Implement Application Infrastructure (15-20%)
Design an infrastructure and configuration management strategy – Analyze existing and future hosting infrastructure
– Analyze existing Infrastructure as Code technologies
– Design a strategy for managing technical debt on templates
– Design a strategy for using transient infrastructure for parts of a delivery lifecycle
– Design a strategy to mitigate infrastructure state drift

Analyze existing Infrastructure as Code technologies – https://docs.microsoft.com/en-us/azure/devops/learn/what-is-infrastructure-as-code
Design a strategy for managing technical debt on templates – https://www.azuredevopslabs.com/labs/azuredevops/sonarcloud/
Design a strategy for using transient infrastructure for parts of a delivery lifecycle – https://docs.microsoft.com/en-us/dotnet/standard/modernize-with-azure-and-containers/modernize-existing-apps-to-cloud-optimized/reasons-to-modernize-existing-net-apps-to-cloud-optimized-applications
Design a strategy to mitigate infrastructure state drift – https://blogs.msdn.microsoft.com/tomholl/2017/10/16/detecting-drift-between-arm-templates-and-azure-resource-groups/

Implement Infrastructure as Code – Create nested resource templates
– Manage secrets in resource templates
– Provision Azure resources
– Recommend an Infrastructure as Code (IaC) strategy
– Recommend appropriate technologies for configuration management

Create nested resource templates – https://samcogan.com/modularisation-and-re-use-with-nested-arm-templates/
Manage secrets in resource templates – https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-keyvault-parameter
Provision Azure resources – https://blogs.msdn.microsoft.com/azuredev/2017/02/11/iac-on-azure-an-introduction-of-infrastructure-as-code-iac-with-azure-resource-manager-arm-template/
Recommend an Infrastructure as Code (IaC) strategy – https://www.youtube.com/watch?v=eFo9cdxG9Hs

Manage Azure Kubernetes Service infrastructure – Provision Azure Kubernetes Service (e.g. using ARM templates, CLI)
– Create deployment file for publishing to Azure Kubernetes Service (e.g. kubectl, Helm)
– Develop a scaling plan

Provision Azure Kubernetes Service (e.g. using ARM templates, CLI) – https://www.azuredevopslabs.com/labs/vstsextend/kubernetes/
Create deployment file for publishing to Azure Kubernetes Service (e.g. kubectl, Helm) –  https://docs.microsoft.com/en-us/azure/devops-project/azure-devops-project-aks
Develop a scaling plan – https://docs.microsoft.com/en-us/azure/devops/organizations/projects/about-projects?view=vsts&tabs=new-nav

Implement infrastructure compliance and security – Implement compliance and security scanning
– Prevent drift by using configuration management tools
– Set up an automated pipeline to inspect security and compliance

Implement compliance and security scanning – https://docs.microsoft.com/en-us/azure/devops/articles/team-services-security-whitepaper?view=vsts
Prevent drift by using configuration management tools – https://docs.microsoft.com/en-us/azure/automation/tutorial-configure-servers-desired-state


Implement Continuous Feedback (10-15%)
Recommend and design system feedback mechanisms – Design practices to measure end-user satisfaction (e.g. Send a Smile, app analytics)
– Design processes to capture and analyze user feedback from external sources (e.g. Twitter, Reddit, Help Desk)
– Design routing for client application crash report data (e.g. HockeyApp)
– Recommend monitoring tools and technologies
– Recommend system and feature usage tracking tools

Design processes to capture and analyze user feedback from external sources – https://docs.microsoft.com/en-us/azure/devops/project/feedback/get-feedback?view=vsts
https://docs.microsoft.com/en-us/azure/devops/test/provide-stakeholder-feedback?view=vsts
Design routing for client application crash report data (e.g. HockeyApp) – https://hockeyapp.net/features/crashreports/
https://azure.microsoft.com/en-gb/services/hockeyapp/
Recommend monitoring tools and technologies – https://azure.microsoft.com/en-gb/product-categories/management-tools/

Implement process for routing system feedback to development teams – Configure crash report integration for client applications
– Develop monitoring and status dashboards
– Implement routing for client application crash report data (e.g. HockeyApp)
– Implement tools to track system usage, feature usage, and flow
– Integrate and configure ticketing systems with development team’s work management system (e.g. IT Service Management connector, ServiceNow Cloud Management, App Insights work items)

Configure crash report integration for client applications –
Develop monitoring and status dashboards – https://azure.microsoft.com/en-us/services/devops/reporting/
Implement routing for client application crash report data (e.g. HockeyApp) – https://azure.microsoft.com/en-gb/services/hockeyapp/

Optimize feedback mechanisms – Analyze alerts to establish a baseline
– Analyze telemetry to establish a baseline
– Perform live site reviews and capture feedback for system outages
– Perform ongoing tuning to reduce meaningless or non-actionable alerts

Analyze alerts to establish a baseline –
Perform live site reviews and capture feedback for system outages – https://docs.microsoft.com/en-us/azure/devops/learn/devops-at-microsoft/live-site-culture-and-reliability