Arquitectura para escala: monitoreo de eventos en tiempo real en la era del edge

Una herramienta basada en eventos en tiempo real recopila datos de diferentes fuentes y los pone a disposición para facilitar el monitoreo del comportamiento de la aplicación con una visión más amplia.

Mariana Bellorín Aguilera - Technical Writer
Arquitectura para escala: monitoreo de eventos en tiempo real en la era del edge

En computación, un evento es una ocurrencia que desencadena una respuesta dentro de un sistema o aplicación. Las acciones del usuario, como clics o pulsaciones de teclas, o las ocurrencias generadas por el sistema, como el tráfico de red entrante, son eventos comúnmente conocidos. Estos eventos son centrales en una arquitectura basada en eventos para la comunicación y coordinación entre componentes desacoplados. Este enfoque permite que los sistemas respondan a los eventos a medida que ocurren, lo que lo hace ideal para el procesamiento en tiempo real y la escalabilidad.

Sin embargo, una arquitectura basada en eventos presenta varios desafíos, especialmente aquellos relacionados con la gran cantidad de datos generados y su gestión. Por ejemplo, garantizar la consistencia de los datos puede ser complicado, especialmente con el procesamiento asíncrono. Gestionar el orden de los eventos y la compatibilidad del esquema, manejar la escalabilidad y garantizar la tolerancia a fallos para una entrega de eventos confiable son esenciales pero complejos.

En este contexto, la observabilidad también se ha convertido en un aspecto fundamental de las operaciones diarias, ya que permite rastrear toda la actividad dentro de sus aplicaciones. Con datos precisos, se facilita la toma de decisiones para garantizar la confiabilidad, el desempeño y la seguridad del sistema. Y esta tarea debe llevarse a cabo sin problemas, aprovechando los mejores recursos y herramientas disponibles.

Los fundamentos de una herramienta de monitoreo basada en eventos

Las arquitecturas basadas en eventos están estrechamente vinculadas a las herramientas de monitoreo de eventos en tiempo real. Estas herramientas permiten el monitoreo continuo y la alerta basada en los eventos que ocurren dentro de un sistema. Esta integración asegura que las anomalías y actualizaciones críticas sean detectadas y manejadas de manera oportuna, mejorando la confiabilidad y el desempeño del sistema​.

Un producto ideal de observabilidad y basado en eventos necesita cumplir con ciertos requisitos para ser verdaderamente eficiente:

  • Ser capaz de procesar grandes cantidades de datos en tiempo real.
  • Generar registros con información detallada sobre los eventos.
  • Ofrecer alta confiabilidad y resiliencia.
  • Garantizar la disponibilidad y persistencia de los datos.
  • Ser compatible con arquitecturas distribuidas.

Azion Real-Time Events fue desarrollado para cumplir con estos requisitos críticos, con el objetivo de monitorear el comportamiento de la aplicación de manera integral. Esto lo logra al poder:

  1. Recopilar datos de diversas fuentes a través de la plataforma.
  2. Generar registros detallados para cada solicitud procesada, incluyendo interacciones de usuario, aplicación y API.
  3. Capturar metadatos para identificar y registrar el desempeño de solicitudes individuales.
  4. Permitir la observación en tiempo real del comportamiento del sistema, incluyendo manejo de tráfico, detección de anomalías e identificación de problemas.

Este enfoque permite una visión granular de los datos, a los que se puede acceder a través de consultas precisas y flexibles. Los usuarios pueden aprovechar herramientas listas para la selección, filtrado y ordenamiento de fuentes de datos a través de la Azion Console o CLI, o utilizar el GraphiQL Playground para un análisis más avanzado.

¿Cómo funciona Real-Time Events?

El volumen de datos que alimenta Real-Time Events proviene de todos los eventos que ocurren en más de 100 edge locations en nuestra red distribuida. Todos estos eventos son recopilados y transformados para posteriormente ser clasificados y categorizados de acuerdo con cada producto, de modo que nuestros clientes puedan consultarlos en cualquier momento que lo requieran. El flujo de trabajo de Real-Time Events se puede ilustrar de la siguiente manera:

Flujo de datos de Real-Time Events

Data Generation Layer

  1. Una solicitud llega a la plataforma de Azion.
  2. La solicitud es procesada por los servicios de Azion en una edge location determinada.
  3. El sistema genera registros, que contienen toda la información relevante relacionada con esa solicitud.

Data Transformation Layer

  1. El Distributed Event Broker maneja la distribución, gestión y enrutamiento de registros de eventos a través de diferentes componentes en un entorno distribuido. En este caso, se basa en Kafka, recibiendo los eventos y procesándolos en una fila.
  • Permite el desacoplamiento de las fuentes de eventos de los consumidores de eventos, facilitando la comunicación asíncrona entre ellos.
  1. El ETL Processor transforma los datos recibidos del broker en un formato adecuado y los carga en el sistema de almacenamiento de datos objetivo.
  • Este proceso consolida datos de múltiples fuentes en una vista única y cohesiva.
  1. Los datos se almacenan en Columnar Database Events Databases, lo que permite una recuperación de datos más eficiente y compresión, y un desempeño general mejorado.
  • Este paso permite el almacenamiento, así como la persistencia y retención de datos.

API and Presentation Layer

Una vez que los datos son procesados, transformados y almacenados:

  1. Los clientes de Azion pueden acceder a los datos a través de Real-Time Events, ya sea a través de Azion Console, CLI o la API GraphQL de Real-Time Events.

Principales características de Real-Time Events

Considerando que los sistemas en tiempo real deben procesar eventos instantáneamente, sin retrasos ni interrupciones, surgieron preocupaciones sobre la confiabilidad y resiliencia durante el desarrollo de Real-Time Events. En este sentido, ser una plataforma de edge fue una gran ventaja para acelerar nuestro plan. Esto se debe a que:

  • Una robusta arquitectura distribuida, con más de 100 edge locations a nivel global, facilita el manejo de alto tráfico, picos inesperados y todos los datos generados.
  • Esta arquitectura distribuida también ayuda a procesar eventos de manera precisa y consistente, incluso durante fallos de red o tiempo de inactividad del servidor, capaz de recuperarse de fallos y funcionar sin perder datos.
  • Real-Time Events almacena datos de eventos de manera eficiente para análisis históricos, auditorías o propósitos de depuración, asegurando la persistencia y accesibilidad de los datos.
  • Procesar eventos más cerca de la fuente, en el edge, reduce la latencia y mejora el desempeño en general.

Para resumir, al distribuir la carga de trabajo a través de múltiples edge locations, junto con sistemas redundantes y estrategias automáticas de failover, la plataforma puede manejar volúmenes más altos de datos con mayor resiliencia y tolerancia a fallos.

Con Real-Time Events, puedes realizar un análisis profundo, consultando logs en bruto en tiempo real y consultando datos de diferentes fuentes de datos, relacionadas con cada producto o servicio de Azion que generó los eventos, de las últimas 168 horas, equivalente a 7 días.

Además de la vista detallada de registros, almacenamiento y características de filtrado, el producto también ofrece integración con otras herramientas de análisis, ya sean de Azion o de terceros, y automatización con funciones de edge para ejecutar consultas dinámicas.

Una vez que tus aplicaciones comienzan a recibir tráfico, es posible consultar y diagnosticar estos eventos. Cada fuente de datos exhibe información detallada de eventos relacionados con temas como acceso, comportamiento y desempeño de productos conectados a tus aplicaciones de edge.

Conoce más sobre Real-Time Events Data Sources o consulta la documentación para saber Cómo agregar filtros en Real-Time Events.

Real-Time Events GraphQL API

Real-Time Events ya te proporciona una vista detallada de tus datos. Sin embargo, pensando en dar más control y granularidad a nuestros clientes, decidimos agregar endpoints de API basados en GraphQL para mejorar aún más las posibilidades de este producto. Con la Real-Time Events GraphQL API, puedes explorar diferentes variables de tus logs de datos en bruto, todo en una sola consulta, simplificando el proceso de recuperación de datos y mejorando el desempeño.

¿Por qué usar GraphQL? GraphQL permite a los desarrolladores solicitar datos específicos, a diferencia de las API REST, donde cada endpoint está vinculado a un recurso específico y pueden ser necesarias múltiples solicitudes para reunir todos los datos requeridos. Esto hace que GraphQL sea más eficiente, evitando la sobrecarga o la subcarga, reduciendo así la carga del servidor y los costos operativos. Además, la popularidad de la API GraphQL fue clave, así como ser un lenguaje de consulta fácil de aprender, permitiendo a desarrolladores experimentados y roles no técnicos consultar datos de manera intuitiva.

Las características de la Real-Time Events GraphQL API incluyen:

  • Conjuntos de datos: un conjunto de datos es una colección estructurada de datos que se puede consultar, incluyendo campos específicos relacionados con el contexto de cada producto.
  • Filtrado: usar una consulta más específica y granular es una forma de obtener datos exactos y directos de tus solicitudes. Por ejemplo, consultar información de un campo determinado en lugar de todos los datos de un conjunto de datos, así como usar parámetros para definir aún más tu análisis.
  • Ordenamiento: esta característica permite organizar y clasificar los datos recibidos de un conjunto de datos de acuerdo con el orden del evento, ya sea ascendente o descendente.
  • Paginación: la API GraphQL de Azion utiliza paginación de desplazamiento y límite para recibir datos dentro del rango específico que has establecido.
  • Re-muestreo: esta característica te permite re-muestrear tus datos para mostrar una menor cantidad de puntos de datos exhibidos en gráficos. Funciona de acuerdo con la regla que pases en el campo de function.

Visita la documentación para explorar ejemplos de consultas para la API GraphQL y leer más sobre Cómo investigar solicitudes con la Real-Time Events GraphQL API.

GraphiQL Playground

¿Quieres hacer un test con algunas consultas y familiarizarte con la Real-Time Events GraphQL API? El GraphiQL Playground es una herramienta para ejecutar consultas o explorar cómo construirlas.

Events vs. Metrics

La suite de productos Observe de Azion incluye Real-Time Mertrics y Real-Time Events. Aunque pueden parecer similares para los usuarios más principiantes, cada uno tiene un enfoque específico. Al usarlos juntos, tienes una herramienta poderosa que hace que tu análisis sea más completo y profundo.

Las métricas son indicadores específicos y cuantificables que representan datos, recopilados a intervalos regulares y presentados en un formato agregado (promedios, sumas, conteos), siendo predecibles y consistentes, proporcionando un flujo continuo de datos. En este caso, los datos pueden ser exhibidos en gráficos, facilitando el análisis de tendencias, entendiendo el comportamiento a largo plazo e identificando cuellos de botella en el desempeño.

Por otro lado, los eventos representan una acción que ha tenido lugar. Los eventos no son continuos y ocurren de manera irregular, basados en desencadenantes o condiciones específicas. Los eventos se exhiben en registros, proporcionando datos cualitativos, a menudo con información contextual como marcas de tiempo, metadatos y descripciones. Ideal para la detección de incidentes, auditorías, registro y alertas en tiempo real.

En este sentido, REal-Time Metrics muestra tendencias de desempeño a largo plazo, mientras que Real-Time Events se enfoca en entender mejor el contexto de las anomalías y cambios en el sistema relacionados con el desempeño y comportamiento. Por ejemplo: a través de Real-Time Metrics, puedes observar la tendencia en tus solicitudes atendidas con éxito. En ciertos períodos, detectas un descenso en las métricas relacionadas con solicitudes de una geolocalización específica. Consultar los registros relacionados con los eventos alrededor de estas solicitudes puede ayudarte a identificar el problema y solucionarlo.

Conclusión

Azion Real-Time Events fue desarrollado como una solución para tus necesidades que involucran:

  • Recopilar datos de diferentes fuentes.
  • Monitorear el comportamiento de la aplicación.
  • Crear consultas complejas y obtener datos en tiempo real relacionados con la funcionalidad y desempeño de las aplicaciones.
  • Solucionar problemas, depurar e identificar errores, y tomar medidas preventivas.

También puede ser útil para casos de uso más completos, como:

  • Observabilidad de seguridad: monitoreo de eventos de seguridad en tiempo real a través de la red, detectando y respondiendo a amenazas a medida que surgen, asegurando una mitigación rápida de riesgos potenciales en el edge, antes de llegar a tu origen.
  • Compliance: seguimiento y aplicación del cumplimiento de regulaciones mediante el monitoreo de datos de eventos a través de sistemas, certificando que todos los procesos cumplan con las leyes y las reglas de negocio y del mercado.
  • Auditoría: brindando a las empresas una visión integral de acciones, cambios y accesos a través de sistemas.
  • Desarrollo basado en datos: habilitando retroalimentación al analizar eventos en tiempo real e interacciones de usuarios, permitiendo a los desarrolladores optimizar y ajustar características basadas en datos de uso del mundo real.

De esta manera, puedes interactuar y utilizar tus datos de eventos de manera más estratégica y aumentar tu observabilidad, obteniendo información integral en tiempo real. Todo esto también te permite tomar decisiones más informadas de manera rápida y eficiente para garantizar el mejor desempeño y experiencia en tu entorno digital.

Además, al incorporar características avanzadas como endpoints basados en GraphQL, ofrece una mayor granularidad y flexibilidad, permitiendo a los usuarios personalizar sus consultas de datos precisamente a sus necesidades.

Conoce más sobre Azion Real-Time Events y cómo comenzar a usarlo en la documentación.

mantente actualizado

Suscríbete a nuestro boletín informativo

Recibe las últimas actualizaciones de productos, destacados de eventos y conocimientos de la industria tecnológica directamente en tu bandeja de entrada.