Visão geral do Fault Injection Testing

Com o Fault Injection Testing, você pode fazer experimentos de injeção de falhas, um método de introduzir falhas em um sistema para testar a resiliência dele antes que causem uma falha real inesperada que afete seus clientes. Com o Fault Injection Testing, é possível injetar falhas em vários componentes no seu ambiente Google Cloud para garantir que o aplicativo lide com elas de maneira previsível.

No lançamento inicial do Fault Injection Testing, as falhas geralmente equivalem a uma falha do recurso de destino. Essas falhas devem acionar o aplicativo para redirecionar o tráfego a instâncias íntegras se você tiver projetado tolerância a falhas no aplicativo.

É necessário observar o aplicativo antes, durante e depois de injetar a falha para verificar se ele a processou conforme o esperado.

Por que usar o Fault Injection Testing?

Com o Fault Injection Testing, é possível executar experimentos sobre a resiliência dos seus aplicativos em Google Cloud em um espectro completo de cenários de falha. Uma parte principal desse espectro é executar experimentos para aproximar zonas e regiões com falhas, o que é difícil ou impossível de fazer por conta própria. Google Cloud Além disso, o teste de injeção de falhas serve como uma ferramenta valiosa de desenvolvimento e melhoria, permitindo que você execute experimentos nos mecanismos de resiliência projetados antes de introduzi-los em um ambiente de produção. Detectar problemas antes que eles apareçam na produção permite melhorar os designs mais rapidamente, evita interrupções caras e perda de reputação e melhora a experiência geral.

Sem um produto de injeção de falhas nativo do Google Cloud, você precisa fazer seus próprios experimentos. Fazer sua própria experimentação é problemático:Google Cloud é um ambiente compartilhado e, em muitos casos, você não tem acesso direto aos serviços e à infraestrutura subjacentes. Esse cenário pode resultar em uma experimentação inadequada e trabalhosa, que pode ser ineficaz na meta de testar adequadamente a resiliência do aplicativo. O Fault Injection Testing ajuda a reduzir o esforço para automatizar esses experimentos, dá acesso a modos de falha que você não teria de outra forma e melhora a fidelidade dos seus esforços de experimentação.

Para clientes regulamentados, a realização de experimentos regulares costuma ser um requisito para manter a conformidade com os órgãos reguladores do setor. Nesses casos, o experimento geralmente assume a forma de teste de recuperação de desastres, mostrando que a falha de uma zona ou região não impede que o aplicativo continue operando de forma eficaz.

Como usar o Fault Injection Testing

Antes de usar o Fault Injection Testing, verifique o seguinte:

  • Os ambientes em que os experimentos serão realizados têm alguma redundância. Quando uma falha é injetada, o aplicativo desse ambiente pode continuar sendo executado na infraestrutura redundante.
  • Para administradores ou proprietários de recursos do Google Cloud : pense bem em quem vai receber permissões para configurar e executar experimentos de Fault Injection Testing. Causar falhas em componentes de infraestrutura em execução no seu ambiente Google Cloud vai causar interrupção. Portanto, é preciso conceder permissão apenas a operadores que entendem como o ambiente de nuvem é arquitetado e como testar com segurança a capacidade de recuperação dessa arquitetura para que eles possam configurar experimentos de uma forma que não cause interrupções não intencionais.

Para usar o Fault Injection Testing, é necessário configurar um experimento. Para configurar um novo experimento, primeiro crie um modelo que defina a falha a ser injetada e os recursos de destino. Em seguida, execute o experimento com base no modelo. Um experimento é o conjunto de ações definidas no modelo que serão executadas nos recursos selecionados nele.