Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Dica
Esse conteúdo é um trecho do eBook, Architecting Cloud Native .NET Applications for Azure, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
A resiliência é a capacidade do seu sistema de reagir à falha e ainda permanecer funcional. Não se trata de evitar falhas, mas de aceitar falhas e construir serviços nativos de nuvem para responder a ela. Você deseja retornar a um estado totalmente funcional o mais rápido possível.
Ao contrário dos aplicativos monolíticos tradicionais, em que tudo é executado em um único processo, os sistemas nativos de nuvem adotam uma arquitetura distribuída, conforme mostrado na Figura 6-1:

Figura 6-1. Ambiente nativo de nuvem distribuída
Na figura anterior, cada microsserviço e serviço de apoio baseado em nuvem são executados em um processo separado, na infraestrutura do servidor, comunicando-se por meio de chamadas de rede.
Operando nesse ambiente, um serviço deve ser sensível a muitos desafios diferentes:
Latência de rede inesperada – o tempo para uma solicitação de serviço viajar para o receptor e voltar.
Falhas transitórias – erros de conectividade de rede de curta duração.
Bloqueio devido a uma operação síncrona de longa duração.
Um processo de host que falhou e está sendo reiniciado ou movido.
Um microsserviço sobrecarregado que não pode responder por um curto período de tempo.
Uma operação de orquestrador em disponibilizada versão piloto, como uma atualização sem contínua ou mover de um serviço de um nó para outro.
Falhas de hardware.
As plataformas de nuvem podem detectar e atenuar muitos desses problemas de infraestrutura. Ele pode reiniciar, escalar horizontalmente e até redistribuir seu serviço para um nó diferente. No entanto, para aproveitar ao máximo essa proteção interna, você deve projetar seus serviços para reagir a ela e prosperar nesse ambiente dinâmico.
Nas seções a seguir, exploraremos técnicas defensivas que seu serviço e recursos de nuvem gerenciados podem aproveitar para minimizar o tempo de inatividade e a interrupção.