Course Overview

Azure DevOps Services is Microsoft’s cloud-based, team focused services to help your entire organization plan smarter, collaborate better, and ship faster with a set of modern developer services. Azure DevOps is designed to be a one-stop solution to help you deliver value and build quality in for any app, written using any code, on any platform. You can build and deploy both to the cloud and on-premises for desktop, web, mobile, and more. You’ll learn about the services and how you can use them effectively together. However, Microsoft has made the service to be fully extensible and integrates with popular services and platforms, so you’re never locked in.

In this 3-day, hands-on course, you will learn how you can apply good DevOps principles so you and your team can deliver value as fast as your customers need and expect.

Key Learning Areas

Attendees will acquire first-hand experience using Azure DevOps Services and the features that it offers.

You will learn:

  • How you, your team, and company should provision an organization in Azure DevOps
  • How to on-board developers and stakeholders
  • How you can use Azure Boards track and manage your team’s work
  • How use Azure Repos for distributed version control of your team’s assets using Git
  • How to use Azure Pipelines to create build pipelines to package up your applications
  • How to use Azure Pipelines to publish your applications and other items to the cloud or on-premises
  • How to increase quality with Azure Test Plans
  • How to create, host, and share packages with your team, and add artifacts to your pipelines with Azure Artifacts

Each course module consists of a lecture followed by a hands-on lab designed to reinforce the principles presented during lecture.

Course Outline

A Day in the Life of a Developer

  • Level set of “What is DevOps?”
  • Overview of Azure DevOps (aka VSTS)
  • Azure Boards
  • Azure Repos & GitHub Repos
  • Azure Pipelines & GitHub Actions
  • Azure Test Plans
  • Azure Artifacts & GitHub Packages
  • Examine end-to-end workflow
  • Examine Organization and Team configuration
  • Logins
  • Notifications
  • The core features that every team member needs to know

Azure Boards: Plan, Track, and Discuss Work Across Your Teams

  • What does every team member need to know?
  • Organizing and refining the Product Backlog
  • Tools in Azure Boards
  • The Product Backlog
  • Kanban boards
  • Task Boards
  • Dependencies, types, and related risks
  • Planning and executing a Sprint
  • Limiting work in progress (WIP)
  • Working in small batches
  • Creating and accepting a definition of “Done”
  • Using queries, charts, and dashboards for basic reporting
  • “Just enough project management” to support full DevOps traceability

Azure Repos & GitHub Repos: Using Git Effectively

  • Centralized vs decentralized version control
  • Defining and managing repos
  • Don’t fear the command-line
  • Working with branches
  • Pull Requests
  • Using Code Search

Azure Pipelines & GitHub Actions: Building Quality In

  • Defining Quality Gates
  • Azure Pipelines for Builds
  • Understanding and Managing Agents
  • YAML Build Definitions
  • Testing with Build
  • Unit Testing
  • Code Coverage
  • Test Impact Analysis
  • Managing and Sharing Build Definition

Azure Pipelines: Releasing to the World

  • Understanding deployment models
  • Azure Pipelines for Releases
  • YAML Release Definitions
  • Service Connections
  • Stages and environments
  • Defining approval processes and quality gates
  • Deployment Groups and Targets
  • Managing and Sharing Release Definitions

Infrastructure & Configuration Management

  • Infrastructure as Code
  • Create Azure Resources with ARM Templates
  • Create Azure Resources with Bicep Templates
  • Create Azure Resources with Azure CLI & PowerShell
  • Implement Desired State Configuration
  • Azure Automation with DevOps

Azure Artifacts & GitHub Packages: Sharing Code Effectively

  • Why and what of the service
  • Integrating with Azure Pipelines
  • Designing your repos to better support sharing
  • Updating your workflow to support collective ownership mindset
  • Branching strategies
  • Applying Open-Source Software principles to internal development

Automated Testing

  • Building Integration Tests
  • Automated UI Testing with Selenium for Web Apps
  • Integrating Automated Tests with Builds and Releases

Feedback: User Acceptance Testing, Monitoring, and Analytics

  • Continuous Feedback
  • Involving Stakeholders
  • Running UAT Tests
  • Application Insights
  • Quality Tracking and Reporting
  • Azure DevOps Analytics

Who Benefits

This course is primarily designed for software developers who want to learn how to work with Azure DevOps Services to manage and build cloud-based applications. The hands-on labs involve mostly configuration with some light coding. Coding is done in C#. Non-developers including Scrum Masters, Product owners, and more test focused engineers can attend and pair with developers as needed but will find most areas of the course valuable even if they don’t write code.

In order to work along with the labs, attendees must have the following:

  • A modern web browser like Microsoft Edge, Chrome, or Firefox. Internet Explorer is NOT supported.
  • An Azure subscription (Azure Pass, MSDN subscription, free trial, company subscription, etc.)
  • A version of Windows, macOS, or Linux that can run Visual Studio Code (Visual Studio 2022 can be used in place of Visual Studio Code).
  • Visual Studio Code (or any “edition” of Visual Studio 2022 [Community, Professional, or Enterprise] with the latest updates installed and the ASP.NET and Web Development, and Azure Development workloads installed).
  • Local Administrative permissions to install additional tools such as the Git command-line tools, NuGet packages, and other required lab tools.
  • Azure-based Student Virtual Machines can be provisioned for an additional

Prerequisites

Basic programming experience, preferably in C# with Visual Studio Code or Visual Studio 2022. The focus of this class is using Azure DevOps Services, so all programming code is provided to the student.