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 Key Performance Indicators (KPI's)
- Create a team and agile organizational structure
- Design a tool integration strategy
- Design a license management strategy (e.g. Azure DevOps and GitHub 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
Lab : Version Controlling with Git in Azure Repos
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: Managing Technical Debt
Lessons
- Identifying Technical Debt
- Knowledge Sharing within Teams
- Modernizing Development Environments with Codespaces
Lab : Sharing Team Knowledge using Azure Project Wikis
After completing this module, students will be able to:
- Manage code quality including technical debt SonarCloud, and other tooling solutions
- Build organizational knowledge on code quality
Module 4: Working with Git for Enterprise DevOps
Lessons
- How to Structure Your Git Repo
- Git Branching Workflows
- Collaborating with Pull Requests in Azure Repos
- Why Care About Git Hooks
- Fostering Inner Source
- Managing Git Repositories
Lab : Version Controlling with Git in Azure Repos
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 5: Configuring Azure Pipelines
Lessons
- The Concept of Pipelines in DevOps
- Azure Pipelines
- Evaluate use of Hosted versus Self-Hosted Agents
- Agent Pools
- Pipelines and Concurrency
- Azure DevOps and Open-Source Projects (Public Projects)
- Azure Pipelines YAML versus Visual Designer
Lab : Configuring Agent Pools and Understanding Pipeline Styles
After completing this module, students will be able to:
- Explain the role of Azure Pipelines and its components
- Configure Agents for use in Azure Pipelines
Module 6: Implementing Continuous Integration using Azure Pipelines
Lessons
- Continuous Integration Overview
- Implementing a Build Strategy
- Integration with Azure Pipelines
- Integrating External Source Control with Azure Pipelines
- Set Up Self-Hosted Agents
Lab : Enabling Continuous Integration with Azure Pipelines
Lab : Integrating External Source Control with Azure Pipelines
After completing this module, students will be able to:
- Explain why continuous integration matters
- Implement continuous integration using Azure Pipelines
Module 7: Managing Application Configuration and Secrets
Lessons
- Introduction to Security
- Implement a Secure Development Process
- Rethinking Application Configuration Data
- Manage Secrets, Tokens, and Certificates
- Integrating with Identity Management Systems
- Implementing Application Configuration
Lab : Integrating Azure Key Vault with Azure DevOps
After completing this module, students will be able to:
- Manage application configuration and secrets
- Integrate Azure Key Vault with a pipeline
Module 8: Implementing Continuous Integration with GitHub Actions
Lessons
- GitHub Actions
- Continuous Integration with GitHub Actions
- Securing Secrets for GitHub Actions
Lab : GitHub Actions Continuous Integration
After completing this module, students will be able to:
- Create and work with GitHub Actions and Workflows
- Implement Continuous Integration with GitHub Actions
Module 9: Designing and Implementing a Dependency Management Strategy
Lessons
- Packaging Dependencies
- Package Management
- Migrating and Consolidating Artifacts
- Package Security
- Implementing a Versioning Strategy
Lab : Package Management with Azure Artifacts
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 10: Designing a Release Strategy
Lessons
- Introduction to Continuous Delivery
- Release Strategy Recommendations
- Building a High-Quality Release pipeline
- Choosing the Right Release Management Tool
Lab : Controlling Deployments using Release Gates
Lab : Creating a Release Dashboard
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
- Choose a release management tool
Module 11: Implementing Continuous Deployment using Azure Pipelines
Lessons
- Create a Release Pipeline
- Provision and Configure Environments
- Manage and Modularize Tasks and Templates
- Configure Automated Integration and Functional Test Automation
- Automate Inspection of Health
Lab : Configuring Pipelines as Code with YAML
Lab : Setting up and Running Functional Tests
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
- 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
- List the different ways to inspect the health of your pipeline and release by using alerts, service hooks, and reports
Module 12: Implementing 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: Managing Infrastructure and Configuration using Azure Tools
Lessons
- Infrastructure as Code and Configuration Management
- Create Azure Resources using ARM Templates
- Create Azure Resources using Azure CLI
- Azure Automation with DevOps
- Desired State Configuration (DSC)
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 14: Third Party Infrastructure as Code Tools Available with Azure
Lessons
- Chef
- Puppet
- Ansible
- Terraform
Lab : Automating Infrastructure Deployments in the Cloud with Terraform and Azure Pipelines
Lab : Deploying Apps with Chef on Azure
Lab : Deploy App with Puppet on Azure
Lab : Ansible with Azure
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 15: Managing Containers using Docker
Lessons
- Implementing a Container Build Strategy
- Implementing Docker Multi-Stage Builds
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
- Implement Docker multi-stage builds
Module 16: Creating and Managing Kubernetes Service Infrastructure
Lessons
- Azure Kubernetes Service
- Kubernetes Tooling
- Integrating AKS with Pipelines
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: Implementing Feedback for 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 with Application Insights
After completing this module, students will be able to:
- Implement tools to track system usage, feature usage, and flow
- Configure crash report integration for client applications
- Implement routing for client application crash report data
- Develop monitoring and status dashboards
- Integrate and configure ticketing systems with development team's work management
Module 18: Implementing System Feedback Mechanisms
Lessons
- Site Reliability Engineering
- Design Practices to Measure End-User Satisfaction
- Design Processes to Capture and Analyze User Feedback
- Design Processes to Automate Application Analytics
- Managing Alerts
- Blameless Retrospectives and a Just Culture
Lab : Integration between Azure DevOps and Teams
After completing this module, students will be able to:
- Define Site Reliability Engineering
- Design processes to measure end-user satisfaction and analyze user feedback
- Design processes to automate application analytics
- Manage alerts and reduce meaningless and non-actionable alerts
- Carry out blameless retrospectives and create a just culture
Module 19: Implementing Security in DevOps Projects
Lessons
- Security in the Pipeline
- 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 20: Validating Code Bases for Compliance
Lessons
- Open-Source Software
- Managing Security and Compliance Policies
- Integrating License and Vulnerability Scans
Lab : Managing Technical Debt with SonarQube and Azure DevOps
After completing this module, students will be able to:
- Describe the potential challenges with integrating open-source software
- Inspect open-source software packages for security and license compliance
- Manage organizational security and compliance policies
- Integrate license and vulnerability scans into build and deployment pipelines
- Configure build pipelines to access package security and license ratings