Module 1: Planning for DevOps

Lessons

  • Transformation Planning
  • Project Selection
  • Team Structures
  • Migrating to Azure DevOps

Lab : Agile Planning and Portfolio Management with Azure Boards

After completing this module, students will be able to:
  • 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
  • Design a tool integration strategy
  • Design a license management strategy (e.g. VSTS users)
  • Design a strategy for end-to-end traceability from work items to working software
  • Design an authentication and access strategy
  • Design a strategy for integrating on-premises and cloud resources

Module 2: Getting started with Source Control

Lessons

  • What is Source Control
  • Benefits of Source Control
  • Types of Source Control Systems
  • Introduction to Azure Repos
  • Introduction to GitHub
  • Migrating from Team Foundation Version Control (TFVC) to Git in Azure Repos
  • Authenticating to Git in Azure Repos

Lab : Version Controlling with Git

After completing this module, students will be able to:
  • Describe the benefits of using Source Control
  • Describe Azure Repos and GitHub
  • Migrate from TFVC to Git

Module 3: Scaling Git for enterprise DevOps

Lessons

  • How to Structure your Git Repo
  • Git Branching Workflows
  • Collaborating with Pull Requests in Azure Repos
  • Why care about GitHooks
  • Fostering Inner Source

Lab : Code Review with Pull Requests

After completing this module, students will be able to:
  • Explain how to structure Git repos
  • Describe Git branching workflows
  • Leverage pull requests for collaboration and code reviews
  • Leverage Git hooks for automation
  • Use git to foster inner source across the organization

Module 4: Consolidating Artifacts & Designing a Dependency Management Strategy

Lessons

  • Packaging Dependencies
  • Package Management
  • Migrating and Consolidating Artifacts

Lab : Updating Packages

After completing this module, students will be able to:
  • Recommend artifact management tools and practices
  • Abstract common packages to enable sharing and reuse
  • Migrate and consolidate artifacts
  • Migrate and integrate source control measures

Module 5: Implementing Continuous Integration with Azure Pipelines

Lessons

  • The concept of pipelines in DevOps
  • Azure Pipelines
  • Evaluate use of Hosted vs Private Agents
  • Agent Pools
  • Pipelines and Concurrency
  • Azure DevOps and Open Source Projects (Public Projects)
  • Azure Pipelines YAML vs Visual Designer
  • Continuous Integration Overview
  • Implementing a Build Strategy
  • Integration with Azure Pipelines
  • Integrate External Source Control with Azure Pipelines
  • Set Up Private Agents
  • Analyze and Integrate Docker Multi-Stage Builds

Lab : Enabling Continuous Integration with Azure Pipelines

Lab : Integrating External Source Control with Azure Pipelines

After completing this module, students will be able to:
  • Implement and manage build infrastructure
  • Explain why continuous integration matters
  • Implement continuous integration using Azure DevOps

Module 6: Managing Application Config and Secrets

Lessons

  • Introduction to Security
  • Implement secure and compliant development process
  • Rethinking application config data
  • Manage secrets, tokens, and certificates
  • Implement tools for managing security and compliance in a pipeline

Lab : Integrating Azure Key Vault with Azure DevOps

After completing this module, students will be able to:
  • Manage application config and secrets
  • Implement tools for managing security and compliance in pipeline

Module 7: Managing Code Quality and Security Policies

Lessons

  • Managing Code Quality
  • Managing Security Policies

Lab : Managing Technical Debt with Azure DevOps and SonarCloud

After completing this module, students will be able to:
  • Manage code quality including: technical debt SonarCloud, and other tooling solutions
  • Manage security policies with open source and OWASP

Module 8: Implementing a Container Build Strategy

Lessons

  • Implementing a Container Build Strategy

Lab : Modernizing Existing ASP.NET Apps with Azure

After completing this module, students will be able to:
  • Implement a container strategy including how containers are different from virtual machines and how microservices use containers
  • Implement containers using Docker

Module 9: Manage Artifact versioning, security & compliance

Lessons

  • Package security
  • Open source software
  • Integrating license and vulnerability scans
  • Implement a versioning strategy

Lab : Manage Open Source Security and License with WhiteSource

After completing this module, students will be able to:
  • Inspect open source software packages for security and license compliance to align with corporate standards
  • Configure build pipeline to access package security and license rating
  • Configure secure access to package feeds
  • 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

Module 10: Design a Release Strategy

Lessons

  • Introduction to Continuous Delivery
  • Release strategy recommendations
  • Building a High-Quality Release pipeline
  • Choosing a deployment pattern
  • Choosing the right release management tool
After completing this module, students will be able to:
  • Differentiate between a release and a deployment
  • Define the components of a release pipeline
  • 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
  • Describe the principle of release gates and how to deal with release notes and documentation
  • Explain deployment patterns, both in the traditional sense and in the modern sense
  • Choose a release management tool

Module 11: Set up a Release Management Workflow

Lessons

  • Create a Release Pipeline
  • Provision and Configure Environments
  • Manage and Modularize Tasks and Templates
  • Integrate Secrets with the release pipeline
  • Configure Automated Integration and Functional Test Automation
  • Automate Inspection of Health

Lab : Configuring Pipelines as Code with YAML

Lab : Setting up secrets in the pipeline with Azure Key vault

Lab : Setting up and Running Functional Tests

Lab : Using Azure Monitor as release gate

Lab : Creating a release Dashboard

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
  • Classify an Agent, Agent Queue, and Agent Pool
  • Explain why you sometimes need multiple release jobs in one release pipeline
  • Differentiate between multi-agent and multi-configuration release job
  • Use release variables and stage variables in your release pipeline
  • Deploy to an environment securely using a service connection
  • Embed testing in the pipeline
  • List the different ways to inspect the health of your pipeline and release by using alerts, service hooks, and reports
  • Create a release gate

Module 12: Implement an appropriate deployment pattern

Lessons

  • Introduction to Deployment Patterns
  • Implement Blue Green Deployment
  • Feature Toggles
  • Canary Releases
  • Dark Launching
  • AB Testing
  • Progressive Exposure Deployment

Lab : Feature Flag Management with LaunchDarkly and Azure DevOps

After completing this module, students will be able to:
  • Describe deployment patterns
  • Implement Blue Green Deployment
  • Implement Canary Release
  • Implement Progressive Exposure Deployment

Module 13: Implement process for routing system feedback to development teams

Lessons

  • Implement Tools to Track System Usage, Feature Usage, and Flow
  • Implement Routing for Mobile Application Crash Report Data
  • Develop Monitoring and Status Dashboards
  • Integrate and Configure Ticketing Systems

Lab : Monitoring Application Performance

After completing this module, students will be able to:
  • Configure crash report integration for client applications
  • Develop monitoring and status dashboards
  • Implement routing for client application crash report data
  • Implement tools to track system usage, feature usage, and flow
  • Integrate and configure ticketing systems with development team’s work management

Module 14: Infrastructure and Configuration Azure Tools

Lessons

  • Infrastructure as Code and Configuration Management
  • Create Azure Resources using ARM Templates
  • Create Azure Resources using Azure CLI
  • Create Azure Resources by using Azure PowerShell
  • Desired State Configuration (DSC)
  • Azure Automation with DevOps
  • Additional Automation Tools

Lab : Azure Deployments using Resource Manager Templates

After completing this module, students will be able to:
  • Apply infrastructure and configuration as code principles
  • Deploy and manage infrastructure using Microsoft automation technologies such as ARM templates, PowerShell, and Azure CLI

Module 15: Azure Deployment Models and Services

Lessons

  • Deployment Modules and Options
  • Azure Infrastructure-as-a-Service (IaaS) Services
  • Azure Platform-as-a-Service (PaaS) services
  • Serverless and HPC Computer Services
  • Azure Service Fabric

Lab : Deploying a Dockerized Java app to Azure Web App for Containers

After completing this module, students will be able to:
  • Describe deployment models and services that are available with Azure

Module 16: Create and Manage Kubernetes Service Infrastructure

Lessons

  • Azure Kubernetes Service

Lab : Deploying a multi-container application to Azure Kubernetes Service

After completing this module, students will be able to:
  • Deploy and configure a Managed Kubernetes cluster

Module 17: Third Party Infrastructure as Code Tools available with Azure

Lessons

  • Chef
  • Puppet
  • Ansible
  • Terraform

Lab : Infrastructure as Code

Lab : Automating Your Infrastructure Deployments in the Cloud with Terraform and Azure Pipelines

After completing this module, students will be able to:
  • Deploy and configure infrastructure using 3rd party tools and services with Azure, such as Chef, Puppet, Ansible, and Terraform

Module 18: Implement Compliance and Security in your Infrastructure

Lessons

  • Security and Compliance Principles with DevOps
  • Azure security Center

Lab : Implement Security and Compliance in an Azure DevOps Pipeline

After completing this module, students will be able to:
  • Define an infrastructure and configuration strategy and appropriate toolset for a release pipeline and application infrastructure
  • Implement compliance and security in your application infrastructure

Module 19: Recommend and design system feedback mechanisms

Lessons

  • The inner loop
  • Continuous Experimentation mindset
  • Design practices to measure end-user satisfaction
  • Design processes to capture and analyze user feedback
  • Design process to automate application analytics

Lab : Integration between Azure DevOps and Teams

After completing this module, students will be able to:
  • Design practices to measure end-user satisfaction
  • Design processes to capture and analyze user feedback from external sources
  • Design routing for client application crash report data
  • Recommend monitoring tools and technologies
  • Recommend system and feature usage tracking tools

Module 20: Optimize feedback mechanisms

Lessons

  • Site Reliability Engineering
  • Analyze telemetry to establish a baseline
  • Perform ongoing tuning to reduce meaningless or non-actionable alerts
  • Analyze alerts to establish a baseline
  • Blameless Retrospectives and a Just Culture
After completing this module, students will be able to:
  • 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