AZ-400 Microsoft Azure DevOps Solutions
Intro
This is one guide in a series of guides that can act as study material for Microsoft’s new Azure oriented certification exams.
The AZ-400 exam, which is titled “Microsoft Azure DevOps Solutions” and has a target audience of Azure DevOps Engineers. This exam was in beta for some time and was recently released proper in February 2019. Passing this exam is one requirement to earn the “Microsoft Certified: Azure DevOps Engineer” certification, the other being an “Azure Administrator Associate” or “Azure Developer Associate”. Going forward, most Microsoft certifications are moving to a job-role based (great take by Chris Pietschmann at Build Azure) approach, which in my opinion is a good move, as it allows folks to focus on passing exams that contain content that will directly be used on the job. For more information about the exam, take a look at the Official Exam Page
## Skills Measured
Here’s a high level list of the skills and objectives measured on the AZ-400 Microsoft Azure DevOps Solutions certification exam. The percentages next to each objective area represents the number of questions in that objective area on the exam. I have included links to docs, code samples, and other resources that I have found helpful as I studied. Hope you enjoy!
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 (Azure Artifacts )
- Analyze existing test management tools (Azure Test Plans )
- Analyze existing work management tools (Azure Boards )
- Recommend migration and integration strategies for artifact repositories, source control, test management, and work management (Azure DevOps )
- 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 (Agile Culture )
- Mentor team members on Agile techniques and practices (About teams and Agile tools )
- Recommend an organization structure that supports scaling Agile practices (Implement Scaled Agile Framework® to support epics, release trains, and multiple backlogs )
- Recommend in-team and cross-team collaboration mechanisms
- Design a quality strategy
- Analyze existing quality environment (Analyze test results )
- Identify and recommend quality metrics
- Recommend a strategy for feature flag lifecycle (Explore how to progressively expose your features in production for some or all users )
- Recommend a strategy for measuring and managing technical debt (Managing Technical Debt with Azure DevOps and SonarCloud )
- Recommend changes to team structure to optimize quality
- Recommend performance testing strategy (Load test with the Azure portal )
- Design a secure development process
- Inspect and validate code base for compliance (Code ownership and software quality )
- Inspect and validate infrastructure for compliance
- Recommend a secure development strategy (Learn how to add continuous security validation to your CI/CD pipeline )
- Recommend tools and practices to integrate code security validation (e.g. static code analysis) (Learn how to add continuous security validation to your CI/CD pipeline )
- Recommend tools and practices to integrate infrastructure security validation (Learn how to add continuous security validation to your CI/CD pipeline )
- Design a tool integration strategy
- Design a license management strategy (e.g. Azure DevOps 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 (Linking, traceability, and managing dependencies )
- Design a strategy for integrating monitoring and feedback to development teams
- Design an authentication and access strategy (Default permissions and access for Azure DevOps )
- 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 (Release Flow )
- Implement and integrate source control
- Integrate external source control (Build source repositories )
- Integrate source control into third-party continuous integration and continuous deployment (CI/CD) systems (Continuously deploy from a Jenkins build )
- Implement and manage build infrastructure
- Implement private and hosted agents (Build and release agents )
- Integrate third party build systems
- Recommend strategy for concurrent pipelines (Parallel Jobs )
- Manage VSTS pipeline configuration (e.g. agent queues, service endpoints , pools , webhooks )
- Implement code flow
- Implement pull request strategies
- Implement branch and fork strategies]
- Configure branch policies
- 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
- Managing application configuration and secrets
- Implement 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
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)
- Implement a container build strategy
- Create deployable images (e.g. Docker, Azure Container Registry) (Push an image )
- Analyze and integrate Docker multi-stage builds (Docker )
- Implement a build strategy
- Design build triggers , tools, integrations , and workflow
- Implement a hybrid build process
- Implement multi-agent builds (Multiple jobs )
- Recommend build tools and configuration
- Set up an automated build workflow (CI Quickstart )
Implement Continuous Delivery (10-15%)
- Design a release strategy
- Recommend release tools (Why use Azure Pipelines for releases? )
- Identify and recommend release approvals and gates (Release approvals and gates overview )
- Recommend strategy for measuring quality of release and release process (Communicate package quality with release views )
- Recommend strategy for release notes and documentation (Azure DevOps Release Notes Generator )
- Select appropriate deployment pattern
- Set up a release management workflow
- Automate inspection of health signals for release approvals by using release gates (Use approvals and gates to control your deployment )
- 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 (Azure Key Vault task )
- Provision and configure environments (Release stages, queuing policies, and options )
- Manage and modularize tasks and templates (e.g. task and variable groups )
- 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 Dependency Management (5-10%)
- Design a dependency management strategy
- Recommend artifact management tools and practices (Azure Artifacts in Azure DevOps Services and Azure DevOps Server )
- Abstract common packages to enable sharing and reuse (Collaborate more and build faster with packages )
- 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
- 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
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
- Implement Infrastructure as Code
- Create nested resource templates
- Manage secrets in resource templates
- Provision Azure resources
- Recommend an Infrastructure as Code (IaC) strategy (What is Infrastructure as Code? )
- Recommend appropriate technologies for configuration management
- 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
- 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 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
- 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)
- 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