AZ-400: Designing and Implementing Microsoft DevOps Solutions
This course provides the knowledge and skills to design and implement DevOps processes and practices. Students will learn how to plan for DevOps, use source control, scale Git for an enterprise, consolidate artifacts, design a dependency management strategy, manage secrets, implement continuous integration, implement a container build strategy, design a release strategy, set up a release management workflow, implement a deployment pattern, and optimize feedback mechanisms.
Description
Overview
In this course, we cover how to implement continuous integration in an Azure DevOps pipeline, how to manage code quality and security principles, and how to implement a container build strategy. This course provides the knowledge and skills to implement continuous delivery, implement dependency management, deploy an application infrastructure in DevOps pipelines, and provides the knowledge and skills to implement continuous feedback. You will be provided the knowledge and skills to design a DevOps strategy and implement DevOps processes. Students will learn how to plan for transformation, select a project, and create team structures and learn how to use source control, scale Git for an enterprise, and implement and manage build infrastructure.
Course Objectives
After completing this course, students will be able to:
- Describe the benefits of using source control
- Migrate from TFVC to Git
- Scale Git for Enterprise DevOps
- Implement and manage build infrastructure
- Manage application config & secrets
- Implement a mobile DevOps strategy
- Implement continuous integration using Azure DevOps and explain why it matters
- Integrate other build tooling with Azure DevOps
- Create hybrid build processes
- Integrate automated tests for code quality
- Report on code coverage during testing
- Implement a container build strategy
- Differentiate between a release and a deployment and explain things to consider when designing your release strategy
- Classify a release versus a release process, and outline how to control the quality of both
- Explain why you sometimes need multiple release jobs in one release pipeline
- Deploy to an environment securely, using a service connection
- List the different ways to inspect the health of your pipeline and release by using, alerts, service hooks and reports
- 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
- Configure build pipeline to access package security and license rating
- Apply infrastructure and configuration as code principles
- Deploy and manage infrastructure using Microsoft automation technologies such as ARM templates, PowerShell, and Azure CLI
- Deploy and configure a Managed Kubernetes cluster
- Deploy and configure infrastructure using 3rd party tools and services with Azure, such as Chef, Puppet, Ansible, SaltStack, and Terraform
- Define an infrastructure and configuration strategy and appropriate toolset for a release pipeline and application infrastructure
- Implement compliance and security in your application infrastructure
- Design processes to capture and analyze user feedback from external sources
- Design routing for client application crash report data
- Configure crash report integration for client applications
- Implement routing for client application crash report data
- Integrate and configure ticketing systems with development team's work management system
- Perform live site reviews and capture feedback for system outages
- Perform ongoing tuning to reduce meaningless or non-actionable alerts
- Plan for the transformation with shared goals and timelines.
- Select a project and identify project metrics and KPIs.
- Create a team and agile organizational structure.
- Develop a project quality strategy.
- Plan for secure development practices and compliance rules.
- Migrate and consolidate artifacts.
- Migrate and integrate source control measures.
Who Should Attend
Students in this course are interested in implementing DevOps processes or in passing the Microsoft Azure DevOps Solutions certification exam.
Course Outline
Module 1: Get started on a DevOps transformation journey
- Introduction to DevOps
- Choose the right project
- Describe team structures
- Choose the DevOps tools
- Plan Agile with GitHub Projects and Azure Boards
- Introduction to source control
- Describe types of source control systems
- Work with Azure Repos and GitHub
Labs
- Agile planning and portfolio management with Azure Boards
- Version controlling with Git in Azure Repos
After completing this Module, students will be able to:
- Understand what DevOps is and the steps to accomplish it
- Identify teams to implement the process
- Plan for the transformation with shared goals and timelines
- Plan and define timelines for goals
- Understand different projects and systems to guide the journey
- Select a project to start the DevOps transformation
- Identify groups to minimize initial resistance
- Identify project metrics and Key Performance Indicators (KPI's)
- Understand agile practices and principles of agile development
- Create a team and agile organizational structure
Module 2: Development for enterprise DevOps
- Structure your Git Repo
- Manage Git branches and workflows
- Collaborate with pull requests in Azure Repos
- Explore Git hooks
- Plan foster inner source
- Manage Git repositories
- Identify technical debt
Lab
- Version controlling with Git in Azure Repos
After completing this Module, students will be able to:
- Understand Git repositories
- Implement mono repo or multiple repos
- Explain how to structure Git Repos
- Implement a change log
- Describe Git branching workflows
- Implement feature branches
- Implement GitFlow
- Fork a repo
- Leverage pull requests for collaboration and code reviews
- Give feedback using pull requests
Module 3: Implement CI with Azure Pipelines and GitHub Actions
- Explore Azure Pipelines
- Manage Azure Pipeline agents and pools
- Describe pipelines and concurrency
- Explore Continuous integration
- Implement a pipeline strategy
- Integrate with Azure Pipelines
- Introduction to GitHub Actions
- Learn continuous integration with GitHub Actions
- Design a container build strategy
Labs
- Configuring agent pools and understanding pipeline styles
- Enabling continuous integration with Azure Pipelines
- Integrating external source control with Azure Pipelines
- Implementing GitHub Actions by using DevOps Starter
- Deploying Docker Containers to Azure App Service web apps
After completing this Module, students will be able to:
- Describe Azure Pipelines
- Explain the role of Azure Pipelines and its components
- Decide Pipeline automation responsibility
- Understand Azure Pipeline key terms
- Choose between Microsoft-hosted and self-hosted agents
- Install and configure Azure pipelines Agents
- Configure agent pools
- Make the agents and pools secure
- Use and estimate parallel jobs
Module 4: Design and implement a release strategy
- Introduction to continuous delivery
- Explore release strategy recommendations
- Build a high-quality release pipeline
- Introduction to deployment patterns
- Implement blue-green deployment and feature toggles
- Implement canary releases and dark launching
- Implement A/B testing and progressive exposure deployment
Labs
- Creating a release dashboard
- Controlling deployments using Release Gates
After completing this Module, students will be able to:
- Explain continuous delivery (CD)
- Implement continuous delivery in your development cycle
- Understand releases and deployment
- Identify project opportunities to apply CD
- Explain things to consider when designing your release strategy
- Define the components of a release pipeline and use artifact sources
- Create a release approval plan
- Implement release gates
- Differentiate between a release and a deployment
Module 5: Implement a secure continuous deployment using Azure Pipelines
- Create a release pipeline
- Provision and test environments
- Manage and modularize tasks and templates
- Automate inspection of health
- Manage application configuration data
- Integrate with identity management systems
- Implement application configuration
Labs
- Configuring pipelines as code with YAML
- Setting up and running functional tests
- Integrating Azure Key Vault with Azure DevOps
After completing this Module, students will be able to:
- Explain the terminology used in Azure DevOps and other Release Management Tooling
- Describe what a Build and Release task is, what it can do, and some available deployment tasks
- Implement release jobs
- Differentiate between multi-agent and multi-configuration release job
- Provision and configure target environment
- Deploy to an environment securely using a service connection
- Configure functional test automation and run availability tests
- Setup test infrastructure
- Use and manage task and variable groups
Module 6: Manage infrastructure as code using Azure and DSC
- Explore infrastructure as code and configuration management
- Create Azure resources using Azure Resource Manager templates
- Create Azure resources by using Azure CLI
- Explore Azure Automation with DevOps
- Implement Desired State Configuration (DSC)
- Implement Bicep
Lab
- Azure deployments using Azure Resource Manager templates
After completing this Module, students will be able to:
- Understand how to deploy your environment
- Plan your environment configuration
- Choose between imperative versus declarative configuration
- Explain idempotent configuration
- Create Azure resources using ARM templates
- Understand ARM templates and template components
- Manage dependencies and secrets in templates
- Organize and modularize templates
- Create Azure resources using Azure CLI
Module 7: Implement security and validate code bases for compliance
- Introduction to Secure DevOps
- Implement open-source software
- Software Composition Analysis
- Static analyzers
- OWASP and Dynamic Analyzers
- Security Monitoring and Governance
Labs
- Implement security and compliance in Azure Pipelines
- Managing technical debt with SonarQube and Azure DevOps
After completing this Module, students will be able to:
- Identify SQL injection attack
- Understand DevSecOps
- Implement pipeline security
- Understand threat modeling
- Implement open-source software
- Explain corporate concerns for open-source components
- Describe open-source licenses
- Understand the license implications and ratings
- Work with Static and Dynamic Analyzers
- Configure Microsoft Defender for Cloud
Module 8: Design and implement a dependency management strategy
- Explore package dependencies
- Understand package management
- Migrate, consolidate, and secure artifacts
- Implement a versioning strategy
- Introduction to GitHub Packages
Lab
- Package management with Azure Artifacts
After completing this Module, students will be able to:
- Define dependency management strategy
- Identify dependencies
- Describe elements and componentization of a dependency management
- Scan your codebase for dependencies
- Implement package management
- Manage package feed
- Consume and create packages
- Publish packages
- Identify artifact repositories
- Migrate and integrate artifact repositories
Module 9: Implement continuous feedback
- Implement tools to track usage and flow
- Develop monitor and status dashboards
- Share knowledge within teams
- Design processes to automate application analytics
- Manage alerts, Blameless retrospectives and a just culture
Labs
- Monitoring application performance with Application Insights
- Integration between Azure DevOps and Microsoft Teams
- Sharing Team Knowledge using Azure Project Wikis
After completing this Module, students will be able to:
- Implement tools to track feedback
- Plan for continuous monitoring
- Implement Application Insights
- Use Kusto Query Language (KQL)
- Implement routing for mobile applications
- Configure App Center Diagnostics
- Configure alerts
- Create a bug tracker
- Configure Azure Dashboards
- Work with View Designer in Azure Monitor
Prerequisites
Students should have fundamental knowledge about Azure, version control, Agile software development, and core software development principles. It would be helpful to have experience in an organization that delivers software.
It is recommended that you have experience working in an IDE, as well as some knowledge of the Azure portal. However, students who may not have a technical background in these technologies, but who are curious about DevOps practices as a culture shift, should be able to follow the procedural and expository explanations of continuous integration regardless.