Introduction

Completed

By following the instructions outlined in Automate Docker container deployments with Azure Pipelines, you were able to enhance a release pipeline to build and publish an ASP.NET Core application as a Docker container, which was then deployed to Azure App Service. This migration to a container-based project resulted in numerous benefits for the product team. Moreover, the adoption of container technologies has the potential to unlock various innovative opportunities for the future.

As development organizations expand, the complexity of the solutions they provide also grows. As various products and services become more interdependent, different development and operations requirements arise for various components within a given application. One way to enhance architectural efficiency is by refactoring those components into separate microservices.

A microservice is a small, independent service designed to be self-contained and fulfill a specific business capability. Containers provide an excellent technical foundation for building and deploying these services, but a new question arises: how do we manage all of these containers that are in use?

This is where orchestration technologies such as Kubernetes can be useful. Kubernetes is a platform designed to manage containerized workloads and services. It's an excellent choice for organizations that have an increasing number of containers that must be deployed, integrated, and monitored across various environments.

In this module, you join the Tailspin Toys web team as they explore one way to use Kubernetes on Azure. You learn how to update a release pipeline to build, publish, and deploy multiple Docker containers to a Kubernetes cluster.

While this module focuses on the core tasks that are required to build and deploy your container app, it's important to understand that all the other features of Azure Pipelines are still available for container deployments to Kubernetes. You can integrate testing, define multiple stages, and perform other tasks just like you would for your existing applications. We omit these tasks here to keep things focused.

Learning objectives

After completing this module, you'll be able to:

  • Explain the benefits of Kubernetes and when to use it.
  • Create Azure resources to support a Kubernetes cluster.
  • Update a basic release pipeline to build, publish, and deploy multiple Docker containers to the Kubernetes cluster.
  • Monitor the build and deployment of your project.

Prerequisites

The modules in this learning path form a progression. To follow the progression of this series from the beginning, complete the Get started with Azure DevOps and Build applications with Azure DevOps learning paths.

To begin this learning path from the start, follow the link here: Deploy applications with Azure DevOps. This module picks up where Automate Docker container deployments with Azure Pipelines leaves off.

This module also assumes you have basic familiarity with Kubernetes, although that knowledge isn't required to complete it. If you're new to the topic, we recommend that you complete the Administer containers in Azure learning path learning path first.

Note

Azure Pipelines support a vast array of languages and application types. In this module, you'll be working with a .NET application but you can apply the patterns you learn here to your own projects that use your favorite programming languages and frameworks.

Meet the team

In earlier modules, you met the Space Game web team at Tailspin Toys. The Space Game web team is here again to work with you in this module:

Cartoon depiction of Andy.

Andy is the development lead.

Cartoon depiction of Amita.

Amita is in QA.

Cartoon depiction of Tim.

Tim is in operations.

Cartoon depiction of Mara.

Mara just joined as a developer and reports to Andy.

Mara has prior experience with DevOps. She's helping the team adopt a more automated process that uses Azure DevOps.