Course Overview
This course provides the knowledge and skills to design and implement DevOps processes and practices. 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.
Who Should Attend?
Students in this course are interested in implementing DevOps processes or in passing the Microsoft Azure DevOps Solutions certification exam.
Pre-requisite
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.
Course Outlines
- Transformation Planning
- Project Selection
- Team Structures
- Migrating to Azure DevOps
Lab : Agile Planning and Portfolio Management with Azure Boards
- 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
- 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
- Packaging Dependencies
- Package Management
- Migrating and Consolidating Artifacts
Lab : Updating Packages
- 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
- 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
- Managing Code Quality
- Managing Security Policies
Lab : Managing Technical Debt with Azure DevOps and SonarCloud
- Implementing a Container Build Strategy
Lab : Modernizing Existing ASP.NET Apps with Azure
- Package security
- Open source software
- Integrating license and vulnerability scans
- Implement a versioning strategy
Lab: Manage Open Source Security and License with WhiteSource
- Introduction to Continuous Delivery
- Release strategy recommendations
- Building a High-Quality Release pipeline
- Choosing a deployment pattern
- Choosing the right release management tool
- 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
- 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
- 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
- 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
- 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
- Azure Kubernetes Service
Lab : Deploying a multi-container application to Azure Kubernetes Service
- Chef
- Puppet
- Ansible
- Terraform
Lab : Infrastructure as Code
Lab : Automating Your Infrastructure Deployments in the Cloud with Terraform and Azure Pipelines
- Security and Compliance Principles with DevOps
- Azure security Center
Lab : Implement Security and Compliance in an Azure DevOps Pipeline
- 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
- 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