Pipeline Engine
Entenda como o Pipeline Engine interpreta e executa seus pipelines de integração.
O Pipeline Engine da Digibee Integration Platform é responsável por interpretar e executar os pipelines criados por meio da interface da Plataforma.
Confira os principais conceitos para entender melhor o funcionamento do Pipeline Engine:
Pipeline Engine: Responsável pela execução dos fluxos (pipelines) criados na Digibee Integration Platform.
Trigger: Recebe chamadas de diferentes tecnologias e as encaminha para o Pipeline Engine.
Mecanismo de filas (Queues mechanism): Sistema central de gerenciamento de filas da Digibee Integration Platform.
Arquitetura de operação
Cada fluxo (pipeline) é convertido em um container Docker e executado com a tecnologia Kubernetes — base da infraestrutura da Digibee Integration Platform. Esse modelo operacional oferece as seguintes garantias:
Isolamento: Cada container é executado individualmente na infraestrutura. O uso de memória e o consumo de CPU variam de acordo com cada pipeline.
Segurança: Os pipelines não interferem entre si, a menos que isso seja feito intencionalmente por meio das interfaces fornecidas pela Plataforma.
Escalabilidade específica: É possível ajustar o número de réplicas de um pipeline conforme a necessidade de desempenho — aumentando em cenários de alta demanda ou reduzindo quando menos capacidade é suficiente.
Conceitos-chave
Tamanhos de pipeline: Para escalabilidade vertical
A Digibee adota o conceito de serverless, para que você não precise se preocupar com os detalhes da infraestrutura na execução dos pipelines. Dessa forma, cada pipeline precisa ter um tamanho definido no momento do deploy. Os tamanhos disponíveis são:
SMALL: 10 consumidores, 20% de 1 CPU, 64 MB de memória
MEDIUM: 20 consumidores, 40% de 1 CPU, 128 MB de memória
LARGE: 40 consumidores, 80% de 1 CPU, 256 MB de memória
Consumers
Os consumers definem quantas mensagens simultâneas um pipeline pode processar. Por exemplo, um pipeline com 10 consumers pode processar 10 mensagens em paralelo, enquanto um pipeline com apenas 1 consumer processa as mensagens de forma sequencial.
Recursos (CPU e memória)
O tamanho do pipeline também define sua performance e a alocação de memória. O desempenho é definido pela quantidade de ciclos de uma CPU à qual o pipeline tem acesso.
CPU: Determina a quantidade de ciclos de CPU disponíveis para o pipeline.
Memória: Define o espaço disponível para processamento e armazenamento temporário de dados durante a execução.
Réplicas: Para escalabilidade horizontal
Os triggers atuam como ponto de entrada de mensagens para a execução de pipelines na Digibee Integration Platform. Essas mensagens são direcionadas ao mecanismo de filas e ficam disponíveis para consumo pelos pipelines.
Durante a implantação de um pipeline, é possível configurar o número de réplicas. Por exemplo, um pipeline SMALL com 2 réplicas terá o dobro da capacidade de processamento em relação ao mesmo pipeline com apenas 1 réplica. As réplicas aumentam não apenas o desempenho e a escalabilidade, mas também a disponibilidade. Por exemplo, se uma réplica falhar, outra assume o processamento.
Exemplos de uso
Embora múltiplos pipelines SMALL possam, em alguns casos, alcançar uma performance semelhante a um pipeline LARGE, cargas de trabalho que envolvem mensagens grandes geralmente exigem pipelines escalados verticalmente (por exemplo, MEDIUM ou LARGE).
Mesmo que um pipeline do tipo LARGE seja equivalente a 4 do tipo SMALL em termos de lógica de infraestrutura, isso não significa que eles são equivalentes para qualquer tipo de carga de trabalho. Em muitas situações, especialmente aquelas que envolvem processamento de mensagens maiores, somente pipelines escalados verticalmente entregam o resultado esperado.
Timeouts e Expiration
Os triggers podem ser configurados com os seguintes controles de tempo:
Timeout: Tempo máximo que o trigger aguarda uma resposta do pipeline.
Expiration (expiração): Tempo máximo que uma mensagem pode permanecer na fila antes de ser processada.
Timeout
Expiration
Nem todos os triggers permitem configuração de tempo de expiração. Por exemplo:
Mesmo assim, a Plataforma aplica internamente um tempo de expiração não configurável para triggers síncronos, evitando que mensagens fiquem perdidas na fila.
Controle de execução
O processamento das mensagens ocorre por consumidor, de forma sequencial. Se um pipeline for implantado com apenas 1 consumidor, processará uma mensagem por vez.
Enquanto uma mensagem está em processamento:
Ela é marcada como "em uso".
Nenhuma outra réplica pode processá-la simultaneamente.
Se o pipeline falhar ou for reiniciado, a mensagem em processamento é devolvida à fila para reprocessamento.
Mensagens devolvidas à fila de processamento
As mensagens retornadas à fila de processamento ficam disponíveis para consumo por outras réplicas do pipeline ou até mesmo pela mesma réplica após a reinicialização. Nesse caso, é possível configurar o pipeline para determinar o que fazer quando as mensagens precisam ser reprocessadas. Todos os triggers da Plataforma têm uma configuração chamada Allow Redeliveries:
Se ativada: A mensagem pode ser reprocessada.
Se desativada: A mensagem é identificada como reprocessamento e é rejeitada com erro.
O tempo de nova tentativa é definido por:
Timeout máximo (para triggers síncronos)
Tempo de expiração (para triggers assíncronos)
FAQ
Atualizado
Isto foi útil?