Considerações de teste para cargas de trabalho sustentáveis no Azure
As organizações que desenvolvem e implementam soluções na cloud também precisam de testes fiá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 não estiver familiarizado com esta série, recomendamos que comece com o que é uma carga de trabalho sustentável?
Testar a eficiência
Executar a integração, o desempenho, a carga ou qualquer outro teste intenso durante períodos de baixo carbono
A execução da integração, do desempenho, da carga ou de qualquer outra capacidade de teste intensa pode resultar em muito processamento. Um design bem elaborado para testar as cargas de trabalho implementadas pode ajudar a garantir a utilização total dos recursos disponíveis, reduzindo as emissões de carbono.
Alinhamento da Green Software Foundation: Deteção de carbono
Recomendação:
- Quando tiver os dados disponíveis, planeie a execução de testes quando o mix de energia do datacenter utilizar principalmente energia renovável. Por exemplo, pode ser mais vantajoso executar testes durante a noite em algumas regiões.
Automatizar a CI/CD para dimensionar os agentes de trabalho conforme necessário
A execução de agentes CI/CD subutilizados ou inativos resulta em mais emissões.
Alinhamento do Green Software Foundation: Eficiência do hardware
Recomendação:
- Mantém a utilização da computação elevada, com base na procura atual, evitando a alocação de capacidade desnecessária.
- Aumente horizontalmente apenas quando necessário e, quando não estiver a testar, aumente horizontalmente. Em última análise, isto garante que não existem recursos de computação inativos em ambientes de teste.
- Considere serviços de plataforma otimizados, como contentores em testes numa VM, utilizando a plataforma para reduzir a manutenção.
Considerar a colocação em cache ao utilizar agentes CI/CD
A utilização de mecanismos de colocação em cache durante a CI/CD pode reduzir o tempo de computação e, assim, as emissões de carbono.
Alinhamento da Green Software Foundation: Eficiência Energética
Recomendação:
- Armazenar resultados de passos numa cache e voltar a utilizá-los entre diferentes execuções de CI/CD sempre que possível: quando existem passos que demoram tempo na CPU para produzir um artefacto que muitas vezes não muda entre execuções diferentes, é aconselhável guardá-lo para utilização futura para que o tempo da CPU não seja desperdiçado em cada execução que produz o mesmo artefacto, uma e mais.
- Se o agente CI/CD estiver autoalojado, utilize uma cache local para o agente para reduzir ainda mais as transferências de dados e as emissões. Isto garante que a cache não é transferida através da 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 as fases ci/CD, em que apenas as partes do código que foram alteradas são compiladas. Isto reduz o tempo de computação, o que acaba por reduzir as emissões de carbono.
Alinhamento da Green Software Foundation: Eficiência Energética
Recomendação:
- Divida repositórios de código grandes, separando o código principal das bibliotecas e dependências.
- Publicar e reutilizar artefactos e bibliotecas de código comuns em vários repositórios.
Recomendação:
- Divida grandes repositórios de código em mais pequenos, separando o código principal das bibliotecas e dependências.
- Publicar e reutilizar artefactos e bibliotecas de código comuns em vários repositórios.
Criação de perfis e medição
Medir, criar perfis e testar cargas de trabalho é imperativo para compreender como utilizar melhor os recursos alocados.
Avaliar onde a paralelização é possível
Sem criar perfis e testar corretamente cargas de trabalho, é difícil saber se está a fazer a melhor utilização da plataforma subjacente e dos recursos implementados.
Alinhamento da Green Software Foundation: Medir a sustentabilidade
Recomendação:
- Teste as suas aplicações para compreender os pedidos simultâneos, o processamento simultâneo e muito mais.
- Se estiver a executar o Machine Learning (ML) para testes, considere as máquinas com uma GPU para obter melhores ganhos de eficiência.
- Identifique se a carga de trabalho tem um desempenho intensivo e trabalhe para a otimização.
- Considere esta contrapartida: Executar máquinas baseadas em GPU para testes de ML pode aumentar o custo.
Avaliar com engenharia de caos
A execução de testes de integração, desempenho e carga aumenta a fiabilidade de uma carga de trabalho. No entanto, a introdução da engenharia do caos pode ajudar significativamente a melhorar a fiabilidade e a resiliência e a forma como as aplicações reagem a falhas. Ao fazê-lo, a carga de trabalho pode ser otimizada para lidar com falhas corretamente e com recursos menos desperdiçados.
Alinhamento da Green Software Foundation: Medir a sustentabilidade
Recomendação:
- Utilize a engenharia de teste de carga ou caos para avaliar a forma como a carga de trabalho lida com falhas na plataforma e picos de tráfego ou quedas. Isto ajuda a aumentar a resiliência do serviço e a capacidade de reagir a falhas, permitindo um processamento de falhas mais otimizado.
- Considere esta contrapartida: A injeção de falhas durante a engenharia do caos e o aumento da carga em qualquer sistema também aumentam as emissões utilizadas para os recursos de teste. Avalie como e quando pode utilizar a engenharia do caos para aumentar a fiabilidade da carga de trabalho, ao mesmo tempo que considera o impacto climático da execução de sessões de teste desnecessárias.
- Outro ângulo é utilizar a engenharia do caos para testar falhas energéticas ou momentos com emissões de carbono mais elevadas: considere configurar testes que irão desafiar a sua aplicação a consumir a energia mínima possível. Defina como a aplicação irá reagir a tais condições com uma versão "eco" específica a informar os utilizadores de que estão a emitir o mínimo de carbono possível ao sacrificar algumas funcionalidades e, possivelmente, algum desempenho. Esta também pode ser a sua aplicação de referência para classificar a sua sustentabilidade.
Estabelecer limiares de CPU e Memória em testes
Ajude a criar testes para testar a sustentabilidade na sua aplicação. Considere ter uma medição de utilização da CPU de linha de base e detetar alterações anormais na linha de base de utilização da CPU quando os testes forem executados. Com uma linha de base, as decisões subótimas tomadas em alterações recentes ao código podem ser detetadas anteriormente.
Adicionar testes e portas de qualidade ao pipeline de implementação e teste ajuda a evitar a implementação de soluções não sustentáveis, contribuindo para a redução das emissões.
Alinhamento da Green Software Foundation: Eficiência energética
Recomendação:
- Monitorize as alocações de CPU e memória ao executar testes de integração ou testes de unidades.
- Localize áreas de consumo de recursos anormalmente elevadas no código da aplicação e concentre-se na mitigação das mesmas primeiro.
- Configure alertas ou falhas de teste se ultrapassar os valores de linha de base estabelecidos, ajudando a evitar a implementação de cargas de trabalho não sustentáveis.
- Considere esta desvantagem: à medida que as aplicações crescem, a linha de base poderá ter de mudar em conformidade para evitar falhas nos testes ao introduzir novas funcionalidades.
Passo seguinte
Reveja as considerações de conceção dos procedimentos operacionais.