Autoscalling

Aprenda sobre os conceitos básicos desta tecnologia serverless na Digibee Integration Platform

O que é Autoscaling

O Autoscaling é o processo de ajustar o número de recursos computacionais de acordo com a carga de trabalho. As implantações de pipelines são escaláveis horizontalmente, o que significa que o recurso de Auto scaling permite que réplicas sejam implantadas e removidas dinamicamente conforme o número de mensagens (invocações) na fila.

A Digibee Integration Platform monitora continuamente a fila e ajusta dinamicamente o número de réplicas para garantir uma utilização ideal dos recursos e um processamento eficiente, independentemente de qual trigger gerou as mensagens.

Como funciona

Toda execução de pipeline começa com o Trigger. Diferentes tipos de triggers, como Scheduler, Event ou HTTP triggers, possuem comportamentos e critérios de ativação exclusivos. Esses triggers determinam se uma mensagem será enviada para a fila de execução para processamento posterior ou se deve ser ignorada ou rejeitada completamente.

Algoritmo de Auto scaling

O algoritmo implementado escala os pipelines horizontalmente. A cada 10 segundos, a Digibee Integration Platform verifica e pode enviar dois dos comandos abaixo:

Ativação: Se o número mínimo de réplicas estiver configurado como zero, o pipeline ficará ativo para receber novas mensagens, mas com zero réplicas em execução. A Plataforma Digibee implantará a primeira réplica quando a fila receber a primeira mensagem. Uma nova réplica será implantada e atribuída para processar esta e as mensagens subsequentes. Se a réplica mínima for zero, a primeira réplica será implantada apenas quando a primeira mensagem chegar à fila.

Escala para cima (Scale up): Se o número de mensagens na fila de execução for superior a 70% do número total de execuções simultâneas das réplicas em execução, a plataforma implantará um novo conjunto de réplicas.

Escala para baixo (Scale down): O sistema calcula o número de réplicas necessárias para lidar com as solicitações recebidas, dividindo a carga total (taxa de mensagens * tempo de resposta do pipeline) pelo número de execuções simultâneas que todas as réplicas podem lidar. O cálculo é feito usando a fórmula abaixo:

  • Fórmula: Réplicas = ((Taxa de mensagens por segundo * Tempo de resposta em segundos) / Total de Execuções Simultâneas)

Escalar para Zero (Scale to Zero): Se o número mínimo de réplicas for igual a zero e houver apenas uma réplica em execução, ociosa por mais de 60 segundos, o pipeline será escalado para zero e será reativado quando a próxima mensagem chegar à fila.

Exemplos de uso

Fazendo uma implantação utilizando 0 a 10 réplicas

  • A implantação do pipeline inicia sem nenhuma réplica em execução.

  • Quando a primeira mensagem chegar na fila, a primeira réplica será alocada. Ou seja, a primeira mensagem precisará aguardar a inicialização da primeira réplica para executar. Caso a única réplica em execução fique ociosa por mais que 60 segundos, o pipeline será escalado para zero réplicas, a qual será inicializada apenas quando uma nova mensagem chegar na fila.

Fazendo uma implantação utilizando 1 a 10 réplicas

  • A implantação do pipeline faz com que sempre haja pelo menos 1 réplica em execução.

  • Quando o volume de mensagens na fila atingir 70% da capacidade total de execução (execuções simultâneas × réplicas), novas réplicas são alocadas. Ou seja, se um pipeline small possui 1 réplica em execução, sua capacidade é 10. Ao atingir 7 ou mais mensagens na fila, réplicas adicionais serão alocadas.

Atualizado

Isto foi útil?