CI/CD Using Azure Pipelines
Azure DevOps provides a set of cloud-hosted tools that software teams can use as an end-to-end solution to plan, develop, test, and deliver value in the form of working software. Azure Pipelines automatically builds, tests, and deploys code in the cloud or on-prem to enable continuous feedback. This one-day course demonstrates how an agile team can configure and use Azure Pipelines to effectively build, test, and deploy software while practicing Continuous Integration (CI) and Continuous Delivery (CD). To maximize learning, students will work in teams, in a common Azure DevOps project, on a common case study.
Who should take this class?
This course is appropriate for all members of a software development team, especially those who are actively involved in automating the building, testing, and deploying of software. This course will also provide value for individuals outside the development team (managers, IT, operations, and other stakeholders) who want hands-on exposure to the capabilities of Azure Pipelines.
Benefits
This course provides several learning objectives and benefits
- Configure an Azure DevOps project to build, test, and deploy code
- Use a build pipeline to automate the building of code
- Install and configure build and release agents
- Specify pipeline behavior using YAML
- Include testing in a build pipeline
- Collect code coverage during an automated build
- Use Azure DevOps to practice Continuous Integration (CI)
- Increase performance by using Test Impact Analysis
- Use a release pipeline to automate the release and deploy process
- Use Azure DevOps to practice Continuous Delivery (CD)
- Configure multi-stage pipelines using YAML
- Understand the Build, Measure, Learn loop
- Use feature flags to deploy features before enabling them
- Practice hypothesis-driven development
- Use telemetry and A/B testing to prove a hypothesis
Outline
1. Continuous Integration
- Introduction to Azure Pipelines
- Creating a build pipeline
- Pipeline tasks, variables, and triggers
- Agents (hosted vs. on-premises)
- Configuring self-hosted agents
- Creating a YAML-based pipeline
- Running tests and computing code coverage
- Using Coverlet to collect/report code coverage
- Configuring CI using triggers
- Practicing Continuous Integration
- Configuring and using Test Impact Analysis
- Exploring pipeline analytics
- Continuous Integration+
- Hands-on lab
2. Continuous Delivery
- Creating a release pipeline
- Pipeline stages, jobs, tasks, and targets
- Multi-stage YAML pipelines
- Configuring environments and resources
- Creating, deploying, and managing a release
- Configuring/practicing Continuous Delivery
- Hands-on lab
3. Continuous Deployment
- Continuous Delivery vs. Continuous Deployment
- Build-measure-learn explained
- Using feature flags for CD and feedback
- Hypothesis-Driven Development
- Using LaunchDarkly for feature management
- Creating and using feature flags
- Experimenting in production, A/B testing
- Hands-on lab
Required Prerequisites
Attendees should have some experience with Azure DevOps.
Useful Prerequisites
Understanding of C# and .NET 6.0 will be beneficial, but is not required.