¿Qué es el event streaming?

Formas abstractas de un edificio de arquitectura moderna

¿Qué es el event streaming?

El event streaming es la práctica de capturar datos en tiempo real de aplicaciones, bases de datos y dispositivos IoT y transportarlos a varios destinos para su procesamiento y almacenamiento inmediatos, o para análisis e informes de analytics en tiempo real.

Una función clave en el procesamiento de Event Streams (ESP) es que permite a las infraestructuras de TI manejar grandes flujos continuos de eventos mediante el procesamiento de datos cuando ocurre el evento o cambio.

El event streaming a menudo sirve como complemento al procesamiento por lotes, que actúa sobre grandes conjuntos de datos estáticos (o “datos en reposo”). Sin embargo, en lugar de procesar datos por lotes, el streaming de eventos maneja puntos de datos únicos a medida que surgen. Este enfoque permite que el software dentro de la arquitectura interprete y responda a flujos de datos ("datos en movimiento") en tiempo real.

Los servicios de event streaming de alto rendimiento pueden impulsar una variedad de tareas simples y complejas, desde enviar notificaciones cuando cambian los precios de las acciones o los productos hasta crear modelos de machine learning en tiempo real que detectan actividades sospechosas de los usuarios. Incluso en el caso del procesamiento por lotes, la transmisión de eventos puede agregar profundidad a los analytics por conectar los eventos con sus respectivos horarios. También ayuda a identificar tendencias históricas, proporcionando información valiosa a lo largo del tiempo.

Diseño 3D de pelotas rodando en una pista

Las últimas novedades e insights sobre IA

Descubra insights y noticias de expertos sobre IA, la nube y mucho más en el boletín semanal Think. 

¿Qué es un evento?

El event streaming gira en torno al flujo ilimitado, secuencial y en tiempo real de registros de datos, llamados "eventos", estructuras de datos fundacionales que registran cualquier ocurrencia en el sistema o entorno. Es un término que se refiere esencialmente a cada punto de datos en el sistema. Por lo tanto, un "flujo" (también llamado flujo de datos o transmisión de datos) es la entrega continua de esos eventos.

Cada evento suele comprender una clave que identifica el evento o la entidad a la que pertenece, junto con un valor que contiene los datos reales del evento. Además, incluye una marca de tiempo que indica cuándo ocurrió o se registró el evento y, a veces, metadatos sobre la fuente de datos, la versión del esquema u otros atributos.

Con la ayuda de motores especializados de procesamiento de transmisiones, los eventos pueden someter a algunos procesos diferentes dentro de una transmisión. Las "agregaciones" realizan cálculos de datos, como medias, sumas y desviación estándar. La "ingestión" agrega datos de transmisión a las bases de datos. El procesamiento de analytics emplea patrones en la transmisión de datos para predecir eventos futuros, y el procesamiento de enriquecimiento combina puntos de datos con otras fuentes para brindar contexto y crear significado.

Los eventos suelen estar vinculados a las operaciones comerciales o a los procesos de navegación del usuario y, por lo general, desencadenan otra acción, proceso o serie de eventos. Tomemos como ejemplo la banca en línea.

Cuando un usuario hace clic en "transferir" para enviar dinero de una cuenta bancaria a otra, los fondos se retiran de la cuenta del remitente y se agregan a la cuenta bancaria del destinatario. Se envían notificaciones por correo electrónico o SMS a cualquiera de las partes (o a ambas) y, si es necesario, se desplegan protocolos de seguridad y prevención de fraude.

Mixture of Experts | 12 de diciembre, episodio 85

Decodificación de la IA: Resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el revuelo de la IA para ofrecerle las últimas noticias e insights al respecto.

Componentes clave del event streaming

Los eventos son el componente central de la transmisión de eventos. Sin embargo, hay otro conjunto de componentes que permite a los servicios de streaming procesar los eventos con la misma rapidez y eficacia con la que lo hacen. Otros componentes vitales incluyen:

Intermediarios

Los intermediarios, o intermediarios de mensajes, son los servidores que ejecutan plataformas de event streaming. Los intermediarios de mensajes permiten que las aplicaciones, los sistemas y los servicios se comuniquen entre sí e intercambien información. Logran esta funcionalidad convirtiendo mensajes entre protocolos de mensajería formales. Esto permite que los servicios interdependientes "hablen" entre sí directamente, incluso si están escritos en diferentes lenguajes (como Java o Python) o implementados en diferentes plataformas. Además, facilita el desacoplamiento de procesos y servicios dentro de los sistemas.

Los intermediarios pueden validar, almacenar, enrutar y entregar mensajes a los destinos apropiados. En los sistemas de event streaming distribuidos, los intermediarios garantizan baja latencia y alta disponibilidad al replicar eventos en múltiples nodos. Los intermediarios también pueden formar clústeres, que son conjuntos de intermediarios que trabajan juntos para facilitar el equilibrio de carga y la escalabilidad.

Temas

Los temas son categorizaciones o nombres de feeds en los que se publican eventos, lo que proporciona una forma de organizar y filtrar eventos dentro de la plataforma. Actúan como el "tema" de los eventos, lo que permite a los consumidores suscribirse a los temas y recibir solo eventos relevantes.

Particiones

Los temas se pueden dividir en partes, lo que permite que varios consumidores lean un tema simultáneamente sin alterar el orden de cada parte.

Compensaciones

Un desplazamiento es un identificador único para cada evento dentro de una parte, que marca la posición de un evento dentro de la secuencia. Los consumidores emplean compensaciones para organizar los eventos que procesaron. Si, por ejemplo, un consumidor se desconecta de un evento y luego se vuelve a conectar, puede reanudar el procesamiento desde la última compensación conocida.

¿Cómo funciona el event streaming?

Dada la proliferación de datos y el aumento resultante del tráfico de datos, la transmisión de eventos es un componente esencial de las arquitecturas de datos modernas. Es valioso en entornos que requieren capacidades de toma de decisiones ultrarrápidas o en organizaciones que buscan automatizar las responsabilidades de toma de decisiones.

Así es como los servicios de streaming de eventos gestionan los datos de eventos:

  1. Generación de eventos. El event streaming comienza cuando los productores (microservicios, sistemas de backend, ecosistemas de IoT o APIbasadas en eventos, por ejemplo) envían eventos a la plataforma de streaming de eventos.

  2. Publicación de eventos. Mediante bibliotecas de clientes, los productores publican el evento en un tema específico dentro de la plataforma, momento en el que pasan a estar disponibles para los consumidores (las aplicaciones y servicios que se suscriben al tema).

  3. Almacenamiento de eventos. La plataforma almacena los eventos durante un periodo predeterminado o hasta que se consuman, y los intermediarios gestionan los procesos de almacenamiento y recuperación de eventos.

  4. Consumo de eventos. Los consumidores procesan datos de eventos para iniciar otros eventos. Dependiendo de su propósito o configuración, pueden actuar sobre los eventos inmediatamente a medida que llegan (procesamiento en tiempo real), almacenarlos para su posterior procesamiento o compilarlos para el procesamiento por lotes. Los consumidores también rastrean su posición en el proceso de datos mediante el uso de compensaciones, para que puedan reanudar el procesamiento desde donde lo dejaron, en caso de falla o resetearlo.

  5. Entrega de eventos. El agente de eventos distribuye activamente eventos a todos los consumidores suscritos. Garantiza la entrega de eventos bajo la semántica "al menos una vez", asegurando que cada evento llegue a su destino, incluso si se producen duplicados. También pueden incluir la entrega "exactamente una vez", asegurando que cada evento se entregue una vez y solo una vez, u otro tipo de semántica.

  6. Procesamiento de eventos. Una vez que se consume y entrega el evento inicial, los datos del evento se procesan para varias acciones posteriores, incluida la transformación de los datos, su agregación y la activación de flujos de trabajo complejos de procesamiento de eventos (CEP).

Características del event streaming

Además de la transmisión y el procesamiento estándar, las plataformas de transmisión de eventos, como Amazon Kinesis, Google Pub/Sub, Azure Event Hubs e IBM Event Automation—facilitan una variedad de prácticas de transmisión que mejoran la funcionalidad. IBM Event Automation, en particular, utiliza la potencia de procesamiento de la plataforma Apache Kafka de código abierto para optimizar los flujos de trabajo basados en eventos.

Procesamiento de una sola vez

La semántica de entrega exacta garantiza que cada evento de una transmisión se procese exactamente una vez, una característica esencial para evitar eventos de transmisión duplicados y perdidos. La mayoría de los sistemas de event streaming incluyen mecanismos para proporcionar una semántica exactamente una vez, independientemente de las fallas en otras partes del sistema.

Contrapresión

Cuando los componentes posteriores no pueden seguir el ritmo de la tasa de eventos entrantes, la contrapresión evita que los flujos saturen el sistema. Con la contrapresión, un mecanismo de control del flujo de datos, los consumidores pueden indicar a los productores que limiten o detengan la producción de datos cuando están abrumados con el procesamiento de datos o no pueden seguir el ritmo de los eventos emergentes.

Este proceso permite que los sistemas manejen con habilidad las cargas de trabajo almacenando en búfer o descarten eventos entrantes, en lugar de interrumpir todo el sistema, para que el procesamiento de eventos permanezca estable a medida que fluctúan las cargas de trabajo.

Grupos de consumidores

Los consumidores de eventos a menudo trabajan como parte de un grupo de consumidores para acelerar el consumo de eventos. A cada consumidor de un grupo de consumidores se le asigna un subconjunto de partes a procesar, lo que empareja el consumo para una mayor eficiencia. Si un consumidor dentro del grupo falla o necesita ser agregado o eliminado, la plataforma puede reasignar particiones dinámicamente para mantener el equilibrio y la tolerancia a las fallas.

Marca de agua

El event streaming a menudo significa procesar datos de manera urgente. La marca de agua permite el seguimiento del progreso (mediante el uso del tiempo del evento) en los sistemas de procesamiento de flujo. Impone un umbral de completitud que indica cuándo el sistema puede considerar los datos del evento completamente procesados. La marca de agua también puede ser útil para garantizar la precisión en el procesamiento basado en el tiempo y para conciliar eventos fuera de orden.

Conservación y compactación de datos

La mayoría de las plataformas de event streaming ofrecen políticas de conservación de datos personalizables que permiten a los desarrolladores controlar cuánto tiempo están disponibles los eventos para su consumo. Sin embargo, la compactación de datos es un proceso que elimina los datos redundantes u obsoletos de los temas, manteniendo el footprint de almacenamiento mínima y preservando los datos esenciales.

Vale la pena señalar, nuevamente, que las arquitecturas de transmisión estándar suelen desacoplar a los productores de eventos, los intermediarios de eventos y los consumidores, de modo que los componentes se puedan escalar y mantener de forma independiente.

Casos de uso de event streaming

El event streaming es un concepto poderoso que permite a las organizaciones emplear los datos a medida que se generan, creando sistemas más receptivos e inteligentes. Con el auge de la toma de decisiones basada en datos, el event streaming es un componente cada vez más importante en las arquitecturas de software modernas.

Como tal, las tecnologías de streaming de eventos tienen una variedad de casos de uso en todos los sectores empresariales, que incluyen:

Banca y servicios financieros

Las instituciones financieras pueden emplear servicios de event streaming para procesar datos del mercado en tiempo real, lo que permite que los sistemas de comercio algorítmico tomen decisiones en fracciones de segundo según las condiciones del mercado actualizadas. Las capacidades de monitoreo en tiempo real del event streaming también ayudan a las instituciones a identificar y abordar rápidamente el fraude y los riesgos de seguridad.

Manufactura

El event streaming puede facilitar la optimización de la cadena de suministro al permitir que los fabricantes realicen un seguimiento de los materiales y productos a medida que avanzan por la cadena de suministro para identificar cuellos de botella e ineficiencias en los procesos. Además, al transmitir datos de sensores IoT /IIoT en maquinaria, los gerentes pueden predecir cuándo y por qué el equipo podría fallar y realizar mantenimiento preventivopredictivo para evitar tiempos de inactividad no planeados.

Juegos y entretenimiento

Las plataformas de juegos en línea pueden emplear los servicios de streaming de eventos para realizar un seguimiento de las acciones de los jugadores y los cambios en el estado del juego, lo que puede emplearse para ejecutar un análisis del juego, aplicar políticas anti trampas y aumentar la participación de los jugadores. Las plataformas de streaming pueden aprovechar los datos de los eventos para ofrecer recomendaciones de contenidos personalizadas a los usuarios y crear una experiencia de cliente a la medida.

Transporte y logística

El event streaming se puede emplear para rastrear la ubicación y el estado del vehículo, lo que permite enrutar en tiempo real en función de las condiciones del tráfico, los horarios de entrega y el rendimiento del vehículo. Las compañías de logística pueden emplear de manera similar los datos de eventos de dispositivos de escaneo y rastreadores GPS para proporcionar a los clientes actualizaciones en tiempo real sobre el estado de sus entregas de comercio electrónico.

Uso en arquitecturas basadas en eventos y otros patrones

Más allá de industrias específicas, el event streaming también puede ser útil cuando se implementa en conjunto con otras tecnologías y arquitecturas. Por ejemplo, el event streaming a veces se asocia con patrones como el abastecimiento de eventos y la segregación de responsabilidad de consulta de comandos (CQRS).

El abastecimiento de eventos es un patrón arquitectónico en el que los cambios en el estado de la aplicación se almacenan como una secuencia de eventos. Utilizado junto con event streams, el abastecimiento de eventos permite que el sistema de transmisión reproduzca estos eventos para reconstruir el estado de una entidad en cualquier momento o para impulsar otros componentes del sistema.

En un patrón arquitectónico CQRS, el sistema se divide en dos modelos diferentes: uno que maneja comandos (escritura) y otro que maneja consultas (lectura). El event streaming se puede emplear en CQRS para propagar cambios del modelo de escritura al modelo de lectura en tiempo real, lo que permite la integración asíncrona entre los dos.

El event streaming también es una tecnología fundamental para crear arquitecturas basadas en eventos.

 Una arquitectura basada en eventos permite que los componentes débilmente acoplados se comuniquen a través de eventos. En lugar de publicar flujos de eventos a un corredor, publica un evento de propósito único que otra aplicación o servicio puede usar para realizar acciones a su vez. La potencia de procesamiento in-stream proporcionada por las arquitecturas basadas en eventos,empleada junto con las capacidades de streaming de eventos,puede permitir a las compañías responder a los datos en movimiento y tomar decisiones rápidas basadas en todos los datos actuales e históricos.

En los últimos años, los proveedores de la nube (incluido IBM Cloud) comenzaron a ofrecer los principios del streaming de eventos como servicios. El event streaming como servicio facilita a las compañías la adopción del event streaming sin gestionar toda la infraestructura subyacente, lo que amplía aún más los casos de uso del event streaming.

Soluciones relacionadas
IBM Event Automation

IBM® Event Automation es una solución acoplable que ayuda a acelerar los esfuerzos de las empresas basados en eventos, con capacidades de distribución, detección y procesamiento de eventos.

Explore IBM Event Automation
Servicios de consultoría en automatización

Vaya más allá de la simple automatización de tareas para manejar procesos de alto perfil, orientados al cliente que generan ingresos con adopción y escala integradas.

Explorar los servicios de consultoría para la automatización
Soluciones AIOps

Descubra cómo la IA para las operaciones de TI ofrece los insights que necesita para ayudar a impulsar un rendimiento empresarial excepcional.

Explore las soluciones de AIOps
Dé el siguiente paso

Acelere la toma de decisiones y las operaciones al detectar nuevas tendencias, amenazas y oportunidades.

 

Explore IBM Event Automation Realice un recorrido autoguiado