Azure DevOps Explained

Book description

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
      1. Principle 1 – Customer-centric action
      2. Principle 2 – Create with the end in mind
      3. Principle 3 – End-to-end responsibility
      4. Principle 4 – Cross-functional autonomous teams
      5. Principle 5 – Continuous improvement
      6. Principle 6 – Automate everything
    3. Introducing Azure DevOps key concepts
      1. Plan
      2. Develop
      3. Deliver
      4. Operate
      5. Continuous integration and continuous delivery (CI/CD)
      6. Agile development support
      7. Version control
      8. Infrastructure as Code
      9. Configuration Management
      10. Monitoring
    4. Discovering Azure DevOps services
      1. Azure Boards
      2. Azure Repos
      3. Azure Pipelines
      4. Azure Test Plans
      5. Azure Artifacts
      6. Extension Marketplace
    5. Introducing the scenarios
      1. Creating the starter project
    6. Summary
    7. 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
      1. Work Items
      2. Backlogs
      3. Boards
      4. Sprints
      5. Queries
    6. Summary
    7. 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
      1. GitHub Flow
      2. GitLab Flow
      3. Git Flow
    4. Handling source control with Azure DevOps
      1. Cloning a remote repository
      2. Importing a GitHub repository into Azure DevOps
      3. Working with commits, pushes, and branches
      4. Protecting branches with policies
      5. Cross-repo policies
    5. Working with pull requests
      1. Creating a pull request from the Azure DevOps pull request page
      2. Creating a pull request from a work item
      3. Creating a pull request after pushing a branch
      4. Creating a pull request from Visual Studio Code or Visual Studio
    6. Handling a pull request
    7. Tagging a release
    8. 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
      1. Microsoft-hosted agents
      2. Self-hosted agents
      3. When to use a Microsoft-hosted or a self-hosted agent
    5. Overview of the YAML language
      1. Scalars
      2. Collections and lists
      3. Dictionaries
      4. Document structure
      5. Complex object definition
    6. Creating a build pipeline with Azure DevOps
      1. Pipeline definition with the classic editor
      2. YAML pipeline definition
    7. Retention of builds
    8. Multi-stage pipeline
    9. Building a pipeline with GitHub repositories
      1. Executing jobs in parallel in an Azure Pipeline
      2. Agents on Azure Container Instances
    10. Using container jobs in Azure Pipelines
    11. 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
      1. Downloading the source code
      2. Creating the pipeline
    5. Introduction to code coverage testing
    6. Performing code coverage testing
    7. Assigning test results to work items
    8. Introduction to Feature Flags
    9. Using Feature Flags to test in production
      1. Creating a new .NET Core application
    10. Summary
    11. 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
      1. Microsoft-hosted agents
      2. Self-hosted agents
    4. Planning and setting up your self-hosted Azure pipeline agent
      1. Choosing the right OS/image for the agent VM
      2. OS support and pre-requisites for installing an Azure Pipelines agent
      3. Creating a VM in Azure for your project
      4. Setting up the build agent
    5. Updating your Azure pipeline to use self-hosted agents
      1. Preparing your self-hosted agent to build the Parts Unlimited project
      2. Running the Azure pipeline
    6. Using containers as self-hosted agents
      1. Setting up Windows containers as Azure pipeline agents
      2. Setting up Linux containers as Azure Pipelines agents
      3. Using Azure Container Instances as agents
      4. Environment variables
      5. Planning for scale
      6. Creating an Azure VM scale set
      7. Setting up Azure pipeline agents with VM scale set
    7. 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
      1. Adding the sample project to the PartsUnlimited repository
      2. Creating the build pipeline
    5. Publishing the package to the feed from a build pipeline
      1. Setting the required permissions on the feed
    6. Consuming the package in Visual Studio from the Artifacts feed
    7. Scanning for package vulnerabilities using WhiteSource Bolt
    8. Summary
    9. 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
      1. Creating the Azure DevOps release
      2. Configuring the release pipeline triggers for continuous deployment
    4. Creating a multi-stage release pipeline
    5. Using approvals and gates for managing deployments
      1. Creating approvals
      2. Using gates to check conditions
      3. Using deployment groups
    6. YAML release pipelines with Azure DevOps
    7. 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
      1. Setting up Azure Pipelines and GitHub integration
      2. Testing continuous integration
      3. Adding a build Status badge
    4. Integrating Azure Boards with GitHub
      1. Setting up Azure Boards and GitHub integration
      2. Adding an Azure Boards Status badge
      3. Linking Azure Boards work items to GitHub objects
      4. Updating work items from GitHub
    5. Overview of GitHub Actions
    6. Summary
  21. Chapter 10: Using Test Plans with Azure DevOps
    1. Technical requirements
    2. Introduction to Azure Test Plans
    3. Exploratory testing
      1. Installing and using the Test & Feedback extension
    4. Planned manual testing
    5. Test plans, test suites, and test cases
      1. Managing test plans, test suites, and test cases
    6. Running and analyzing a manual test plan
    7. Summary
    8. 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
      1. Introduction to the sample application
      2. Preparing the pre-requisite Azure infrastructure
      3. Setting up an Azure DevOps project
    3. Setting up a CI/CD pipeline for a container-based application
      1. Introduction to the sample app
      2. Setting up the required infrastructure
      3. Setting up Azure Repos for the voting application
      4. Setting up the CI pipeline
      5. Setting up the CD pipeline
      6. Simulating an end-to-end CI/CD experience
    4. Azure Architecture Center for DevOps
    5. Summary
  23. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think

Product information

  • Title: Azure DevOps Explained
  • Author(s): Sjoukje Zaal, Stefano Demiliani, Amit Malik
  • Release date: December 2020
  • Publisher(s): Packt Publishing
  • ISBN: 9781800563513