Conclusão - Disponibilidade e muito mais: entendendo e melhorando a resiliência de sistemas distribuídos em AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Conclusão

Estabelecemos 12 regras para alta disponibilidade em todo este documento.

  • Regra 1 — Falhas menos frequentes (MTBF mais longo), tempos de detecção de falhas mais curtos (MTTD mais curto) e tempos de reparo mais curtos (MTTR mais curto) são os três fatores usados para melhorar a disponibilidade em sistemas distribuídos.

  • Regra 2 — A disponibilidade do software em sua workload é um fator importante da disponibilidade geral de sua workload e deve receber o mesmo foco que outros componentes.

  • Regra 3 — Reduzir as dependências pode ter um impacto positivo na disponibilidade.

  • Regra 4 — Em geral, selecione dependências cujas metas de disponibilidade sejam iguais ou maiores que as metas da sua workload.

  • Regra 5 — Use a economia para aumentar a disponibilidade das dependências em uma workload.

  • Regra 6 — Há um limite superior para a eficiência de custos de poupar. Utilize o mínimo de peças de reposição necessárias para alcançar a disponibilidade necessária.

  • Regra 7 — Não use dependências em ambientes de gerenciamento em seu plano de dados, especialmente durante a recuperação.

  • Regra 8 — Acople as dependências de forma flexível para que sua workload possa operar corretamente apesar do comprometimento da dependência, sempre que possível.

  • Regra 9 — A observabilidade e a instrumentação são fundamentais para reduzir o MTTD e o MTTR.

  • Regra 10 — Concentre-se na mitigação do impacto, não na resolução de problemas. Escolha o caminho mais rápido de volta à operação normal.

  • Regra 11 — O isolamento de falhas diminui o escopo do impacto e aumenta o MTBF da workload ao reduzir a taxa geral de falhas.

  • Regra 12 — Faça com que seja fácil para os operadores fazerem a coisa certa.

A melhoria da disponibilidade da workload é impulsionada pela redução do MTTD e do MTTR e pelo aumento do MTBF. Em resumo, discutimos as seguintes formas de melhorar a disponibilidade que abrangem tecnologia, pessoas e processos.

  • MTTD

    • Reduza o MTTD por meio do monitoramento proativo de suas métricas de experiência do cliente.

    • Aproveite as verificações de integridade granulares para um failover rápido.

  • MTTR

    • Monitore o escopo do impacto e as métricas de saúde operacional.

    • Reduza o MTTR seguindo 1/Restart, 2/Reboot, 3/Reimage/Redeploy e 4/Replace.

    • Contorne o fracasso compreendendo o escopo do impacto.

    • Utilize serviços que tenham tempos de reinicialização mais rápidos, como contêineres e funções sem servidor em máquinas virtuais ou hosts físicos.

    • Reverta automaticamente implantações com falha quando possível.

    • Estabeleça runbooks e ferramentas operacionais para operações de diagnóstico e procedimentos de reinicialização.

  • MTBF

    • Elimine bugs e defeitos no software por meio de testes rigorosos antes de serem lançados para produção.

    • Implemente engenharia de caos e injeção de falhas.

    • Utilize a quantidade certa de economia nas dependências para tolerar falhas.

    • Minimize o escopo do impacto durante falhas por meio de contêineres de falhas.

    • Implemente padrões para implantações e mudanças.

    • Projete interfaces de operação simples, intuitivas, consistentes e bem documentadas.

    • Estabeleça metas para a excelência operacional.

    • Favoreça a estabilidade em vez do lançamento de novos recursos quando a disponibilidade é uma dimensão crítica de sua workload.

    • Implemente cotas de uso com limitação ou redução de carga, ou ambas, para evitar sobrecarga.

Lembre-se de que nunca seremos totalmente bem-sucedidos na prevenção de falhas. Concentre-se em projetos de software com o melhor isolamento possível de falhas que limita o escopo e a magnitude do impacto, de preferência mantendo esse impacto abaixo dos limites de “tempo de inatividade” E invista em detecção e mitigação muito rápidas e confiáveis. Os sistemas distribuídos modernos ainda precisam encarar o fracasso como inevitável e ser projetados em todos os níveis para oferecer alta disponibilidade.