Explorar o teste shift-right
Conforme explicado anteriormente no curso, o teste no gerenciamento do ciclo de vida do aplicativo é essencial para maximizar a qualidade do código e minimizar o risco operacional associado à implantação e atualização de software. Esse é o motivo da aplicação da abordagem shift-left, que introduz as atividades de teste o mais cedo possível na fase de desenvolvimento. No entanto, há certos aspectos do teste, que não são eficazes quando realizados dessa maneira. Em vez disso, para atender totalmente à sua finalidade, eles precisam ser executados no ambiente de produção. Isso é chamado de abordagem shift-right. A organização em nosso cenário de exemplo precisaria usar este recurso para avaliar corretamente a confiabilidade de seus sistemas em combinação com a injeção de falhas. Nesta unidade, examine esse e outros critérios nos quais o teste shift-right é justificado.
Quais são os motivos para o teste de deslocamento para a direita?
Embora o teste shift-left seja ideal para smoke tests e testes de unidade, ele é realizado em condições que normalmente diferem significativamente daquelas aplicáveis às metas de entrega pretendidas. Mesmo ambientes de garantia de qualidade e homologação raramente refletem totalmente as complexidades dos ambientes de produção. Efetivamente, a melhor maneira de examinar completamente o comportamento de uma carga de trabalho após sua implantação é testá-la nesse ponto.
O teste em produção oferece os seguintes benefícios:
- Reflete as condições de trabalho reais, incluindo carga extra associada ao tratamento de solicitações do usuário final.
- Leva em conta fatores, que seriam difíceis de simular, como conectividade com sistemas externos.
- Reflete as alterações na demanda de carga de trabalho ao longo do tempo.
Quais são os cenários típicos do teste shift-right?
Embora a abordagem de teste shift-right possa ser justificada em muitos cenários, há poucos em que ela é adequada. Esses cenários incluem:
implantações de microsserviços: a arquitetura de microsserviços normalmente consiste em um grande número de componentes desenvolvidos independentemente. O grande número de combinações desses serviços pode justificar o teste shift-right para se concentrar nos cenários mais relevantes no ambiente de produção real (de acordo com o uso na vida real).
Avaliar o impacto das condições de largura de banda e latência de rede: as condições de rede tendem a ser desafiadoras de simular, portanto, se o desempenho de uma carga de trabalho for altamente dependente de latência ou largura de banda, o teste shift-right poderá ser a opção mais adequada.
o teste de aceitação do usuário: os comentários dos usuários reais podem ser essenciais para validar o desempenho e a usabilidade da carga de trabalho.
Procedimentos de failover de validação em configurações redundantes: injeção de falhas e testes de recuperação de desastres destinam-se a avaliar a resiliência das cargas de trabalho de produção. A injeção de falha envolve a introdução intencional de falhas em componentes individuais de uma carga de trabalho durante sua execução, a fim de identificar quaisquer pontos fracos e atenuá-los, aumentando a confiabilidade geral.
Nota
A engenharia do Chaos é outro conceito na área de testes de confiabilidade do DevOps. Assim como a injeção de falhas, ela envolve a simulação de falhas (nesse caso, para criar um caos controlado no sistema que está sendo testado). No entanto, seu escopo normalmente é mais amplo, visando todo o sistema, em vez de apenas seus componentes individuais, e seus cenários de teste tendem a ser mais abrangentes. De fato, a engenharia do caos é normalmente limitada a ambientes canários que têm um impacto muito limitado ou nenhum impacto na produção.
Nota
Você pode usar o Azure Chaos Studio para implementar experimentos de engenharia de caos direcionados a soluções hospedadas no Microsoft Azure. Você percorrerá um exemplo desses experimentos no laboratório deste módulo.