PERF02-BP05 Usar a elasticidade dos recursos disponíveis
A nuvem fornece a flexibilidade de expandir ou reduzir seus recursos dinamicamente por meio de diversos mecanismos para atender a mudanças na demanda. Combinada com as métricas relacionadas à computação, uma workload pode responder automaticamente a mudanças e utilizar um conjunto ideal de recursos para atingir sua meta.
A combinação ideal entre oferta e demanda leva ao menor custo para uma carga de trabalho, mas você também precisa se planejar para que exista oferta suficiente a fim de permitir tempo de provisionamento e falhas de recursos individuais. A demanda pode ser fixa ou variável, exigindo métricas e automação para garantir que o gerenciamento não se torne um custo pesado e desproporcionalmente grande.
Na AWS, é possível usar várias abordagens diferentes para corresponder o suprimento com a demanda. O whitepaper Pilar Otimização de custos descreve como usar as seguintes abordagens de custo:
-
Abordagem baseada em demanda
-
Abordagem baseada em buffer
-
Abordagem baseada em tempo
É necessário garantir que as implantações de carga de trabalho possam lidar com eventos de expansão e redução da escala. Crie cenários de teste para eventos de redução da escala a fim de garantir que a carga de trabalho se comporte conforme o esperado.
Antipadrões comuns:
-
Reaja a alarmes aumentando a capacidade manualmente.
-
Você deixa a capacidade aumentada após um evento de escalabilidade, em vez de reduzir novamente.
Benefícios do estabelecimento desta prática recomendada: A configuração e os testes da elasticidade da workload ajudam a fazer economia, manter as referências da performance e melhorar a confiabilidade à medida que o tráfego muda. A maior parte das instâncias que não são de produção deve ser interrompida quando não estiver em uso. Embora seja possível desligar manualmente instâncias não utilizadas, isso é impraticável em escalas maiores. Você também pode aproveitar a elasticidade baseada em volume, o que permite otimizar a performance e o custo, aumentando automaticamente o número de instâncias de computação durante picos de demanda e diminuindo a capacidade quando a demanda é reduzida.
Nível de exposição a riscos quando esta prática recomendada não é estabelecida: Médio
Orientações para a implementação
Aproveitar a elasticidade: a elasticidade corresponde ao suprimento de recursos que você tem em relação à demanda por esses recursos. Instâncias, contêineres e funções oferecem mecanismos para elasticidade, seja em combinação com a escalabilidade automática ou como um recurso do serviço. Use a elasticidade em sua arquitetura para garantir que haja capacidade suficiente para atender aos requisitos de performance em todas as escalas de uso. Certifique-se de que as métricas para aumentar ou reduzir recursos elásticos sejam validadas em relação ao tipo de carga de trabalho que está sendo implantada. Se você estiver implantando uma aplicação de transcodificação de vídeo, espera-se que a utilização da CPU seja de 100%, e essa não deve ser sua métrica principal. Como alternativa, você pode medir em relação ao comprimento da fila de trabalhos de transcodificação aguardando para escalar seus tipos de instância. É necessário garantir que as implantações de carga de trabalho possam lidar com eventos de expansão e redução da escala. Reduzir os componentes da carga de trabalho com segurança é tão essencial quanto aumentar a escala de recursos quando a demanda exige. Crie cenários de teste para eventos de redução da escala a fim de garantir que a carga de trabalho se comporte conforme o esperado.
Recursos
Documentos relacionados:
Vídeos relacionados:
Exemplos relacionados: