Se você usa métricas do Pub/Sub como um sinal para fazer o escalonamento automático do pipeline, veja algumas recomendações.
Usar mais de um sinal para escalonar automaticamente seu pipeline
Não use apenas métricas do Pub/Sub para escalonar automaticamente seu pipeline. Isso pode levar a cenários em que você tenha um ponto único de falha nas decisões de escalonamento automático. Em vez disso, use uma combinação de indicadores para acionar o escalonamento automático. Um exemplo de indicador extra é o nível de uso da CPU do cliente. Esse indicador pode indicar se as tarefas do cliente estão processando o trabalho e se o escalonamento vertical pode permitir que as tarefas do cliente realizem mais trabalho. Veja a seguir alguns exemplos de sinais de outros produtos do Cloud que podem ser usados para seu pipeline:
O Compute Engine é compatível com escalonamento automático com base em sinais como utilização de CPU e métricas do Monitoring. O Compute Engine também oferece suporte a várias métricas e indicadores para melhorar a confiabilidade.
Para mais informações sobre escalonamento com métricas do Monitoring, consulte Escalonamento com base em métricas do Monitoring. Para mais informações sobre escalonamento com utilização de CPU, consulte Escalonamento com base na utilização de CPU.
O escalonamento automático horizontal de pods (HPA, na sigla em inglês) do Google Kubernetes Engine é compatível com escalonamento automático com base no uso de recursos, como uso de CPU e memória, métricas personalizadas do Kubernetes e métricas externas, como métricas de monitoramento para Pub/Sub. Ele também oferece suporte a vários sinais.
Para mais informações, consulte Escalonamento automático horizontal de pods.
Como lidar com lacunas de métricas quando elas ocorrerem
Não presuma que a ausência de métricas significa que não há mensagens para processar. Por exemplo, se, em resposta a métricas ausentes, você reduzir as tarefas de processamento para zero, as mensagens que já estão no backlog ou que foram publicadas durante esse tempo podem não ser consumidas. Isso aumenta a latência de ponta a ponta. Para minimizar a latência, defina uma contagem mínima de tarefas maior que zero. Assim, você estará sempre preparado para lidar com mensagens publicadas, mesmo que as métricas recentes do Pub/Sub indiquem uma fila vazia.
Tanto os escalonadores automáticos do Compute Engine quanto os HPAs do Google Kubernetes Engine foram projetados para manter a contagem atual de réplicas quando as métricas não estão disponíveis. Isso proporciona uma rede de segurança caso nenhuma métrica esteja disponível.
Também é possível implementar mecanismos de controle de fluxo do Pub/Sub para ajudar a evitar que tarefas sejam sobrecarregadas se forem reduzidas involuntariamente devido a métricas ausentes.
Use a versão regional das métricas
O Pub/Sub oferece duas versões de cada métrica normalmente usada com
escalonamento automático. Use as versões com o sufixo by_region
:
Não use as versões globais dessas métricas se quiser que o escalonamento automático
seja resiliente a interrupções de região única. A versão global dessas métricas exige o cálculo do backlog em todas as regiões conhecidas por terem mensagens. Isso significa que a indisponibilidade em uma única região resulta em lacuna de dados. Por outro lado, as versões by_region
das métricas calculam e informam
o backlog por região. Se o backlog não puder ser computado para uma única região, a métrica ainda informará valores para as outras regiões.