Microsoft Azure DevOps Engineer (AZ-400)

Paths

Microsoft Azure DevOps Engineer (AZ-400)

Authors: Neil Morrissey, James Bannan, Marcel de Vries, Chris Behrens, Sahil Malik, John Savill, Matthew Kruczek, Daniel Krzyczkowski, Steve Buchanan

Microsoft Azure DevOps Engineers work across IT and development teams to oversee and manage code releases in order to create more effective application deployments and greater... Read more

What you will learn

  • DevOps strategy
  • DevOps development processes
  • Continuous integration
  • Continuous delivery
  • Dependency management
  • Continuous feedback

Pre-requisites

This path is targeted to Azure DevOps Engineers who are already familiar with the Azure portal and expects learners to be familiar with Agile practices, Azure administration and Azure development.

Implement DevOps Development Processes

In this section of this path, you will learn how to implement the appropriate development processes for your teams so they can more quickly and effectively release applications on schedule.

Microsoft Azure DevOps Engineer: Implement a Secure and Compliant Development Process

by Neil Morrissey

Nov 8, 2019 / 1h 57m

1h 57m

Start Course
Description

It's no longer acceptable to just perform security testing at the end of long development cycles. With modern DevOps practices, frequent production releases are normal, so an approach is needed to automate security testing in the CI/CD process. In this course, Microsoft Azure DevOps Engineer: Implement a Secure and Compliant Development Process, you'll learn how to implement secure development practices in your Azure DevOps Pipelines. First, you'll learn how to integrate automated code scanning in your pipelines to detect coding errors that could cause security vulnerabilities. Next, you'll discover how to implement tasks to detect vulnerabilities in open source libraries your code uses. Then, you'll explore how to automatically conduct a penetration test when your application is deployed to a test environment. Finally, you'll learn how to properly handle application secrets like database passwords or certificates in your deployment process. When you're finished with this course, you'll have the skills and knowledge needed to integrate secure development practices into your Azure DevOps Pipelines.

Table of contents
  1. Course Overview
  2. Implementing Code Analysis Security Workflow
  3. Implementing Security Scanning in Your Build Pipeline Concepts
  4. Implementing Automated Penetration Testing for Your Projects
  5. Managing Secrets, Tokens, and Certificates

Microsoft Azure DevOps Engineer: Implement and Manage Azure Pipelines Infrastructure

by James Bannan

Apr 23, 2020 / 2h 19m

2h 19m

Start Course
Description

Understanding how to choose between the wide range of options which Microsoft offers with regards to how and where to execute Azure Pipelines jobs is a critical component of becoming and being a Microsoft Azure DevOps Engineer. The decisions you make with within the infrastructure which support your development teams have the potential to directly impact those teams’ success, so your role is incredibly important. In this course, Microsoft Azure DevOps Engineer: Implement and Manage Azure Pipelines Infrastructure, you are going to cover this in depth. First, you’ll examine the various means through which Azure Pipelines can be executed and how the configuration of Azure Pipelines tasks impacts this decision process. Next, you’ll explore how to implement these choices, from running solutions on Microsoft-hosted agents to implementing and validating your own self-hosted agent. Finally, you’ll bring all this knowledge and learning together to make better infrastructure decisions. By the end of this course, you'll know how to extend Azure Pipelines infrastructure and functionality to incorporate Docker, implementing container-based agents and deploying complex container-based solutions using Azure Pipelines.

Table of contents
  1. Course Overview
  2. Understanding Azure DevOps Agents
  3. Microsoft Hosted vs. Self-hosted Agents
  4. Implementing Self-hosted Agents
  5. Leveraging Docker Functionality in Azure Pipelines

Continuous Delivery and DevOps with Azure DevOps: Source Control with Git

by Marcel de Vries

Jun 20, 2019 / 1h 54m

1h 54m

Start Course
Description

Git is a very powerful source control system, but as we all know, powerful tools can be dangerous, and you don’t want to lose sources when using the system. In this course, Continuous Delivery and DevOps with Azure DevOps: Source Control with Git, you'll learn about source control, the different source control systems that are out there, and Team Foundation Version Control (TFVC) and Git, which are the types supported by Azure DevOps. First, you will explore how to set up your Git repository in Azure DevOps, and then go through all the basics to get you started with Git. Next, you will discover the fundamental operations like creating and cloning repositories, adding new files to the local repository and pushing it to the central server so the rest of the team can use it, and explore commands like commit, push, fetch, and pull. Finally, you will learn how the branch and rebase commands work, and the two most popular Git branching strategies called Git Flow and Git Hub Flow. You will also set up continuous integration, branch policies and gated check-in to guard your sources from bad code coming in that does not compile or contains bugs, so you keep your source code repository clean and in an always shippable state. By the end of this course, you will know all the fundamentals to set up source control in Azure DevOps and how to work with the Git source control system efficiently.

Table of contents
  1. Course Overview
  2. Fundamentals
  3. Source Control with Git on Azure DevOps
  4. Implementing Continuous Integration

Feature Toggles, Package Management and Versioning with Azure DevOps

by Marcel de Vries

Jun 14, 2019 / 1h 7m

1h 7m

Start Course
Description

Delivering software to production in a repeatable and reliable way requires us to be smarter about the way we deploy and release our software. In this course, Feature Toggles, Package Management and Versioning with Azure DevOps, you'll see how to use feature toggles, package management, and a proven way of versioning in order to deploy your software multiple times without affecting any users. First, you'll discover how to separate deployment from a release by using Feature Toggles as a means to introduce new or changed functionality without the need for branching in source control. Next, you'll explore details on how to split up your solution in multiple packages, and how you can ask crucial questions to determine the correct granularity, coupling, and cohesion between packages. Finally, you'll learn an industry proven way of versioning that helps you avoid endless dependencies. We integrate this into our automated builds in Azure DevOps. By the end of this course, you'll know how to efficiently use feature toggles, package management, and versioning with Azure DevOps.

Table of contents
  1. Course Overview
  2. Feature Toggles
  3. Package Management
  4. Versioning

Implement Continuous Integration

In this section of the path, you will learn how to implement the best continuous integration practices for your teams so they can improve their overall development pipeline to quickly deliver new functionality and features to your users.

Microsoft Azure DevOps Engineer: Creating an Automated Build Workflow

by Chris Behrens

Sep 6, 2019 / 1h 28m

1h 28m

Start Course
Description

Automating your build process puts your organization on the bottom rung of a quality ladder that leads to efficiency and quality.

In this course, Microsoft Azure DevOps Engineer: Creating an Automated Build Workflow, you will gain the ability to automate your build process with Azure DevOps.

First, you will learn the basics of creating a build. Next, you will discover the ins and outs of dependency management. Finally, you will explore how to make your automated processes work for you. When you’re finished with this course, you will have the skills and knowledge of build automation needed to make your manual processes repeatable, efficient and effective.

Table of contents
  1. Course Overview
  2. Getting Started with Build Pipelines in Azure DevOp
  3. Managing Dependencies in Your Build
  4. Making Your Build Work for You

Application Testing with Azure DevOps and Visual Studio 2019

by Marcel de Vries

Aug 2, 2019 / 1h 32m

1h 32m

Start Course
Description

Application testing is one of those tasks that was traditionally done manually, but this is not fast enough when you want to implement DevOps practices. You need something that works well with engineering disciplines like Continuous Integration and Continuous Deployment.

In this course, Application Testing with Azure DevOps and Visual Studio 2019, you will get started with the engineering discipline around automated testing, using Azure DevOps and Visual Studio. First, you will define a good test strategy for your team, using the Agile Test pyramid to learn what tests you must write. Next, you will write your business logic and use the continuous test runner to get feedback while you write code and then integrate them in your CI build.

Finally, you will dive into using selenium to test your web application and integrate this into Azure DevOps, as well as learn how to use containers to set up your test data fast and consistently for your test suites using SQL server.

After completing this course, you will be able to define a test strategy for your team and use Visual Studio to write unit tests using frameworks like MSTest, Nunit, Xunit, or any other framework you like.

Table of contents
  1. Course Overview
  2. Selecting Your Test Strategy
  3. Unit Testing with Visual Studio and Azure DevOps
  4. Integration and UI Testing

Microsoft Azure DevOps Engineer: Monitoring Code Quality

by Chris Behrens

Jul 18, 2019 / 1h 5m

1h 5m

Start Course
Description

Creating and maintaining code quality is one of the most valuable jobs a build engineer performs. In this course, Microsoft Azure DevOps Engineer: Monitoring Code Quality, you will gain the ability to execute code quality checks in your build. First, you will learn static analysis of your codebase. Next, you will discover dynamic analysis, where to execute the code and measure the results. Finally, you will explore how to test your code for security and performance. When you’re finished with this course, you will have the skills and knowledge of integrating code quality checks in your Azure builds needed to take your application quality to the next level.

Table of contents
  1. Course Overview
  2. What Is Code Quality?
  3. Implementing Tools for Managing and Monitoring Technical Debt
  4. Implementing Security and Compliance in the Pipeline

Implement Continuous Delivery

In this section of the path, you will learn how to implement the best continuous delivery practices for your teams so they can deploy applications faster and cheaper than ever before.

Continuous Delivery and DevOps with Azure DevOps: Release Pipelines

by Marcel de Vries

Jun 21, 2019 / 2h 1m

2h 1m

Start Course
Description

Continuous delivery and DevOps require you to fully automate the build and release process in a repeatable and reliable way. In this course, Continuous Delivery and DevOps with Azure DevOps: Release Pipelines, you'll learn how to set up release automation using Azure DevOps. First, you'll explore the fundamentals of release automation and the distinction you need between a deployment and a release. This enables you to release multiple times per day without interrupting your services. Next, you'll dive into the concepts of configuration and infrastructure as code. Finally, you'll conclude this course with security, approvals, and audit trails so you can ensure all your release pipelines are audit proof. By the end of this course, you'll have the necessary knowledge to create a fully automated build and release pipeline that is secure and compliant by default.

Table of contents
  1. Course Overview
  2. Introduction to Release Management
  3. Infrastructure as Code
  4. Security, Approval, and Audit Trails

Microsoft Azure DevOps Engineer: Manage and Modularize Tasks and Templates

by Sahil Malik

May 26, 2020 / 1h 32m

1h 32m

Start Course
Description

Azure DevOps is a comprehensive set of tools that let you be productive in any software project on any platform, any OS, and any language. In this course, Microsoft Azure DevOps Engineer: Manage and Modularize Tasks and Templates, you will get an overview of all the major components of Azure DevOps, followed by a deeper look into pipelines. You will learn how to use tasks, templates, variables, and secrets backed by Azure Key Vault. By the end of this course, you will have a solid understanding of the usage of Azure DevOps, and be able to use yaml-based pipelines effectively in your software projects.

Table of contents
  1. Course Overview
  2. Exploring the Landscape of Azure DevOps and Pipelines
  3. Creating a Simple Pipeline
  4. Enhancing the Pipeline
  5. Wrapping Up

Microsoft Azure DevOps Engineer: Selecting and Implementing an Appropriate Deployment Pattern

by John Savill

May 6, 2020 / 2h 18m

2h 18m

Start Course
Description

Deploying software continuously still poses risk, even with great processes and testing as part of the integration phase. In this course, Microsoft Azure DevOps Engineer: Selecting and Implementing an Appropriate Deployment Pattern, you will learn foundational knowledge of key deployment patterns that enable a smooth and minimal-risk deployment from development through to production. First, you will learn key principals around CI/CD, DevOps, and Azure app services. Next, you will discover key considerations and features when looking at deployment patterns. Finally, you will explore how to design for the three key deployment patterns commonly seen. When you’re finished with this course, you will have the skills and knowledge of deployment patterns needed to deploy software continuously in Azure with confidence.

Table of contents
  1. Course Overview
  2. Understanding CI/CD, Azure DevOps, and App Service Plans
  3. Understanding Deployment Patterns in Microsoft Azure
  4. Implementing Progressive Exposure Deployments in Microsoft Azure
  5. Implementing Canary Deployments in Microsoft Azure
  6. Implementing Blue-Green Deployments in Microsoft Azure

Implement Dependency Management

In this section of the path, you will learn how to appropriately implement dependency management for your teams.

Microsoft Azure DevOps Engineer: Inspecting and Identifying Code Dependencies

by Neil Morrissey

Nov 26, 2019 / 50m

50m

Start Course
Description

Software applications are getting larger and more complex, and to manage that complexity we often reuse code in our solutions. That code might come from open source libraries, third party libraries or you might have your own code components that you need to reuse across solutions. The way we reuse code is through packages, and they need to be stored in a package repository. In this course, Microsoft Azure DevOps Engineer: Inspecting and Identifying Code Dependencies, you'll learn package management within Azure DevOps. First, you’ll learn how to identify code dependencies in your codebase that you can extract and turn into reusable packages. Next, you'll explore package types and feeds, and specifically, feeds in Azure Artifacts. Then, you'll discover how to package your own code as a NuGet package and consume it from an Azure Artifacts feed. Finally, you'll see how to make publishing of your package part of your continuous integration continuous deployment pipeline in Azure Pipelines. By the end of this course, you'll know how to identify code dependencies and use Azure Artifacts to host the packages that your application and pipelines depend on.

Table of contents
  1. Course Overview
  2. Manage Build Dependencies with Azure Artifacts

Inspecting Open Source Software Packages for Security and License Compliance

by Neil Morrissey

Dec 4, 2019 / 38m

38m

Start Course
Description

Modern software is composed of many open source components, that are used to speed development and provide complex functionality you would normally need to write yourself. But with that convenience, there come some risks. In this course, Inspecting Open Source Software Packages for Security and License Compliance, you will learn the different types of risks involved with open source software, and how you can manage those risks by using a tool called WhiteSource Bolt. First, you will explore the licenses that come with open source libraries and components. Next, you will learn the inherent risks that come with leveraging open source libraries in your projects. Then, you will understand more about a class of tools, called software composition analysis tools, that can help you migrate those risks. Finally, you will discover a free tool called WhiteSource Bolt that you can integrate into your Azure DevOps pipeline builds, to analyze the open source components in your project. By the end of this course, you will be more confident in managing open source libraries, and better able to respond to threats to those components.

Table of contents
  1. Course Overview
  2. Setting up a Build Pipeline to Inspect Package Feeds

Implement Application Infrastructure

In this section of the path, you’ll learn how to appropriately implement application infrastructure in order to more effectively support your application’s features, functionality and services.

Microsoft Azure DevOps Engineer: Leveraging ARM Templates for Infrastructure

by John Savill

Aug 14, 2019 / 2h 10m

2h 10m

Start Course
Description

While developers have quickly embraced DevOps, the way infrastructure components fit in this methodology can be confusing. In this course, Microsoft Azure DevOps Engineer: Leveraging ARM Templates for Infrastructure, you will learn foundational knowledge of using templates to define resources and enable Infrastructure as Code. First, you will examine how Azure defines and manages its resources. Next, you will discover the structure and use of ARM templates. Finally, you will explore how to leverage version control for templates. When you’re finished with this course, you will have the skills and knowledge of Azure ARM templates needed to embrace infrastructure as code for Azure.

Table of contents
  1. Course Overview
  2. Azure Resource Manager Architecture
  3. Using ARM Templates
  4. Implementing Source Control for ARM Templates

Microsoft Azure DevOps Engineer: Manage Azure Kubernetes Services Infrastructure

by James Bannan

Sep 19, 2019 / 2h 17m

2h 17m

Start Course
Description

Understanding how to choose between the wide range of infrastructure configuration options available for Azure Kubernetes Service (AKS) is a critical component of becoming and being a Microsoft Azure DevOps Engineer. In this course, Microsoft Azure DevOps Engineer: Manage Azure Kubernetes Services Infrastructure, you'll develop an in-depth understanding of how to plan ahead, uncover relevant business and technical requirements, and then translate these into AKS-specific architectural and deployment decisions, which is of paramount importance. First, you’ll look at the history of Kubernetes on Azure as well as how Azure infrastructure is used to support AKS. Then, you’ll explore a wide range of infrastructure configuration choices which impact AKS and for which you’ll need to plan ahead. Finally, you’ll bring all this knowledge and learning together and provision both simple and complex AKS environments using a range of deployment tools, as well as deploy a complex, multi-tier application to AKS using Kubernetes package management. By the end of this course, you'll have a thorough understanding of the infrastructure that underpins and enables AKS, and how AKS interacts with underlying Azure platform.

Table of contents
  1. Course Overview
  2. Understanding Azure Kubernetes Service Infrastructure
  3. Understanding AKS Configuration Options
  4. Deploying Azure Kubernetes Services
  5. Developing an AKS Deployment Template
  6. Deploying an Application to AKS

Microsoft Azure DevOps Engineer: Implementing Infrastructure Control and Compliance

by John Savill

Aug 14, 2019 / 1h 44m

1h 44m

Start Course
Description

Being able to quickly provision resources is a key requirement for DevOps however organizations still need to ensure compliance and control. In this course, Microsoft Azure DevOps Engineer: Implementing Infrastructure Control and Compliance, you will learn how to use Azure technologies to enforce required levels of control and compliance without impacting the business's ability to deliver value. First, you will learn key requirements related to control and compliance. Next, you will discover how to use Azure Policy and Azure Blueprints. Finally, you will explore how to leverage controls with release pipelines. When you’re finished with this course, you will have the skills and knowledge related to control and compliance that is needed to ensure the good standing of your organization's deployments without impacting the ability to deliver business value.

Table of contents
  1. Course Overview
  2. Understanding Compliance and Security Requirements
  3. Using Azure Policy
  4. Control and Compliance with Release Pipelines

Microsoft Azure DevOps Engineer: Provision Azure Resources

by John Savill

Aug 21, 2019 / 1h 34m

1h 34m

Start Course
Description

When getting started with Azure, you are faced with a number of options to create resources. In this course, Microsoft Azure DevOps Engineer: Provision Azure Resources, you will learn foundational knowledge of the provisioning options available in Azure. First, you will learn how to use the Az PowerShell module to provision resources and leverage contexts to handle multiple accounts and subscriptions. Next, you will discover the Azure CLI and its capabilities. Finally, you will explore how to use ARM JSON templates to provision resources with a declarative technology. When you are finished with this course, you will have the skills and knowledge of Azure provisioning options needed to implement the best Azure deployment solution for your company.

Table of contents
  1. Course Overview
  2. Azure Resource Manager Provisioning
  3. Using PowerShell and the CLI to Create Rresources
  4. Using Templates to Create Resources

Microsoft Azure DevOps Engineer: Implement Imperative Virtual Machine Configuration Management

by John Savill

Apr 30, 2020 / 1h 55m

1h 55m

Start Course
Description

Deciding how to configure guest operating systems in Azure can initially be a stopping point for many organizations. In this course, Microsoft Azure DevOps Engineer: Implement Imperative Virtual Machine Configuration Management, you'll learn how to perform configuration of both Windows and Linux VMs running in Azure. First, you will examine fundamental configuration capabilities for all VMs in Azure. Next, you will discover technologies specifically focused on Linux configuration in Azure. Finally, you will discover how to inject custom scripts from the Azure fabric into both Windows and Linux using the Custom Script Extension. When you’re finished with this course, you will have the skills and knowledge of VM configuration needed to define a complete provisioning and configuration approach for your Azure VMs.

Table of contents
  1. Course Overview
  2. Configuring Virtual Machines Using Configuration Management
  3. Configuring Linux VMs
  4. Using the Custom Script Extension

Implement Continuous Feedback

In this section of the path, you will learn how to appropriately implement continuous feedback so you can quickly gather and act upon user feedback.

Microsoft Azure DevOps Engineer: Recommend and Design System Feedback Mechanisms

by Matthew Kruczek

Sep 23, 2019 / 2h 12m

2h 12m

Start Course
Description

Getting feedback for performance from production applications can be a struggle. In this course, Microsoft Azure DevOps Engineer: Recommend and Design System Feedback Mechanisms, you will gain the ability to take advantage of this service. First, you will learn how to get usage statistics from production applications with the Microsoft Azure Stack. Next, you will discover how to analyze and visualize the data compiled on their processes. Finally, you will explore how to get alerted when things go off the rails. When you’re finished with this course, you will have the skills and knowledge of Microsoft Azure Monitoring Service needed to be able to integrate into other systems.

Table of contents
  1. Course Overview
  2. Introducing Microsoft Azure Monitoring
  3. Collecting Data and Insights
  4. Focusing on Visualization
  5. Optimizing Your Application in the Real World

Microsoft Azure DevOps Engineer: Route System Feedback to Development Teams

by Daniel Krzyczkowski

May 15, 2020 / 1h 51m

1h 51m

Start Course
Description

Choosing the right tool for the job is essential in our day to day. In this course, Microsoft Azure DevOps Engineer: Route System Feedback to Development Teams, you will learn foundational knowledge of monitoring applications performance, tracking issues and collecting user feedback. First, you will learn how to monitor web applications performance and issues with Azure Application Insights. Next, you will see how to monitor client applications health and performance with Visual Studio App Center Diagnostics and Analytics services. Finally, you will explore how to develop monitoring and status dashboards in Azure DevOps to enable teams to share information, status, progress, and trends. By the end of this course, you will discover how to implement practices and tools to capture and report user feedback and satisfaction. Additionally, you will have a clear overview of what the Azure DevOps and Visual Studio App Center tools can do for you and how you can use them to monitor applications performance, track issues and collecting user feedback and make this information available for the development teams.

Table of contents
  1. Course Overview
  2. Capturing Application Crash Data
  3. Implementing Dashboards and Charts
  4. Working with Feedback

Microsoft Azure DevOps Engineer: Optimize Feedback Mechanisms

by Steve Buchanan

Nov 22, 2019 / 1h 39m

1h 39m

Start Course
Description

A core part of DevOps knowledge is being able to monitor and optimize applications. In this course, Microsoft Azure DevOps Engineer: Optimize Feedback Mechanisms, you’ll learn how to monitor and optimize your web applications. First, you’ll learn how to use Application Insights and Log Analytics. Next, you’ll explore analyzing alerts and telemetry data. Finally, you’ll discover how to perform tuning to reduce noise. When you’re finished with this course, you'll have the foundational knowledge of how to use Azure Monitor to optimize feedback mechanisms and improve your web application.

Table of contents
  1. Course Overview
  2. Analyzing Alerts
  3. Analyzing Telemetry
  4. Performing Ongoing Tuning to Improve Actionable Feedback
  5. Performing Ongoing Tuning to Reduce Meaningless or Non-actionable Alerts
  6. Performing Live Site Reviews and Capturing Feedback for System Outages