Introdução
Imagine que você é um desenvolvedor de software para um varejista online chamado eShop. O varejista usa uma arquitetura baseada em microsserviços que é nativa da nuvem e usa o .NET para sua vitrine online. A solução inclui uma API NET conhecida como o serviço de produto. O serviço de loja faz chamadas à API de produtos de back-end para obter detalhes dos produtos à venda.
Este módulo se concentra na resiliência, que é a capacidade de um aplicativo ou serviço lidar com problemas. A resiliência ajuda a tornar seu aplicativo tolerante a falhas de uma forma que tenha o menor impacto possível sobre o usuário. As seguintes abordagens de resiliência são exploradas:
- Usando uma abordagem baseada em código
- Usando uma abordagem baseada em infraestrutura
Você modificará o aplicativo para incluir algumas políticas de tratamento de resiliência baseadas em código em um microsserviço. Você também reconfigura sua implantação do AKS (Serviço de Kubernetes do Azure) para implementar uma solução baseada em infraestrutura.
Você usa sua própria assinatura do Azure para implantar os recursos neste módulo. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Importante
Para evitar encargos desnecessários em sua assinatura do Azure, exclua seus recursos do Azure quando terminar de usar este módulo.
Contêiner de desenvolvimento
Esse módulo inclui arquivos de configuração que definem um contêiner de desenvolvimento ou contêiner de desenvolvimento. O uso de um contêiner de desenvolvimento garante um ambiente padronizado pré-configurado com as ferramentas necessárias.
O contêiner de desenvolvimento pode ser executado em qualquer um dos dois ambientes. Antes de começar, siga as etapas em um dos links a seguir para configurar seu ambiente, incluindo a instalação do Docker e as extensões de Visual Studio Code necessárias.
- Visual Studio Code e um ambiente do Docker com suporte no seu computador local.
- GitHub Codespaces (pode haver custos).
Objetivos de aprendizagem
Neste módulo, você:
- Entender os conceitos básicos da resiliência.
- Observe o comportamento de um microsserviço que não tem nenhuma estratégia de resiliência.
- Implementar código de tratamento de falhas para solicitações HTTP em um microsserviço.
- Implantar uma solução de resiliência baseada em infraestrutura em um cluster do AKS.
Pré-requisitos
- Familiaridade com o desenvolvimento em C# e .NET no nível iniciante.
- Familiaridade com conceitos de serviço RESTful.
- Conhecimento conceitual de contêineres e AKS no nível intermediário.
- Capacidade de executar contêineres de desenvolvimento no GitHub Codespaces ou no Visual Studio Code.