This course provides comprehensive knowledge and practical skills for designing and implementing DevOps processes and practices within organizations. Students will learn to plan DevOps transformation initiatives, implement source control strategies, scale Git across enterprise environments, manage build and deployment artifacts, implement dependency management, secure sensitive information, establish continuous integration pipelines, containerize applications, design release strategies, establish release management workflows, implement deployment patterns, and optimize feedback mechanisms throughout the software delivery pipeline.
Audience Profile
This course serves students implementing DevOps processes and practices in their organizations and those preparing for the Microsoft Azure DevOps Solutions certification exam.
Prerequisites
Students should have fundamental knowledge of Azure cloud services, version control systems, Agile software development methodologies, and core software development principles. Experience working in organizations that deliver software products is beneficial.
Learning Outcomes
Upon course completion, 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 the 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 a 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 jobs
- 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 the 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
Course Modules
- Module 1: Planning for DevOps and Organizational Transformation
- Module 2: Getting Started with Source Control
- Module 3: Scaling Git for Enterprise DevOps
- Module 4: Consolidating Artifacts and Designing Dependency Management
- Module 5: Implementing Continuous Integration with Azure Pipelines
- Module 6: Managing Application Configuration and Secrets
- Module 7: Managing Code Quality and Security Policies
- Module 8: Implementing a Container Build Strategy
- Module 9: Managing Artifact Versioning, Security, and Compliance
- Module 10: Designing a Release Strategy
- Module 11: Setting up a Release Management Workflow
- Module 12: Implementing an Appropriate Deployment Pattern
- Module 13: Implementing Processes for Routing System Feedback to Development Teams
- Module 14: Implementing a Mobile DevOps Strategy
- Module 15: Infrastructure and Configuration Using Azure Tools
- Module 16: Azure Deployment Models and Services
- Module 17: Creating and Managing Kubernetes Service Infrastructure
- Module 18: Third-Party Infrastructure as Code Tools Available with Azure
- Module 19: Implementing Compliance and Security in Your Infrastructure
- Module 20: Recommending and Designing System Feedback Mechanisms
- Module 21: Optimizing Feedback Mechanisms and Processes