REL11-BP05 Usar a estabilidade estática para evitar o comportamento bimodal - AWS Well-Architected Framework

REL11-BP05 Usar a estabilidade estática para evitar o comportamento bimodal

O comportamento bimodal é quando a carga de trabalho apresenta um comportamento diferente nos modos normal e de falha, por exemplo, depender da execução de novas instâncias se uma zona de disponibilidade falhar. Em vez disso, você deve criar cargas de trabalho que sejam estaticamente estáveis e que operem em apenas um modo. Nesse caso, provisione instâncias suficientes em cada zona de disponibilidade para processar a carga de trabalho se uma AZ foi removida e use as verificações de integridade do Elastic Load Balancing ou do Amazon Route 53 para remover a carga das instâncias danificadas.

A estabilidade estática para implantação de computação (como instâncias ou contêineres do EC2) resultará na mais alta confiabilidade. Isso deve ser ponderado em relação a preocupações de custo. É mais barato provisionar menos capacidade computacional e contar com a execução de novas instâncias em caso de falha. No entanto, para falhas em grande escala (como uma falha de zona de disponibilidade), essa abordagem é menos eficaz porque depende de reagir a prejuízos à medida que ocorrem, em vez de estar preparada para essas deficiências antes que elas ocorram. Sua solução deve ponderar a confiabilidade em comparação com as necessidades de custo para sua carga de trabalho. Ao usar mais zonas de disponibilidade, a quantidade de computação adicional necessária para a estabilidade estática diminui.

Diagrama mostrando estabilidade estática de instâncias do EC2 em várias zonas de disponibilidade

Figura 14: Estabilidade estática de instâncias do EC2 em várias zonas de disponibilidade

Depois que o tráfego for deslocado, use o AWS Auto Scaling para substituir de forma assíncrona instâncias da zona com falha e executá-las nas zonas íntegras.

Outro exemplo de comportamento bimodal seria um tempo limite de rede que poderia fazer com que um sistema tentasse atualizar o estado de configuração de todo o sistema. Isso adicionaria uma carga inesperada a outro componente e pode fazê-lo falhar, levando a outras consequências inesperadas. Esse ciclo de comentário negativo afeta a disponibilidade de sua carga de trabalho. Em vez disso, você deve criar sistemas estaticamente estáveis e operar em apenas um modo. Um design estático estável seria fazer um trabalho constante e sempre atualizar o estado da configuração em um ritmo fixo. Quando uma chamada falha, a carga de trabalho usa o valor armazenado em cache anteriormente e aciona um alarme.

Outro exemplo de comportamento bimodal é permitir que os clientes ignorem o cache da carga de trabalho em caso de falhas. Isso pode parecer ser uma solução que acomoda as necessidades do cliente, mas não deve ser permitida porque altera significativamente as demandas em sua carga de trabalho e provavelmente resultará em falhas.

Nível de exposição a riscos quando esta prática recomendada não for estabelecida: Médio

Orientações para a implementação

Recursos

Documentos relacionados:

Vídeos relacionados: