Students will learn how to plan for DevOps, use source control, scale Git for an enterprise, consolidate artifacts, design a dependency management strategy, manage secrets, implement continuous integration, implement a container build strategy, design a release strategy, set up a release management workflow, implement a deployment pattern, and optimize feedback mechanisms.
Objectives
After completing this course, 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 organization structure
- Describe the benefits of using Source Control
- Migrate from TFVC to Git
- Scale Git for Enterprise DevOps
- Recommend artifact management tools and practices
- Abstract common packages to enable sharing and reuse
- Migrate and consolidate artifacts
- Migrate and integrate source control measures
- Manage application config and secrets
- Develop a project quality strategy
- Plan for secure development practices and compliance rules
- Implement and manage build infrastructure
- Explain why continuous integration matters
- Implement continuous integration using Azure DevOps
- Manage code quality including: technical debt, SonarCloud, and other tooling solutions
- Manage security policies with open source, OWASP, and WhiteSource Bolt
- Implement a container strategy including how containers are different from virtual machines and how microservices use containers
- Implement containers using Docker
- 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
- 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
- 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
- Describe deployment patterns
- Implement Blue Green Deployment
- Implement Canary Release
- Implement Progressive Exposure Deployment
- 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
- Implement a mobile DevOps strategy
- Apply infrastructure and configuration as code principles
- Deploy and manage infrastructure using Microsoft automation technologies such as ARM templates, PowerShell, and Azure CLI
- Describe deployment models and services that are available with Azure
- Deploy and configure a Managed Kubernetes cluster
- Deploy and configure infrastructure using 3rd party tools and services with Azure, such as Chef, Puppet, Ansible, SaltStack, and Terraform
- Define an infrastructure and configuration strategy and appropriate toolset for a release pipeline and application infrastructure
- Implement compliance and security in your application infrastructure
- 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
- 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
Audience
Students in this course are interested in implementing DevOps processes or in passing the Microsoft Azure DevOps Solutions certification exam.
Prerequisites
- Students should have fundamental knowledge about Azure, version control, Agile software development, and core software development principles. It would be helpful to have experience in an organization that delivers software.
- It is recommended that you have experience working in an IDE, as well as some knowledge of the Azure portal. However, students who may not have a technical background in these technologies, but who are curious about DevOps practices as a culture shift, should be able to follow the procedural and expository explanations of continuous integration regardless.
Duration
Five Days
Outline for Designing and Implementing Microsoft DevOps Solutions Training
Module 1: Planning for DevOpsLessons
• 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 ControlLessons
• 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 DevOpsLessons
• 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 PipelinesLessons
• 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 PipelinesLab : 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 PoliciesLessons
• 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 StrategyLessons
• 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 & complianceLessons
• 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 StrategyLessons
• 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 WorkflowLessons
• 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 YAMLLab : Setting up secrets in the pipeline with Azure Key vault Lab : Setting up and Running Functional Tests Lab : Using Azure Monitor as release gateLab : 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 patternLessons
• 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 teamsLessons
• 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 ToolsLessons
• 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 ServicesLessons
• 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 InfrastructureLessons
• 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 AzureLessons
• Chef
• Puppet
• Ansible
• Terraform
Lab : Infrastructure as CodeLab : 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 InfrastructureLessons
• 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 mechanismsLessons
• 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 mechanismsLessons
• 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