por Haowen Zhang, Beichen Xing e Chris Lawson
Cumprir a promessa de automação agente em tempo real requer uma base de dados rápida, confiável e escalável. Na UiPath, precisávamos de uma arquitetura de streaming moderna para sustentar produtos como Maestro e Insights, permitindo visibilidade quase em tempo real nas métricas de automação à medida que se desdobram. Essa jornada nos levou a unificar o processamento em lote e o streaming no Azure Databricks usando o Apache Spark™ Structured Streaming, possibilitando análises de baixa latência e custo-eficientes que suportam a tomada de decisões agente em toda a empresa.
Este blog detalha a abordagem técnica, as compensações e o impacto dessas melhorias.
Com o streaming baseado em Databricks, alcançamos latência de evento para armazém em menos de um minuto, ao mesmo tempo que oferecemos uma arquitetura simplificada e escalabilidade à prova de futuro, estabelecendo o novo padrão para o processamento de dados orientado a eventos em toda a UiPath.
Na UiPath, produtos como Maestro e Insights dependem fortemente de dados oportunos e confiáveis. Maestro atua como a camada de orquestração para nossa plataforma de automação agente; coordenando agentes de IA, robôs e humanos com base em eventos em tempo real. Seja reagindo a um gatilho do sistema, executando um fluxo de trabalho de longa duração, ou incluindo uma etapa humana no loop, Maestro depende de um processamento de sinal rápido e preciso para tomar as decisões corretas.
O UiPath Insights, que alimenta o monitoramento e análises em todas essas automações, adiciona outra camada de demanda: capturando métricas-chave e sinais comportamentais em tempo quase real para identificar tendências, calcular o ROI e apoiar a detecção de problemas.
Entregar esses tipos de resultados - orquestração reativa e observabilidade em tempo real - requer uma arquitetura de pipeline de dados que não seja apenas de baixa latência, mas também escalável, confiável e sustentável. Essa necessidade é o que nos levou a repensar nossa arquitetura de streaming no Azure Databricks.
Cumprir a promessa de análises poderosas e monitoramento em tempo real requer uma base de pipelines de dados escaláveis e confiáveis. Ao longo dos últimos anos, desenvolvemos e expandimos várias pipelines para suportar novos recursos de produto e responder às crescentes exigências de negócios. Agora, temos a oportunidade de avaliar como podemos otimizar esses pipelines para não apenas economizar custos, mas também ter melhor escalabilidade e garantia de entrega pelo menos uma vez para suportar dados de novos serviços como o Maestro.

Embora nossa configuração anterior (mostrada acima) tenha funcionado bem para nossos clientes, também revelou áreas para melhoria:
Para enfrentar esses desafios, realizamos uma grande reformulação arquitetônica. Combinamos os processos de ingestão em lote e em tempo real para Robotlogs em uma única pipeline, e reestruturamos a pipeline de ingestão em tempo real para ser mais eficiente em termos de custo e escalável.
Quando começamos a simplificar e modernizar nossa arquitetura de pipeline, precisávamos de um framework que pudesse lidar tanto com cargas de trabalho em lote de alto rendimento quanto com dados em tempo real de baixa latência - sem introduzir sobrecarga operacional. O Spark Structured Streaming (SSS) no Azure Databricks foi uma escolha natural.
Construído em cima do Spark SQL e Spark Core, o Structured Streaming trata os dados em tempo real como uma tabela sem limites - permitindo-nos reutilizar construções de lotes do Spark familiar enquanto ganhamos os benefícios de um motor de streaming escalável e tolerante a falhas. Este modelo de programação unificado reduziu a complexidade e acelerou o desenvolvimento.
Já havíamos aproveitado o Spark Structured Streaming para desenvolver nosso recurso de Alerta em tempo real, que utiliza processamento de fluxo com estado no Databricks. Agora, estamos expandindo suas capacidades para construir nossa próxima geração de pipelines de ingestão em tempo real, permitindo-nos alcançar baixa latência, escalabilidade, eficiência de custo e garantias de entrega de pelo menos uma vez.
Nossa nova arquitetura, mostrada abaixo, simplifica dramaticamente o processo de ingestão de dados, consolidando componentes anteriormente separados em um pipeline unificado e escalável usando Spark Structured Streaming no Databricks:
