Arquitetura: processamento de eventos complexos

Nesta página, descrevemos uma arquitetura para processamento complexo de eventos no Google Cloud.

Use o Google Cloud para criar a infraestrutura flexível e escalonável necessária para importar grandes quantidades de dados, processar eventos e executar regras de negócios. É imperativo que toda a arquitetura para processamento de eventos complexos (CEP, na sigla em inglês) tenha a capacidade de importar dados de diversas fontes heterogêneas, aplicar regras de negócios complexas e tomar ações de saída.

São descritos no diagrama de arquitetura a seguir um sistema e os componentes envolvidos.

Arquitetura para sistema de processamento de eventos complexos

Visão geral da arquitetura

Nesta seção, são fornecidos detalhes sobre a arquitetura exibida no diagrama. A entrada de streaming, que lida com fluxos de dados contínuos, e a entrada em lote, que administra dados, como blocos consideráveis, são compatíveis com a arquitetura.

Entrada de streaming

Em cenários que exigem ação imediata em tempo real, de usuários ou eventos gerados por máquina, é possível usar uma arquitetura de streaming para administrar eventos complexos e processá-los.

Apps

Eventos gerados por usuário geralmente provêm de interações em aplicativos hospedados no local ou na nuvem e podem existir na forma de fluxos de clique, ações do usuário, como adição de itens a um carrinho de compras, ou lista de desejos ou transações financeiras. Os eventos gerados por máquina podem existir na forma de dispositivos móveis ou de outros tipos que relatam presença, diagnóstico ou tipos similares de dados. Há várias plataformas diferentes para hospedar aplicativos no Google Cloud:

  • O App Engine é uma plataforma como serviço (PaaS) que permite implantar aplicativos diretamente em um ambiente gerenciado de escalonamento automático.
  • O Google Kubernetes Engine fornece controle mais refinado para aplicativos baseados em contêiner, permitindo orquestrar e implantar facilmente contêineres em um cluster.
  • O Compute Engine oferece máquinas virtuais de alto desempenho para máxima flexibilidade.

Transporte

Independentemente de os aplicativos serem hospedados no local ou no Google Cloud, os eventos gerados precisam passar por uma camada de mensagens altamente disponível. O Pub/Sub, um serviço de transporte de mensagens globalmente durável, é compatível com conectividade nativa a outros serviços do Google Cloud, fazendo a união entre aplicativos e processamento downstream.

Entrada em lote

Em cenários com grandes quantidades de dados históricos armazenados no local ou em bancos de dados na nuvem, use um processamento baseado em lote para importar e processar eventos complexos.

Fontes de dados

As fontes de dados que contêm eventos a serem processados podem estar localmente ou no Google Cloud. Para fontes de dados no local, exporte dados e copie-os no Cloud Storage para processamento downstream. É possível acessar diretamente dados armazenados em bancos de dados hospedados na nuvem usando ferramentas de processamento downstream, e há várias plataformas diferentes que podem ser usadas para armazenar dados de eventos não processados no Google Cloud:

  • O Cloud Storage fornece armazenamento de objetos para arquivos simples ou não estruturados.
  • O Cloud SQL armazena dados relacionais.
  • O Datastore é um banco de dados NoSQL compatível com esquemas dinâmicos e total indexação de dados.

Processamento e armazenamento

Processamento de dados

Conforme os dados de eventos são transmitidos de aplicativos por meio do Pub/Sub ou são carregados em outras fontes de dados em nuvem, como Cloud Storage, Cloud SQL, Datastore, talvez seja necessário transformar, enriquecer, agregar ou aplicar cálculos de uso geral nos dados. O Dataflow foi criado para executar essas tarefas em dados de streaming ou em lote, usando um modelo de programação simples baseado em pipeline. O Dataflow executa esses pipelines em um serviço gerenciado que escalona de maneira flexível, conforme necessário. Em cargas de trabalho CEP, é possível usar o Dataflow para normalizar dados de várias origens hierárquicas e formatá-los em uma única representação consistente.

Armazenamento de evento

Nessa arquitetura, o Dataflow processa dados de eventos e os normaliza em uma única representação de série temporal e, em seguida, armazena no Cloud Bigtable, um serviço de banco de dados NoSQL totalmente gerenciado. O Bigtable oferece acesso a dados consistente, de baixa latência e alta capacidade, útil para processamento downstream e cargas de trabalho analíticas. Para mais informações sobre como armazenar dados de série temporal no Bigtable, consulte Projeto de esquema do Bigtable para séries temporais.

Execução de regras

No centro dos sistemas CEP, há regras que precisam ser executadas em eventos de entrada. Mecanismos de regras podem variar de linguagens específicas ao domínio personalizadas e simples a sistemas de gerenciamento de regras de negócios complexos. Independentemente da complexidade do mecanismo de regras, ele pode ser implantado de forma distribuída usando o Dataflow ou o Dataproc, um serviço gerenciado para executar clusters Hadoop ou Spark. Usando qualquer um desses sistemas, é possível executar regras complexas em grandes quantidades de eventos de séries temporais. Depois, usar os resultados dessas avaliações de para realizar ações de saída.

Ações de saída

Depois do processamento de eventos de entrada pelo mecanismo de execução de regras, os resultados podem ser transformados em uma série de ações de saída. Notificações push podem ser incluídas por tais ações em dispositivos móveis, notificações para outros aplicativos ou envio de e-mails para usuários. Para realizar essas ações, envie mensagens pelo Pub/Sub para aplicativos hospedados no local ou no Google Cloud, seja em execução no App Engine, GKE ou Compute Engine.

Análise

Armazene os resultados da execução de regras em eventos de entrada no BigQuery para realizar exploração e análise de inteligência de negócios ou relatórios. O BigQuery é um depósito de dados escalonados por petabytes compatível com consultas do tipo SQL e está conectado com ferramentas de análise de downstream adicionais. Para análise orientada por ciência de dados, o Datalab oferece recursos avançados de exploração de dados baseados em notebooks do Jupyter. Para casos de uso de relatórios ou painéis, o Google Data Studio é compatível com a criação de relatórios personalizáveis e compartilháveis, apoiados pelos recursos de consulta e armazenamento do BigQuery.

A seguir