Logo E-Commerce Brasil

McKinsey & Company revela como construir microsserviços resilientes para e-commerce

Por: Redação E-Commerce Brasil

Equipe de jornalismo E-Commerce Brasil

O palco Tecnologia do Fórum E-Commerce Brasil 2023 recebeu Wanderlei Souza, Distinguished Engineer da McKinsey & Company. Na ocasião, o executivo detalhou os mecanismos necessários para aumentar a confiabilidade em um ambiente de microsserviços.

Executivo afirma que acoplamento temporal são as falhas mais comuns dos desenvolvedores em arquiteturas de microsserviços

“Construir resiliência é um tema complexo em qualquer arquitetura distribuída, mesmo para aplicativos modernos nativos de nuvem. Os recursos podem ser temporais, a rede não é confiável e sempre há desafios de comunicação entre serviços e dependências quebradas”, define Souza.

Estratégias para otimizar a resiliência

Nesse cenário caótico, entender os mecanismos complexos para resolver tais problemas é o principal fator de sucesso para aumentar a confiabilidade em um ambiente de microsserviços. Entre as muitas estratégias que podem ser usadas para melhorar a resiliência, ele destacou a observabilidade e a capacidade de controle. Em sua opinião, são requisitos não funcionais essenciais para manter a plataforma de microsserviços funcionando.

Um sistema intensivo de software resiliente é quando:

– Apresentar falha em um ou mais de seus componentes (hardware, software, rede, etc);

– Encontrar entradas inesperadas ou condições externas e/ou;

– Estar sob ataque malicioso de fontes internas ou externas;

– Continuar a fornecer um nível de funcionalidade útil ao usuário e/ou recuperar funções interrompidas rapidamente após um incidente.

Princípio de falha isolada

Bons microsserviços têm isolamento de falhas por meio de design e implementação. Três problemas comuns que afetam a estratégia de isolamento de falhas:

– Banco de dados compartilhado;

– Acoplamento temporal;

– Pools compartilhados sem definir tempos limite.

Acoplamento temporal são as falhas mais comuns dos desenvolvedores em arquiteturas de microsserviços.

Padrões para suportar o princípio de falha rápida

– Bulkhead

– Time Limiter

– Set timeouts

– Rate limiter

– Circuit breaker

Entrega confiável em um contexto de arquitetura distribuída

Abaixo, três estratégias para melhorar a entrega de mensagens em operações de escrita:

– Escrita assíncrona;

– Comunicação de mensagens;

– Novas tentativas.

Controlabilidade

Os padrões de resiliência impedem que uma falha de rede ou serviço se espalhe para outros serviços (imagem abaixo).