Conteúdo original nessa thread do Twitter
Ei dev,
Aceita um desafio para estimar a capacidade computacional das máquinas que irão servir uma API num ambiente elástico com auto scaling? Então cola aí pra eu dar os detalhes :)
cc @sseraphini
↓
Você precisa estimar a configuração das máquinas que irão servir uma API de modo que haja o menor desperdício possível.
O ambiente é auto escalável e o gatilho é o número de requisições, pois você sabe que 300 requisições/segundo são adequadamente atendidas por 1GB RAM/1 CPU.
Algumas premissas:
- Não pode haver menos de 2 nós rodando a qualquer horário.
- Para facilitar, assuma que o auto scaling ocorre quase que imediatamente quando o threshold for ultrapassado.
- As configurações válidas das máquinas são as combinações do desenho.
Esse é o gráfico que vc deve se basear para estimar a melhor configuração para as máquinas do cluster da API. Os horários não mostrados (entre 00:00 e 08:00), têm a média de menos de 100 requisições por segundo.
É esse o máximo de informações que você tem para escolher uma das configurações válidas com a premissa de nunca haver menos de duas máquinas em execução por vez. O seu gestor está atacado e ansioso porque deveria ter lhe pedido isso antes e agora estão cobrando ele.
O termo para isso é dimensionamento de recursos. Em inglês, a galera chama de "sizing". É muito importante fazer o "right sizing" (dimensionamento correto) dos recursos para não haver desperdício financeiro. E esse advento de right sizing veio forte com os provedores cloud. 💵
Dá um abraço aqui se você aceitou o desafio ou pelo menos leu até aqui. 🫂
E obrigado demais pela moral como sempre! ❤️