Práticas recomendadas para usar métricas do Pub/Sub como um indicador de escalonamento

Se você usa as métricas do Pub/Sub como um sinal para escalonar automaticamente o pipeline, veja algumas recomendações.

Usar mais de um indicador para escalonar automaticamente o pipeline

Não use apenas métricas do Pub/Sub para escalonar automaticamente o pipeline. Isso pode levar a cenários em que você tem um único ponto de falha para suas decisões de escalonamento automático. Em vez disso, use uma combinação de sinais para acionar o escalonamento automático. Outro exemplo é o nível de utilização da CPU do cliente. Esse sinal pode indicar se as tarefas do cliente estão lidar com o trabalho e se o escalonamento vertical pode permitir que as tarefas do cliente processem mais trabalho. Veja a seguir alguns exemplos de sinais de outros produtos do Cloud que podem ser usados no pipeline:

  • O Compute Engine (GCE) é compatível com escalonamento automático com base em sinais como uso da CPU e métricas do Monitoring. O Compute Engine também oferece suporte a várias métricas e vários indicadores para maior confiabilidade.

    Para mais informações sobre o escalonamento com métricas do Monitoring, consulte Escalonar com base nas métricas do Monitoring. Para mais informações sobre escalonamento com a utilização da CPU, consulte Escalonamento baseado na utilização da CPU.

  • O escalonamento automático de pod horizontal (HPA, na sigla em inglês) do Google Kubernetes Engine (GKE) oferece suporte a escalonamento automático com base no uso de recursos, como CPU e memória, métricas personalizadas do Kubernetes e métricas externas, como métricas do Monitoring para Pub/Sub. Ele também oferece suporte a vários indicadores.

    Para mais informações, consulte Escalonamento automático horizontal de pods.

Como lidar com lacunas de métricas quando elas ocorrem

Não presuma que a ausência de métricas significa que não há mensagens a serem processadas. Por exemplo, se em resposta a métricas ausentes você reduzir escala vertical as tarefas de processamento para zero, as mensagens que já estão no backlog ou que foram publicadas durante esse período não serão 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 para que você sempre esteja preparado para processar mensagens publicadas, mesmo que métricas recentes do Pub/Sub indiquem uma fila vazia.

Tanto os escalonadores automáticos do GCE quanto os HPAs do GKE foram projetados para manter a contagem atual de réplicas quando as métricas estiverem indisponíveis. Isso fornece uma rede de segurança se nenhuma métrica estiver disponível.

Também é possível implementar mecanismos de controle de fluxo do Pub/Sub para ajudar a evitar que as tarefas sejam sobrecarregadas se forem reduzidas acidentalmente devido à ausência de métricas.