Partilhar via


Implemente aplicativos resilientes

Sugestão

Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no do .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

Miniatura da capa do eBook Arquitetura de Microsserviços .NET para Aplicações .NET Contentorizadas.

Seus microsserviços e aplicativos baseados em nuvem devem abraçar as falhas parciais que certamente ocorrerão eventualmente. Você deve projetar seu aplicativo para ser resiliente a essas falhas parciais.

Resiliência é a capacidade de recuperar de falhas e continuar a funcionar. Não se trata de evitar falhas, mas aceitar o fato de que as falhas acontecerão e responder a elas de uma forma que evite tempo de inatividade ou perda de dados. O objetivo da resiliência é retornar o aplicativo a um estado totalmente funcional após uma falha.

É desafiador o suficiente projetar e implantar um aplicativo baseado em microsserviços. Mas você também precisa manter seu aplicativo em execução em um ambiente onde algum tipo de falha é certa. Portanto, seu aplicativo deve ser resiliente. Ele deve ser projetado para lidar com falhas parciais, como interrupções de rede ou nós e VMs falhando na nuvem. Mesmo dentro da aplicação, a movimentação de microsserviços (contentores) para um nó diferente dentro de um cluster pode causar falhas breves e intermitentes.

Os muitos componentes individuais da sua aplicação devem também incorporar funcionalidades de monitorização de saúde. Seguindo as diretrizes deste capítulo, você pode criar um aplicativo que possa funcionar sem problemas, apesar do tempo de inatividade transitório ou dos soluços normais que ocorrem em implantações complexas e baseadas em nuvem.

Importante

O eShopOnContainer vinha usando a biblioteca Polly para implementar resiliência usando Clientes Tipados até a versão 3.0.0. A partir da versão 3.0.0, a resiliência de chamadas HTTP é implementada usando uma malha Linkerd, que lida com repetições de forma transparente e configurável dentro de um cluster Kubernetes, sem ter que lidar com essas preocupações no código.

A biblioteca Polly ainda é usada para adicionar resiliência às conexões de banco de dados, especialmente ao iniciar os serviços.

Advertência

Todos os exemplos de código e imagens nesta seção eram válidos antes de usar o Linkerd e não são atualizados para refletir o código real atual. Por conseguinte, fazem sentido no contexto desta secção.