Designing and Implementing Microsoft DevOps Solutions AZ400 Course Outline
Module 1: Introduction to DevOps
- Introduction
- What is DevOps?
- Explore the DevOps Journey
- Identify Transformation Teams
- Define Organisation Structure for Agile Practices
- Explore Shared Goals and Define Timelines
- What is Azure DevOps?
- What is GitHub?
- Design a License Management Strategy
- What is Source Control?
- Describe Working with Git Locally
- Introduction to Azure Repos
- Introduction to GitHub
Module 2: Plan Agile with GitHub Projects and Azure Boards
- Introduction
- Introduction to GitHub Projects and Project Boards
- Introduction to Azure Boards
- Configure Projects and Teams in Azure DevOps
- Link GitHub to Azure Boards
- Configure GitHub Projects
- Manage Work with GitHub Project Boards
- Customise Project Views
- Collaborate Using Team Discussions
- Design and Implement a Strategy for Feedback Cycles
- Design and Implement Source, Bug, and Quality Traceability
- Agile Plan and Portfolio Management with Azure Boards
Module 3: Design and Implement Branch Strategies and Workflows
- Introduction
- Explore Branch Workflow Types
- Explore Feature Branch Workflow
- Explore Git Branch Model for Continuous Delivery
- Explore GitHub Flow
- Explore Fork Workflow
- Implement Branch Merging Restrictions
- Version Control with Git in Azure Repos
Module 4: Collaborate with Pull Requests in Azure Repos
- Introduction
- Collaborate with Pull Requests
- Exercise: Azure Repos Collaborating with Pull Requests
Module 5: Explore Git Hooks
- Introduction to Git Hooks
- Implement Git Hooks
Module 6: Plan Foster Inner Source
- Introduction
- Explore Foster Inner Source
- Implement the Fork Workflow
- Describe Inner Source with Forks
Module 7: Manage and Configure Repositories
- Introduction
- Work with Large Repositories
- Explore Monorepo Versus Multiple Repos
- Implement a Change Log
- Implement Scalar and Cross-Repo Sharing
- Recover Specific Data by Using Git Commands
- Purge Repository Data
- Manage Releases with GitHub Repos
- Automate Release Notes with GitHub
- Create API Documentation
- Implement Automation of Git History Documentation
- Configure Source Control Repository Permissions Using GitHub
- Configure GitHub Tags to Organise Repositories
Module 8: Identify Technical Debt
- Introduction
- Examine Code Quality
- Examine Complexity and Quality Metrics
- Introduction to Technical Debt
- Measure and Manage Technical Debt
- Introduction to GitHub Advanced Security
- Integrate Other Code Quality Tools
- Plan Effective Code Reviews
Module 9: Explore Azure Pipelines
- Introduction
- Explore the Concept of Pipelines in DevOps
- Describe Azure Pipelines
- Understand Azure Pipelines Key Terms
Module 10: Manage Azure Pipeline Agents and Pools
- Introduction
- Choose Between Microsoft-hosted Versus Self-hosted Agents
- Explore Job Types
- Introduction to Agent Pools
- Explore Predefined Agent Pools
- Understand Typical Situations for Agent Pools
- Communicate with Azure Pipelines
- Communicate to Deploy to Target Servers
- Examine Other Considerations
- Describe Security of Agent Pools
- Configure Agent Pools and Understand Pipeline Styles
Module 11: Describe Pipelines and Concurrency
- Introduction
- Understand Parallel Jobs
- Estimate Parallel Jobs
- Describe Azure Pipelines and Open-Source Projects
- Explore Azure Pipelines and Visual Designer
- Describe Azure Pipelines and YAML
- Enable Continuous Integration with Azure Pipelines
Module 12: Design and Implement a Pipeline Strategy
- Introduction
- Configure Agent Demands
- Explore Multi-configuration and Multi-agent
- Integrate GitHub Repos and Azure Pipelines
- Design and Implement a Comprehensive Testing Strategy
- Implement Code Coverage and Show in the Pipeline
- Implement Multi-job Builds
- Explore Source Control Types Supported by Azure Pipelines
Module 13: Integrate with Azure Pipelines
- Introduction
- Describe the Anatomy of a Pipeline
- Understand the Pipeline Structure
- Detail Templates
- Explore YAML Resources
- Use Multiple Repositories in Your Pipeline
- Migrate a Pipeline from Classic to YAML in Azure Pipelines
Module 14: Introduction to GitHub Actions
- Introduction
- What are Actions?
- Explore Actions Flow
- Understand Workflows
- Describe Standard Workflow Syntax Elements
- Explore Events
- Explore Jobs
- Explore Runners
- Examine Release and Test an Action
Module 15: Learn Continuous Integration with GitHub Actions
- Introduction
- Describe Continuous Integration with Actions
- Examine Environment Variables
- Share Artifacts Between Jobs
- Examine Workflow Badges
- Describe Best Practices for Creating Actions
- Mark Releases with Git Tags
- Create Encrypted Secrets
- Use Secrets in a Workflow
- Implement GitHub Actions for CI/CD
Module 16: Design a Container Build Strategy
- Introduction
- Examine Structure of Containers
- Work with Docker Containers
- Understand Dockerfile Core Concepts
- Examine Multi-stage Dockerfiles
- Examine Considerations for Multiple Stage Builds
- Explore Azure Container-related Services
- Deploy Docker Containers to Azure App Service Web Apps
Module 17: Create a Release Pipeline
- Introduction
- Describe Azure DevOps Release Pipeline Capabilities
- Explore Release Pipelines
- Explore Artifact Sources
- Choose the Appropriate Artifact Source
- Examine Considerations for Deployment to Stages
- Explore Build and Release Tasks
- Explore Custom Build and Release Tasks
- Explore Release Jobs
- Understand Database Deployment Task
- Configure Pipelines as Code with YAML
Module 18: Explore Release Recommendations
- Introduction
- Understand the Delivery Cadence and Three Types of Triggers
- Explore Release Approvals
- Explore Release Gates
- Use Release Gates to Protect Quality
- Explore GitOps Release Strategy and Recommendations
- Control Deployments Using Release Gates
Module 19: Provision and Test Environments
- Introduction
- Provision and Configure Target Environments
- Exercise: Set Up Service Connections
- Configure Automated Integration and Functional Test Automation
- Understand Shift-left
- Set Up and Run Availability Tests
- Explore Azure Load Testing
- Set Up and Run Functional Tests
Module 20: Manage and Modularize Tasks and Templates
- Introduction
- Examine Task Groups
- Explore Variables in Release Pipelines
- Exercise: Create and Manage Variable Groups
Module 21: Automate Inspection of Health
- Introduction
- Automate Inspection of Health
- Explore Events and Notifications
- Explore Service Hooks
- Configure Azure DevOps Notifications
- Configure GitHub Notifications
- Explore How to Measure Quality of Your Release Process
- Examine Release Notes and Documentation
- Examine Considerations for Choosing Release Management Tools
- Explore Common Release Management Tools
Module 22: Introduction to Deployment Patterns
- Introduction
- Explore Microservices Architecture
- Examine Classical Deployment Patterns
- Understand Modern Deployment Patterns
Module 23: Implement Blue-Green Deployment and Feature Toggles
- Introduction
- What is Blue-Green Deployment?
- Explore Deployment Slots
- Introduction to Feature Toggles
- Describe Feature Toggle Maintenance
Module 24: Implement Canary Releases and Dark Launching
- Introduction
- Explore Canary Releases
- Examine Traffic Manager
- Understand Dark Launching
Module 25: Implement A/B Testing and Progressive Exposure Deployment
- Introduction
- What is A/B Testing?
- Explore CI-CD with Deployment Rings
Module 26: Integrate with Identity Management Systems
- Introduction
- Integrate GitHub with Single Sign-On (SSO)
- Design and Implement Permissions and Roles in GitHub
- Design and Implement Permissions and Security Groups in Azure DevOps
- Explore Workload Identities
- Implement Managed Identities
Module 27: Manage Application Configuration Data
- Introduction
- Rethink Application Configuration Data
- Explore Separation of Concerns
- Understand External Configuration Store Patterns
- Implement Azure DevOps Secure Files
- Introduction to Azure App Configuration
- Examine Key-Value Pairs
- Examine App Configuration Feature Management
- Integrate Azure Key Vault with Azure Pipelines
- Manage Secrets, Tokens and Certificates
- Examine DevOps Inner and Outer Loop
- Integrate Azure Key Vault with Azure DevOps
- Enable Dynamic Configuration and Feature Flags
Module 28: Explore Infrastructure as Code and Configuration Management
- Introduction
- Explore Environment Deployment
- Examine Environment Configuration
- Understand Imperative Versus Declarative Configuration
- Understand Idempotent Configuration
Module 29: Create Azure Resources Using Azure Resource Manager Templates
- Introduction
- Why Use Azure Resource Manager Templates?
- Explore Template Components
- Manage Dependencies
- Modularise Templates
- Manage Secrets in Templates
Module 30: Create Azure Resources by Using Azure CLI
- Introduction
- What is Azure CLI?
- Work with Azure CLI
Module 31: Explore Azure Automation with DevOps
- Introduction
- Create Automation Accounts
- What is a Runbook?
- Understand Automation Shared Resources
- Explore Runbook Gallery
- Examine Webhooks
- Explore Source Control Integration
- Explore PowerShell Workflows
- Create a Workflow
- Explore Hybrid Management
- Examine Checkpoint and Parallel Processing
Module 32: Implement Desired State Configuration (DSC)
- Introduction
- Understand Configuration Drift
- Explore Desired State Configuration (DSC)
- Explore Azure Automation State Configuration (DSC)
- Examine DSC Configuration File
- Implement DSC and Linux Automation on Azure
Module 33: Implement Bicep
- Introduction
- What is Bicep?
- Install Bicep
- Exercise: Create Bicep Templates
- Understand Bicep File Structure and Syntax
- Exercise: Deploy a Bicep File from Azure Pipelines
- Exercise: Deploy a Bicep File from GitHub Workflows
- Deployments Using Azure Bicep Templates
Module 34: Explore Package Dependencies
- Introduction
- What is Dependency Management?
- Describe Elements of a Dependency Management Strategy
- Identify Dependencies
- Understand Source and Package Componentization
- Decompose Your System
- Scan Your Codebase for Dependencies
Module 35: Understand Package Management
- Introduction
- Explore Packages
- Understand Package Feeds
- Explore Package Feed Managers
- Explore Common Public Package Sources
- Explore Self-hosted and SaaS-based Package Sources
- Consume Packages
- Introduction to Azure Artifacts
- Publish Packages
- Package Management with Azure Artifacts
Module 36: Migrate, Consolidate and Secure Artifacts
- Introduction
- Identify Existing Artifact Repositories
- Migrate and Integrate Artifact Repositories
- Secure Access to Package Feeds
- Examine Roles
- Examine Permissions
- Examine Authentication
Module 37: Implement a Versioning Strategy
- Introduction
- Understand Versioning of Artifacts
- Explore Semantic Versioning
- Examine Release Views
- Promote Packages
- Explore Best Practices for Versioning
Module 38: Introduction to GitHub Packages
- Introduction
- Publish Packages
- Install a Package
- Delete and Restore a Package
- Explore Package Access Control and Visibility
Module 39: Implement Tools to Track Usage and Flow
- Introduction
- Understand the Inner Loop
- Introduction to Continuous Monitoring
- Explore Azure Monitor and Log Analytics
- Examine Kusto Query Language (KQL)
- Implement Application Insights
- Design and Implement Metrics and Queries
- Monitor Application Performance with Application Insights
Module 40: Develop Monitor and Status Dashboards
- Introduction
- Configure Monitoring in GitHub
- Explore Azure Dashboards
- Explore Azure Monitor Workbooks
- Explore Power BI
- Build Your Own Custom Application
- Monitor Pipeline Health, Including Failure Rate, Duration, and Flaky Tests
- Optimise a Pipeline for Cost, Time, Performance, and Reliability
- Optimise Pipeline Concurrency for Performance and Cost
Module 41: Share Knowledge Within Teams
- Introduction
- Share Acquired Knowledge within Development Teams
- Introduction to Azure DevOps Project Wikis
- Integrate GitHub and Azure DevOps with Microsoft Teams
- Share Team Knowledge Using Azure Project Wiki
Module 42: Design Processes to Automate Application Analytics
- Introduction
- Explore Rapid Responses and Augmented Search
- Integrate Telemetry
- Examine Monitoring Tools and Technologies
- Explore IT Service Management Connector
Module 43: Manage Alerts, Blameless Retrospectives and a Just Culture
- Introduction
- Examine When to Get a Notification
- Explore How to Fix It
- Explore Smart Detection Notifications
- Improve Performance
- Understand Server Response Time Degradation
- Reduce Meaningless and Non-actionable Alerts
- Examine Blameless Retrospective
- Develop a Just Culture
Module 44: Introduction to Secure DevOps
- Introduction
- Describe SQL Injection Attack
- Understand DevSecOps
- Explore Secure DevOps Pipeline
- Explore Key Validation Points
- Explore Continuous Security Validation
- Understand Threat Modeling
- Explore CodeQL in GitHub
Module 45: Implement Open-Source Software
- Introduction
- Explore How Software is Built
- What is Open-source Software?
- Explore Corporate Concerns with Open-source Software Components
- Introduction to Open-source Licenses
- Explore Common Open-source Licenses
- Examine License Implications and Ratings
Module 46: Software Composition Analysis
- Introduction
- Inspect and Validate Code Bases for Compliance
- Explore Software Composition Analysis (SCA)
- Implement GitHub Dependabot Alerts and Security Updates
- Integrate Software Composition Analysis Checks into Pipelines
- Examine Tools for Assess Package Security and License Rate
- Automate Container Scanning, Including Container Images
- Interpret Alerts from Scanner Tools
Module 47: Security Monitoring and Governance
- Introduction
- Implement Pipeline Security
- Explore Microsoft Defender for Cloud
- Examine Microsoft Defender for Cloud Usage Scenarios
- Explore Azure Policy
- Understand Policies
- Explore Initiatives
- Explore Resource Locks
- Understand Microsoft Defender for Identity
- Integrate GitHub Advanced Security with Microsoft Defender for Cloud
- Configure GitHub Advanced Security for GitHub and Azure DevOps