Arquitectura: optimiza las transferencias a gran escala de los eventos de estadísticas y registros

En esta página, se describe una arquitectura para optimizar la transferencia de estadísticas de gran escala en Google Cloud Platform (GCP). Aquí, “gran escala” significa más de 100,000 eventos por segundo o con un total de eventos agregados de tamaño de carga útil por encima de 100 MB por segundo.

Puedes usar los servicios administrados escalables y elásticos de GCP a modo de recopilar una enorme cantidad de registros entrantes y eventos de estadísticas y luego procesarlos para ingresarlos a un almacén de datos como BigQuery.

Una arquitectura para la transferencia de cantidades significativas de datos de estadísticas debe tener en cuenta a qué datos necesitas acceder casi en tiempo real y cuáles se pueden manejar después de un retraso breve y dividirse de forma apropiada. Un enfoque segmentado tiene los siguientes beneficios:

  • Integridad de registro. Puedes ver los registros completos. No se pierde ningún registro por límites de cuota de transmisión ni por realizar muestras.
  • Reducción de costos. Las inserciones de transmisión de eventos y registros se facturan a una tarifa más alta que los que se insertan desde Cloud Storage mediante trabajos por lotes.
  • Recursos de consulta reservados. El movimiento de los registros de menor prioridad a la carga por lotes previene que impacten sobre los recursos de consulta reservados.

En el siguiente diagrama de arquitectura, se muestra ese sistema y se introducen los conceptos de rutas de acceso calientes y rutas de acceso frías para la transferencia:

rutas de acceso de transferencia general

Descripción general de la arquitectura

En esta arquitectura, los datos se originan desde dos fuentes posibles:

Después de la transferencia desde algunas de las fuentes, según los requisitos de latencia del mensaje, los datos se ponen en la ruta de acceso caliente o en la ruta de acceso fría. La ruta de acceso caliente usa ingresos de transmisión, que pueden manejar un flujo de datos continuo, mientras que la ruta de acceso fría es un proceso por lotes que carga los datos a la hora que determines.

Eventos de registro

Puedes usar Stackdriver Logging para transferir eventos de registro que generaron los servicios de registro estándar del sistema operativo. Stackdriver Logging está disponible en varios entornos de Compute Engine de modo predeterminado, incluidas las imágenes estándar y también se puede instalar en muchos sistemas operativos con el agente de Stackdriver Logging. El agente de Logging es el receptor de registros predeterminado para App Engine y Kubernetes Engine.

Ruta de acceso caliente

registro de ruta de acceso caliente

En la ruta de acceso caliente, los registros críticos obligatorios para supervisión y análisis de tus servicios se seleccionan con la especificación de un filtro en el receptor de Stackdriver Logging y, después, se transmiten a varias tablas de BigQuery. Usa tablas separadas para los niveles de registro de ERROR y WARN y, luego, haz una división por servicio si se esperan grandes volúmenes. Esta recomendación mantiene el número de inserciones por segundo por tabla debajo del límite de 100,000 y mantiene las consultas de estos datos en un buen funcionamiento.

Ruta de acceso fría

registro de ruta de acceso fría

Para la ruta de acceso fría, los registros que no requieren análisis casi en tiempo real se seleccionan con un receptor de Stackdriver Logging orientado a un depósito de Cloud Storage. Los registros se agrupan por lotes y se escriben en archivos de registro en lotes por hora de Cloud Storage. Luego, esos registros se pueden cargar por lotes a BigQuery con el proceso de importación de archivos estándar de Cloud Storage que se puede iniciar con Google Cloud Platform Console, la interfaz de línea de comandos (CLI) o incluso con una secuencia de comandos simple. La carga por lotes no afecta la transferencia de transmisión de la ruta de acceso caliente ni el rendimiento de la consulta. En la mayoría de los casos, es probable que sea mejor combinar los registros de rutas de acceso frías de forma directa en las mismas tablas usadas por los registros de rutas de acceso calientes a modo de simplificar la solución de problemas y la generación de informes.

Eventos de estadísticas

Los servicios de tu app en GCP pueden generar los eventos de estadísticas o los pueden enviar los clientes remotos. La transferencia de estos eventos de estadísticas a través de Cloud Pub/Sub y su proceso posterior en Cloud Dataflow proporciona un sistema de alta capacidad de procesamiento con baja latencia. A pesar de que es posible enviar los eventos de estadísticas fríos y calientes a dos temas de Cloud Pub/Sub separados, tienes que enviar todos los eventos a un tema y procesarlos con trabajos de Cloud Dataflow con rutas de acceso calientes y frías por separado. De esa forma, puedes cambiar la ruta de acceso que sigue un evento de estadísticas si actualizas los trabajos de Cloud Dataflow. Esto es más sencillo que implementar una app nueva o la versión del cliente.

Ruta de acceso caliente

eventos de ruta de acceso caliente

Algunos eventos necesitan un análisis inmediato. Por ejemplo, un evento puede indicar un comportamiento no deseado del cliente o malos actores. Debes elegir de forma cuidadosa tales eventos desde Cloud Pub/Sub mediante un trabajo de ajuste de escala automático de Cloud Dataflow y luego enviarlos directo a BigQuery. El trabajo de Dataflow puede particionar estos datos para asegurar que no se alcance el límite de 100,000 filas por segundo por tabla. Esto también mantiene las consultas con un buen funcionamiento.

Ruta de acceso fría

eventos de ruta de acceso fría

Los eventos que se deben seguir y analizar en una base diaria o por hora, pero nunca de manera inmediata, se pueden enviar con Cloud Dataflow a objetos en Cloud Storage. Se pueden comenzar las cargas desde Cloud Storage hacia BigQuery mediante Cloud Platform Console, el CLI o incluso una secuencia de comandos simple. Puedes combinarlos en las mismas tablas que a los eventos de ruta de acceso caliente. Al igual que los registros de ruta de acceso frías, los eventos de estadísticas cargados por lotes no tienen impacto sobre los recursos de consulta reservados y mantienen la carga de la ruta de acceso de transferencia de transmisión razonable.

Pasos siguientes

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…