Application Development with Azure DevOps
Duration
3 days
Description
Azure DevOps is Microsoft’s team-focused software to help your entire organization plan smarter, collaborate better, and ship faster with a set of modern developer services. Azure DevOps is a one-stop solution to help you deliver value and built-in quality for any app written using any code on any platform. You can build and deploy both to the cloud and on-premises for desktop, web, mobile, and more. You’ll learn about the features and how you can use them effectively together. However, Microsoft has made the service fully extensible and integrates with popular services and platforms, so you’re never locked in. In this 3-day, hands-on course, you will learn how you can apply sound DevOps principles so you and your team can deliver value as fast as your customers need and expect. This course can be taught Azure DevOps Services or Azure DevOps Server (formerly Team Foundation Server). Azure DevOps Service is Microsoft’s cloud-based solution, while Azure DevOps Server is an on-premises solution.
Objectives
- How you, your team, or your company should provision Azure DevOps Services or Azure DevOps Server
- How to on-board developers and stakeholders
- How you can use Azure Boards to track and manage your team’s work
- How to use Azure Repos for distributed version control of your team’s assets using Git
- How to use Azure Pipelines to create build pipelines to package up your applications
- How to use Azure Pipelines to publish your applications and other items to the cloud or on-premises
- How to increase quality with Azure Test Plans
- How to create, host, and share packages with your team and add artifacts to your pipelines with Azure Artifacts
Prerequisites
Basic programming experience, preferably in C# with Visual Studio Code or Visual Studio 2022. The focus of this class is using Azure DevOps Services, so all programming code is provided to the student.
Training Materials
All students receive comprehensive courseware covering all topics in the course. Courseware is distributed via GitHub in the form of documentation and extensive code samples. Students practice the topics covered through challenging hands-on lab exercises.
Software Requirements
Students will need a free, personal GitHub account to access the courseware. Student will need permission to install the selected language platform (Node.js, .NET SDK, or Python) and Visual Studio Code on their computers. Also, students will need permission to install packages for the selected coding platform as well as Visual Studio Extensions.
Outline
- Introduction
- A Day in the Life of a Developer
- Level set of “What is DevOps?”
- Overview of Azure DevOps (aka VSTS)
- Azure Boards
- Azure Repos & GitHub Repos
- Azure Pipelines & GitHub Actions
- Azure Test Plans
- Azure Artifacts & GitHub Packages
- Examine end-to-end workflow
- Examine Organization and Team configuration
- Logins
- Notifications
- The core features that every team member needs to know
- Azure Boards: Plan, Track, and Discuss Work Across Your Teams
- What does every team member need to know?
- Organizing and refining the Product Backlog
- Tools in Azure Boards
- The Product Backlog
- Kanban boards
- Task Boards
- Dependencies, types, and related risks
- Planning and executing a Sprint
- Limiting work in progress (WIP)
- Working in small batches
- Creating and accepting a definition of “Done”
- Using queries, charts, and dashboards for basic reporting
- “Just enough project management” to support full DevOps traceability
- Azure Repos & GitHub Repos: Using Git Effectively
- Centralized vs. decentralized version control
- Defining and managing repos
- Don’t fear the command-line
- Working with branches
- Pull Requests
- Using Code Search
- Azure Pipelines & GitHub Actions: Building Quality In
- Defining Quality Gates
- Azure Pipelines for Builds
- Understanding and Managing Agents
- YAML Build Definitions
- Testing with Build
- Unit Testing
- Code Coverage
- Test Impact Analysis
- Managing and Sharing Build Definition
- Azure Pipelines: Releasing to the World
- Understanding deployment models
- Azure Pipelines for Releases
- YAML Release Definitions
- Service Connections
- Stages and environments
- Defining approval processes and quality gates
- Deployment Groups and Targets
- Managing and Sharing Release Definitions
- Infrastructure & Configuration Management
- Infrastructure as Code
- Create Azure Resources with ARM Templates
- Create Azure Resources with Bicep Templates
- Create Azure Resources with Azure CLI & PowerShell
- Implement Desired State Configuration
- Azure Automation with DevOps
- Azure Artifacts & GitHub Packages: Sharing Code Effectively
- Why and what of the service
- Integrating with Azure Pipelines
- Designing your repos to better support sharing
- Updating your workflow to support collective ownership mindset
- Branching strategies
- Applying Open-Source Software principles to internal development
- Automated Testing
- Building Integration Tests
- Automated UI Testing for Web Apps
- Integrating Automated Tests with Builds and Releases
- Feedback: User Acceptance Testing, Monitoring, and Analytics
- Continuous Feedback
- Involving Stakeholders
- Running UAT Tests
- Application Insights
- Quality Tracking and Reporting
- Azure DevOps Analytics
- Conclusion