Considerações de teste para cargas de trabalho sustentáveis no Azure
As organizações que desenvolvem e implantam soluções na nuvem também precisam de testes confiáveis. Saiba mais sobre as considerações e recomendações para executar testes de carga de trabalho e como otimizar para um modelo de teste mais sustentável.
Importante
Este artigo faz parte da série de cargas de trabalho sustentáveis do Azure Well-Architected . Se você não estiver familiarizado com esta série, recomendamos começar com o que é uma carga de trabalho sustentável?
Testar a eficiência
Executar integração, desempenho, carga ou qualquer outro teste intenso durante períodos de baixo carbono
Executar a integração, o desempenho, a carga ou qualquer outro recurso de teste intenso pode resultar em muito processamento. Um design bem elaborado para testar as cargas de trabalho implantadas pode ajudar a garantir a utilização total dos recursos disponíveis, reduzindo as emissões de carbono.
Alinhamento do Green Software Foundation: Reconhecimento de carbono
Recomendação:
- Quando você tiver os dados disponíveis para você, planeje executar testes quando o mix de energia do data center usar principalmente energia renovável. Pode, por exemplo, ser mais benéfico executar testes durante a noite em algumas regiões.
Automatizar CI/CD para dimensionar agentes de trabalho conforme necessário
Executar agentes de CI/CD subutilizados ou inativos resulta em mais emissões.
Alinhamento do Green Software Foundation: eficiência de hardware
Recomendação:
- Mantém a utilização de computação alta, com base na demanda atual, evitando alocação desnecessária de capacidade.
- Dimensione horizontalmente somente quando necessário e quando não estiver testando. Em última análise, isso garante que não haja recursos de computação ociosos em ambientes de teste.
- Considere serviços de plataforma otimizados, como contêineres em vez de testes em uma VM, utilizando a plataforma para reduzir a manutenção.
Considere o cache ao usar agentes de CI/CD
O uso de mecanismos de cache durante a CI/CD pode reduzir o tempo de computação e, portanto, as emissões de carbono.
Alinhamento do Green Software Foundation: Eficiência Energética
Recomendação:
- Armazenar resultados de etapas em um cache e reutilizá-las entre diferentes execuções de CI/CD quando possível: quando há etapas que levam tempo de CPU para produzir um artefato que geralmente não é alterado entre execuções diferentes, é sábio salvá-lo para uso futuro para que o tempo de CPU não seja desperdiçado em todas as execuções que produzem o mesmo artefato, uma e outra vez.
- Se o agente de CI/CD for auto-hospedado, use um cache local para o agente para reduzir ainda mais as transferências e as emissões de dados. Isso garante que o cache não seja transferido pela rede, o que pode ser uma fonte significativa de emissões.
Dividir repositórios de código grandes
A divisão de repositórios grandes pode ajudar nas fases de CI/CD, em que apenas as partes do código que foram alteradas são compiladas. Isso reduz o tempo de computação, o que, em última análise, reduz as emissões de carbono.
Alinhamento do Green Software Foundation: Eficiência Energética
Recomendação:
- Divida repositórios de código grandes, separando main código de bibliotecas e dependências.
- Publique e reutilize artefatos e bibliotecas de código comuns em vários repositórios.
Recomendação:
- Divida grandes repositórios de código em menores, separando main código de bibliotecas e dependências.
- Publique e reutilize artefatos e bibliotecas de código comuns em vários repositórios.
Criação de perfil e medição
As cargas de trabalho de medição, criação de perfil e teste são imperativas para entender como usar melhor os recursos alocados.
Avaliar onde a paralelização é possível
Sem criar perfil e testar corretamente cargas de trabalho, é difícil saber se ele está fazendo o melhor uso da plataforma subjacente e dos recursos implantados.
Alinhamento do Green Software Foundation: medindo a sustentabilidade
Recomendação:
- Teste seus aplicativos para entender as solicitações simultâneas, o processamento simultâneo e muito mais.
- Se você estiver executando o Machine Learning (ML) para testes, considere computadores com uma GPU para obter melhores ganhos de eficiência.
- Identifique se a carga de trabalho está com uso intensivo de desempenho e trabalhe para otimização.
- Considere esta compensação: Executar computadores baseados em GPU para testes de ML pode aumentar o custo.
Avaliar com a engenharia de caos
A execução de testes de integração, desempenho e carga aumenta a confiabilidade de uma carga de trabalho. No entanto, a introdução da engenharia de caos pode ajudar significativamente a melhorar a confiabilidade e a resiliência e como os aplicativos reagem às falhas. Ao fazer isso, a carga de trabalho pode ser otimizada para lidar com falhas normalmente e com recursos menos desperdiçados.
Alinhamento do Green Software Foundation: medindo a sustentabilidade
Recomendação:
- Use o teste de carga ou a engenharia de caos para avaliar como a carga de trabalho lida com interrupções de plataforma e picos de tráfego ou quedas. Isso ajuda a aumentar a resiliência do serviço e a capacidade de reagir a falhas, permitindo um tratamento de falhas mais otimizado.
- Considere esta compensação: Injetar falha durante a engenharia de caos e aumentar a carga em qualquer sistema também aumenta as emissões usadas para os recursos de teste. Avalie como e quando você pode utilizar a engenharia de caos para aumentar a confiabilidade da carga de trabalho, considerando o impacto climático da execução de sessões de teste desnecessárias.
- Outro ângulo para isso é usar a engenharia de caos para testar falhas de energia ou momentos com maiores emissões de carbono: considere configurar testes que desafiarão sua aplicação para consumir o mínimo de energia possível. Defina como o aplicativo reagirá a essas condições com uma versão "ecológica" específica informando aos usuários que eles estão emitindo o mínimo de carbono possível sacrificando alguns recursos e possivelmente algum desempenho. Esse também pode ser seu aplicativo de parâmetro de comparação para pontuar sua sustentabilidade.
Estabelecer limites de CPU e memória no teste
Ajude a criar testes para testar a sustentabilidade em seu aplicativo. Considere ter uma medida de utilização da CPU de linha de base e detectar alterações anormais na linha de base de utilização da CPU quando os testes forem executados. Com uma linha de base, decisões abaixo do ideal tomadas em alterações de código recentes podem ser descobertas anteriormente.
Adicionar testes e portões de qualidade ao pipeline de implantação e teste ajuda a evitar a implantação de soluções não sustentáveis, contribuindo para a redução das emissões.
Alinhamento do Green Software Foundation: eficiência energética
Recomendação:
- Monitore as alocações de CPU e memória ao executar testes de integração ou testes de unidade.
- Encontre áreas de consumo de recursos anormalmente altas no código do aplicativo e concentre-se em atenuar essas áreas primeiro.
- Configure alertas ou falhas de teste se exceder os valores de linha de base estabelecidos, ajudando a evitar a implantação de cargas de trabalho não sustentáveis.
- Considere essa compensação: à medida que os aplicativos crescem, a linha de base pode precisar mudar adequadamente para evitar falhas nos testes ao introduzir novos recursos.
Próxima etapa
Examine as considerações de design para procedimentos operacionais.