Implement real-world DevOps and cloud deployment scenarios using Azure Repos, Azure Pipelines, and other Azure DevOps tools

Key Features

  • Improve your application development life cycle with Azure DevOps in a step-by-step manner
  • Apply continuous integration and continuous deployment to reduce application downtime
  • Work with real-world CI/CD scenarios curated by a team of renowned Microsoft MVPs and MCTs

Book Description

Developing applications for the cloud involves changing development methodologies and procedures. Continuous integration and continuous deployment (CI/CD) processes are a must today, but are often difficult to implement and adopt. Azure DevOps is a Microsoft Azure cloud service that enhances your application development life cycle and enables DevOps capabilities.

Starting with a comprehensive product overview, this book helps you to understand Azure DevOps and apply DevOps techniques to your development projects. You'll find out how to adopt DevOps techniques for your development processes by using built-in Azure DevOps tools. Throughout the course of this book, you'll also discover how to manage a project with the help of project management techniques such as Agile and Scrum, and then progress toward development aspects such as source code management, build pipelines, code testing and artifacts, release pipelines, and GitHub integration. As you learn how to implement DevOps practices, this book will also provide you with real-world examples and scenarios of DevOps adoption.

By the end of this DevOps book, you will have learned how to adopt and implement Azure DevOps features in your real-world development processes.

What you will learn

  • Get to grips with Azure DevOps
  • Find out about project management with Azure Boards
  • Understand source code management with Azure Repos
  • Build and release pipelines
  • Run quality tests in build pipelines
  • Use artifacts and integrate Azure DevOps in the GitHub flow
  • Discover real-world CI/CD scenarios with Azure DevOps

Who this book is for

This book is for developers, solutions architects, and DevOps engineers interested in getting started with cloud DevOps practices on Azure. Prior understanding of Azure architecture and services is necessary. Some knowledge of DevOps principles and techniques will be useful.

Table of Contents

  1. Azure DevOps Explained
  2. Why subscribe?
  3. Contributors
  4. About the authors
  5. About the reviewers
  6. Packt is searching for authors like you
  7. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
    4. Download the example code files
    5. Download the color images
    6. Conventions used
    7. Get in touch
    8. Reviews
  8. Section 1: DevOps Principles and Azure DevOps Project Management
  9. Chapter 1: Azure DevOps Overview
    1. Introducing DevOps
    2. Understanding DevOps principles
    3. Principle 1 – Customer-centric action
    4. Principle 2 – Create with the end in mind
    5. Principle 3 – End-to-end responsibility
    6. Principle 4 – Cross-functional autonomous teams
    7. Principle 5 – Continuous improvement
    8. Principle 6 – Automate everything
    9. Introducing Azure DevOps key concepts
    10. Plan
    11. Develop
    12. Deliver
    13. Operate
    14. Continuous integration and continuous delivery (CI/CD)
    15. Agile development support
    16. Version control
    17. Infrastructure as Code
    18. Configuration Management
    19. Monitoring
    20. Discovering Azure DevOps services
    21. Azure Boards
    22. Azure Repos
    23. Azure Pipelines
    24. Azure Test Plans
    25. Azure Artifacts
    26. Extension Marketplace
    27. Introducing the scenarios
    28. Creating the starter project
    29. Summary
    30. Further reading
  10. Chapter 2: Managing Projects with Azure DevOps Boards
    1. Technical requirements
    2. Understanding processes and process templates
    3. Creating an organization
    4. Creating a project
    5. Creating and managing project activities
    6. Work Items
    7. Backlogs
    8. Boards
    9. Sprints
    10. Queries
    11. Summary
    12. Further reading
  11. Section 2: Source Code and Builds
  12. Chapter 3: Source Control Management with Azure DevOps
    1. Technical requirements
    2. Understanding SCM
    3. Exploring branching strategies
    4. GitHub Flow
    5. GitLab Flow
    6. Git Flow
    7. Handling source control with Azure DevOps
    8. Cloning a remote repository
    9. Importing a GitHub repository into Azure DevOps
    10. Working with commits, pushes, and branches
    11. Protecting branches with policies
    12. Cross-repo policies
    13. Working with pull requests
    14. Creating a pull request from the Azure DevOps pull request page
    15. Creating a pull request from a work item
    16. Creating a pull request after pushing a branch
    17. Creating a pull request from Visual Studio Code or Visual Studio
    18. Handling a pull request
    19. Tagging a release
    20. Summary
  13. Chapter 4: Understanding Azure DevOps Pipelines
    1. Technical requirements
    2. Implementing a CI/CD process
    3. Overview of Azure Pipelines
    4. Understanding build agents
    5. Microsoft-hosted agents
    6. Self-hosted agents
    7. When to use a Microsoft-hosted or a self-hosted agent
    8. Overview of the YAML language
    9. Scalars
    10. Collections and lists
    11. Dictionaries
    12. Document structure
    13. Complex object definition
    14. Creating a build pipeline with Azure DevOps
    15. Pipeline definition with the classic editor
    16. YAML pipeline definition
    17. Retention of builds
    18. Multi-stage pipeline
    19. Building a pipeline with GitHub repositories
    20. Executing jobs in parallel in an Azure Pipeline
    21. Agents on Azure Container Instances
    22. Using container jobs in Azure Pipelines
    23. Summary
  14. Chapter 5: Running Quality Tests in a Build Pipeline
    1. Technical requirements
    2. Benefits of automatic testing
    3. Introduction to unit testing
    4. Running unit tests in a build pipeline
    5. Downloading the source code
    6. Creating the pipeline
    7. Introduction to code coverage testing
    8. Performing code coverage testing
    9. Assigning test results to work items
    10. Introduction to Feature Flags
    11. Using Feature Flags to test in production
    12. Creating a new .NET Core application
    13. Summary
    14. Further reading
  15. Chapter 6: Hosting Your Own Azure Pipeline Agent
    1. Technical requirements
    2. Azure pipeline agent overview
    3. Understanding the types of agents in Azure Pipelines
    4. Microsoft-hosted agents
    5. Self-hosted agents
    6. Planning and setting up your self-hosted Azure pipeline agent
    7. Choosing the right OS/image for the agent VM
    8. OS support and pre-requisites for installing an Azure Pipelines agent
    9. Creating a VM in Azure for your project
    10. Setting up the build agent
    11. Updating your Azure pipeline to use self-hosted agents
    12. Preparing your self-hosted agent to build the Parts Unlimited project
    13. Running the Azure pipeline
    14. Using containers as self-hosted agents
    15. Setting up Windows containers as Azure pipeline agents
    16. Setting up Linux containers as Azure Pipelines agents
    17. Using Azure Container Instances as agents
    18. Environment variables
    19. Planning for scale
    20. Creating an Azure VM scale set
    21. Setting up Azure pipeline agents with VM scale set
    22. Summary
  16. Section 3: Artifacts and Deployments
  17. Chapter 7: Using Artifacts with Azure DevOps
    1. Technical requirements
    2. Introducing Azure Artifacts
    3. Creating an artifact feed with Azure Artifacts
    4. Producing the package using a build pipeline
    5. Adding the sample project to the PartsUnlimited repository
    6. Creating the build pipeline
    7. Publishing the package to the feed from a build pipeline
    8. Setting the required permissions on the feed
    9. Consuming the package in Visual Studio from the Artifacts feed
    10. Scanning for package vulnerabilities using WhiteSource Bolt
    11. Summary
    12. Further reading
  18. Chapter 8: Deploying Applications with Azure DevOps
    1. Technical requirements
    2. An overview of release pipelines
    3. Creating a release pipeline with Azure DevOps
    4. Creating the Azure DevOps release
    5. Configuring the release pipeline triggers for continuous deployment
    6. Creating a multi-stage release pipeline
    7. Using approvals and gates for managing deployments
    8. Creating approvals
    9. Using gates to check conditions
    10. Using deployment groups
    11. YAML release pipelines with Azure DevOps
    12. Summary
  19. Section 4: Advanced Features of Azure DevOps
  20. Chapter 9: Integrating Azure DevOps with GitHub
    1. Technical requirements
    2. An overview of Azure DevOps and GitHub integration
    3. Integrating Azure Pipelines with GitHub
    4. Setting up Azure Pipelines and GitHub integration
    5. Testing continuous integration
    6. Adding a build Status badge
    7. Integrating Azure Boards with GitHub
    8. Setting up Azure Boards and GitHub integration
    9. Adding an Azure Boards Status badge
    10. Linking Azure Boards work items to GitHub objects
    11. Updating work items from GitHub
    12. Overview of GitHub Actions
    13. Summary
  21. Chapter 10: Using Test Plans with Azure DevOps
    1. Technical requirements
    2. Introduction to Azure Test Plans
    3. Exploratory testing
    4. Installing and using the Test & Feedback extension
    5. Planned manual testing
    6. Test plans, test suites, and test cases
    7. Managing test plans, test suites, and test cases
    8. Running and analyzing a manual test plan
    9. Summary
    10. Further reading
  22. Chapter 11: Real-World CI/CD Scenarios with Azure DevOps
    1. Technical requirements
    2. Setting up a CI/CD pipeline for .NET-based applications
    3. Introduction to the sample application
    4. Preparing the pre-requisite Azure infrastructure
    5. Setting up an Azure DevOps project
    6. Setting up a CI/CD pipeline for a container-based application
    7. Introduction to the sample app
    8. Setting up the required infrastructure
    9. Setting up Azure Repos for the voting application
    10. Setting up the CI pipeline
    11. Setting up the CD pipeline
    12. Simulating an end-to-end CI/CD experience
    13. Azure Architecture Center for DevOps
    14. Summary
  23. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think