Arquitectura: Procesamiento de eventos complejos

En esta página, se describe una arquitectura para el procesamiento de eventos complejos en Google Cloud.

Puedes usar Google Cloud para compilar la infraestructura elástica y escalable necesaria a fin de importar grandes cantidades de datos, procesar eventos y ejecutar reglas de negocios. Cualquier arquitectura de procesamiento de eventos complejos (CEP) debe tener la capacidad de importar datos de varias fuentes heterogéneas, aplicar reglas empresariales complejas y controlar acciones salientes.

En el diagrama de arquitectura siguiente, se muestra este sistema y los componentes involucrados:

Arquitectura para un sistema complejo de procesamiento de eventos

Descripción general de la arquitectura

En esta sección, se proporcionan detalles sobre la arquitectura que se muestra en el diagrama. La arquitectura admite la entrada de transmisión, que puede manejar un flujo de datos continuo, y la entrada por lotes, que maneja los datos como fragmentos considerables.

Entrada de transmisión

En situaciones que requieren acciones inmediatas basadas en eventos en tiempo real, generados por un usuario o por una máquina, puedes usar una arquitectura de transmisión para manejar y procesar los eventos complejos.

Aplicaciones

Los eventos generados por el usuario a menudo provienen de interacciones dentro de las aplicaciones que se alojan de forma local o en la nube y pueden tomar la forma de secuencias de clics, transacciones financieras y acciones del usuario, como agregar artículos a un carrito de compras o lista de deseos. Los eventos generados por una máquina pueden ser informes sobre la presencia, el diagnóstico o tipos de datos similares de dispositivos móviles o de otro tipo. Existen varias plataformas diferentes para alojar aplicaciones en Google Cloud:

  • App Engine es una plataforma como servicio (PaaS) que te permite implementar aplicaciones directamente en un entorno administrado con ajuste de escala automático.
  • Google Kubernetes Engine proporciona un control más preciso para aplicaciones basadas en contenedores, lo que te permite organizar e implementar contenedores en un clúster con facilidad.
  • Compute Engine proporciona máquinas virtuales de alto rendimiento para lograr una máxima flexibilidad.

Transporte

Ya sea que las aplicaciones se alojen de forma local o en Google Cloud, los eventos que generan deben viajar a través de una capa de mensajería con alta disponibilidad vinculada de forma flexible. Pub/Sub, un servicio de transporte de mensajes duradero de forma global, es compatible con la conectividad nativa a otros servicios de Google Cloud, por lo que resulta un vínculo entre las aplicaciones y el procesamiento posterior.

Entrada por lotes

En situaciones con grandes cantidades de datos históricos almacenados en bases de datos locales o en la nube, puedes usar un enfoque de procesamiento por lotes para importar y procesar eventos complejos.

Fuentes de datos

Las fuentes de datos que contienen eventos para procesar se pueden ubicar de forma local o en Google Cloud. En las fuentes de datos locales, puedes exportar los datos y, luego, copiarlos en Cloud Storage para su procesamiento posterior. Puedes acceder directamente a los datos almacenados en bases de datos alojadas en la nube mediante herramientas de procesamiento posterior y puedes usar varias plataformas diferentes para almacenar datos de eventos no procesados en Google Cloud:

  • Cloud Storage proporciona almacenamiento de objetos para archivos sin formato o datos sin estructura.
  • Cloud SQL almacena datos relacionales.
  • Datastore es una base de datos NoSQL que admite esquemas dinámicos y la indexación de datos completa.

Procesamiento y almacenamiento

Procesamiento de datos

A medida que los datos de eventos se transmiten desde aplicaciones a través de Pub/Sub o se cargan en otras fuentes de datos en la nube, como Cloud Storage, Cloud SQL o Datastore, es posible que debas transformar, enriquecer y agregar datos, o aplicarles cálculos de uso general. Dataflow está compilado para realizar estas tareas en datos que se transmiten o se procesan por lotes mediante un modelo de programación simple basado en canalizaciones. Dataflow ejecuta estas canalizaciones en un servicio administrado que escala de manera elástica, según sea necesario. En las cargas de trabajo de CEP, puedes usar Dataflow para normalizar los datos de varias fuentes heterogéneas y darles formato en una sola representación coherente.

Almacenamiento de eventos

En esta arquitectura, Dataflow procesa los datos de eventos y los normaliza en una sola representación coherente de serie temporal y, luego, los almacena en Cloud Bigtable, un servicio de base de datos NoSQL completamente administrado. Bigtable proporciona un acceso de datos coherente, de baja latencia y alta capacidad de procesamiento, útil para el procesamiento posterior y las cargas de trabajo analíticas. Para obtener más información sobre el almacenamiento de datos de serie temporal en Bigtable, consulta Diseño de esquema de Bigtable para series temporales.

Ejecución de reglas

Lo más fundamental de los sistemas CEP es que hay reglas que deben ejecutarse en los eventos entrantes. Los motores de reglas pueden variar desde lenguajes específicos del dominio simples y personalizados hasta sistemas de administración de reglas empresariales complejos. Sin importar la complejidad del motor de reglas, se puede implementar de manera distribuida mediante Dataflow o Dataproc, un servicio administrado para ejecutar clústeres de Hadoop o Spark. Con cualquiera de estos sistemas, puedes ejecutar reglas complejas en grandes cantidades de eventos de series temporales y, luego, usar los resultados de estas evaluaciones de reglas para controlar las acciones salientes.

Acciones salientes

Una vez que el mecanismo de ejecución de reglas procesa los eventos entrantes, los resultados pueden convertirse en una serie de acciones salientes. Estas acciones pueden incluir notificaciones push para dispositivos móviles, notificaciones de otras aplicaciones o envíos de correos electrónicos a los usuarios. Para entregar estas acciones, puedes enviar mensajes a través de Pub/Sub a aplicaciones alojadas de forma local o en Google Cloud, ya sea que se ejecuten en App Engine, GKE o Compute Engine.

Análisis

Puedes almacenar los resultados de la ejecución de reglas sobre eventos entrantes en BigQuery para realizar la exploración y el análisis con fines de inteligencia empresarial o de informes. BigQuery es un almacén de datos administrado a escala de petabytes que admite consultas similares a SQL y tiene conectividad con herramientas de análisis posterior adicionales. Para el análisis orientado a la ciencia de datos, Datalab ofrece potentes capacidades de exploración de datos basadas en notebooks de Jupyter. Para casos prácticos de informes o de paneles, Google Data Studio admite la creación de informes que se pueden personalizar y compartir, respaldados por las capacidades de consulta y almacenamiento de BigQuery.

¿Qué sigue?

  • Explora arquitecturas de referencia, diagramas, instructivos y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.