Introduction

Completed

Imagine that you're a software developer for an online retailer named eShop. The retailer uses a microservices-based architecture that's native to the cloud, and uses .NET for its online storefront. The solution includes a NET API referred to as the product service. The store service makes calls to the backend products API to get details of the products for sale.

This module focuses on resiliency, which is the ability of an application or service to handle problems. Resiliency helps make your app fault-tolerant in a way that has the lowest possible impact on the user. The following resilience approaches are explored:

  • Using a code-based approach
  • Using an infrastructure-based approach

You'll modify the app to include some code-based resiliency handling policies in a microservice. You'll also reconfigure your Azure Kubernetes Service (AKS) deployment to implement an infrastructure-based solution.

You use your own Azure subscription to deploy the resources in this module. If you don't have an Azure subscription, create a free account before you begin.

Important

To avoid unnecessary charges in your Azure subscription, be sure to delete your Azure resources when you're done with this module.

Development container

This module includes configuration files that define a development container, or dev container. Using a dev container ensures a standardized environment that's preconfigured with the required tools.

The dev container can run in either of two environments. Before you begin, follow the steps in one of the following links to set up your environment, including installing Docker and the necessary Visual Studio Code extensions.

Learning objectives

In this module, you will:

  • Understand foundational resiliency concepts.
  • Observe the behavior of a microservice that has no resiliency strategy.
  • Implement failure handling code for HTTP requests in one microservice.
  • Deploy an infrastructure-based resiliency solution to an AKS cluster.

Prerequisites

  • Familiarity with C# and .NET development at the beginner level.
  • Familiarity with RESTful service concepts.
  • Conceptual knowledge of containers and AKS at the intermediate level.
  • Ability to run development containers GitHub Codespaces or in Visual Studio Code.