O que é o Azure Chaos Studio?

O Azure Chaos Studio é um serviço gerenciado que usa a engenharia do caos para ajudar você a avaliar, entender e melhorar a resiliência de aplicativos e serviços de nuvem. A engenharia do caos é uma metodologia pela qual você injeta falhas do mundo real em seu aplicativo para executar experimentos de injeção de falhas controladas.

Resiliência é a capacidade de um sistema de lidar e se recuperar de interrupções. As interrupções do aplicativo podem causar erros e falhas que podem afetar negativamente seu negócio ou missão. Se você estiver desenvolvendo, migrando ou operando aplicativos do Azure, é importante validar e melhorar a resiliência do aplicativo.

O Chaos Studio ajuda você a evitar consequências negativas, validando se seu aplicativo responde efetivamente a interrupções e falhas. Você pode usar o Chaos Studio para testar a resiliência em incidentes do mundo real, como interrupções ou alta utilização da CPU em máquinas virtuais (VMs).

O vídeo a seguir fornece mais informações sobre o Chaos Studio:

Cenários do Chaos Studio

Você pode usar a engenharia do caos em vários cenários de validação de resiliência que abrangem o ciclo de vida de operações e o desenvolvimento de serviços. Há dois tipos de cenários:

  • Alteração para a direita: esses cenários usam um ambiente de produção ou pré-produção. Normalmente, você usa cenários de alteração para a direita com tráfego real do cliente ou carga simulada.
  • Alteração para a esquerda: esses cenários podem usar um ambiente de desenvolvimento ou de teste compartilhado. Você usa cenários de alteração para a esquerda sem tráfegos reais do cliente.

Você pode usar o Chaos Studio nos seguintes cenários comuns de engenharia do caos:

  • Reproduza um incidente que afetou seu aplicativo, para entender melhor a falha. Garantir que os reparos pós-incidente evitem que o incidente se repita.
  • Preparar-se para um grande evento ou temporada com validação de carga, escala, desempenho e resiliência do "dia do jogo".
  • Faça simulações de continuidade dos negócios e recuperação de desastre para garantir que seu aplicativo possa se recuperar rapidamente e preservar dados críticos em um desastre.
  • Execute simulações de alta disponibilidade para testar a resiliência do aplicativo em relação a interrupções da região, erros de configuração de rede, eventos de alto estresse ou problemas de vizinho barulhento.
  • Desenvolver parâmetros de comparação de desempenho do aplicativo.
  • Planejar necessidades de capacidade dos ambientes de produção.
  • Executar testes de estresse ou testes de carga.
  • Garantir que os serviços migrados de um ambiente local ou de outros ambientes de nuvem permaneçam resilientes a falhas conhecidas.
  • Criar confiança em serviços criados em arquiteturas nativas de nuvem.
  • Validar se as ferramentas de site ativo, os dados de observação e os processos em chamada ainda funcionam em condições inesperadas.

Em muitos desses cenários, primeiro você cria resiliência por meio de experimentos de caos ad hoc. Em seguida, você valida continuamente que novas implantações não regredirão a resiliência. Para verificar, execute experimentos de caos como portões de implantação em seus pipelines de integração contínua/implantação contínua.

Como funciona o Chaos Studio

Com o Chaos Studio, você pode orquestrar uma injeção de falha segura e controlada em seus recursos do Azure. Os experimentos de caos são a essência do Chaos Studio. Um experimento de caos descreve as falhas a serem executadas e os recursos a serem aplicados. Você pode organizar as falhas para serem executadas em paralelo ou em sequência, dependendo das suas necessidades.

O Chaos Studio dá suporte a dois tipos de falhas:

  • Diretas do serviço: essas falhas são executadas diretamente em um recurso do Azure, sem instalação ou instrumentação. Exemplos incluem a reinicialização de um cluster de Cache do Azure para Redis ou a adição de latência de rede a pods do Serviço de Kubernetes do Azure.
  • Baseadas em agente: essas falhas são executadas em VMs ou em conjuntos de dimensionamento de máquinas virtuais para realizar falhas no convidado. Exemplos incluem a aplicação de pressão de memória virtual ou a eliminação de um processo.

Cada falha tem parâmetros específicos que você pode configurar, como qual processo deve eliminar ou a quantidade de demanda de memória a ser gerada.

Ao criar um experimento de caos, você define uma ou mais etapas que são executadas sequencialmente. Cada etapa contém uma ou mais ramificações que são executadas paralelamente na etapa. Cada ramificação contém uma ou mais ações, como injetar uma falha ou aguardar determinada duração.

Você organiza destinos de recurso para executar falhas em grupos chamados seletores. Assim, você pode facilmente referenciar um grupo de recursos em cada ação.

O diagrama a seguir mostra o layout de um experimento de caos no Chaos Studio:

Diagram that shows the layout of a chaos experiment.

Um experimento de caos é um recurso do Azure em grupo de assinaturas e de recursos. Você pode usar o portal do Azure ou a API REST do Chaos Studio para criar, atualizar, iniciar, cancelar e exibir o status dos experimentos.

Próximas etapas

Agora que você entende como usar a engenharia de caos, está pronto para: