Idea de solución
Si le gustaría que expandamos este artículo con más información, como posibles casos de uso, servicios alternativos, consideraciones de implementación o una guía de precios, comuníquese a través de los Comentarios de GitHub.
En este artículo se describe una variación de una arquitectura controlada por eventos sin servidor que se ejecuta en Azure Kubernetes con el escalador KEDA, que ingiere un flujo de datos, procesa los datos y, a continuación, escribe los resultados en una base de datos de back-end.
Para obtener más información sobre los conceptos básicos, las consideraciones y los enfoques del procesamiento de eventos sin servidor, consulte la arquitectura de referencia de procesamiento de eventos sin servidor.
Posibles casos de uso
Un caso de uso popular para implementar un patrón de procesamiento de flujo de eventos de un extremo a otro incluye el servicio de ingesta de streaming de Event Hubs para recibir y procesar eventos por segundo mediante una lógica de anulación del procesamiento por lotes y de transformación implementada con funciones desencadenadas por un centro de eventos altamente escalables.
Architecture

- Azure Kubernetes Service (AKS) con el escalador KEDA se usa para escalar automáticamente contenedores de Azure Functions en función del número de eventos que deben procesarse.
- Los eventos llegan al centro de eventos de entrada.
- La función de anulación del procesamiento por lotes y filtrado de Azure se desencadena para controlar el evento. Este paso filtra los eventos no deseados y anula el procesamiento por lotes de los eventos recibidos antes de enviarlos al centro de eventos de salida.
- Si la función de anulación del procesamiento por lotes y filtrado de Azure no puede almacenar el evento correctamente, el evento se envía al centro de eventos Mensajes fallidos 1.
- Los eventos que llegan al centro de eventos de salida desencadenan la función de Azure de transformación. Esta función de Azure transforma el evento en un mensaje para Cosmos DB.
- El evento se almacena en una base de datos de Cosmos DB.
Componentes
- Azure Kubernetes Service (AKS) simplifica la implementación de un clúster de Kubernetes administrado en Azure, ya que descarga la sobrecarga operativa en Azure. Al ser un servicio de Kubernetes hospedado, Azure controla tareas críticas como la supervisión del estado y el mantenimiento.
- KEDA es un escalador automático controlado por eventos que se usa para escalar contenedores en el clúster de Kubernetes en función del número de eventos que deben procesarse.
- Event Hubs ingiere el flujo de datos. Event Hubs está diseñado para escenarios de transmisión de datos de alto rendimiento.
- Azure Functions es una opción de proceso sin servidor. Utiliza un modelo orientado a eventos, en el que un desencadenador invoca un fragmento de código (una función).
- Cosmos DB es un servicio de base de datos de varios modelos que está disponible en un modo sin servidor basado en el consumo. En este escenario, la función de procesamiento de eventos almacena registros JSON, con la API de SQL de Cosmos DB.
Nota
Para escenarios de Internet de las cosas (IoT), se recomienda Azure IoT Hub. IoT Hub tiene un punto de conexión integrado que es compatible con la API de Azure Event Hubs, por lo que puede usar cualquiera de los servicios en esta arquitectura sin realizar ningún cambio importante en el procesamiento de back-end. Para más información, consulte Conexión de dispositivos IoT a Azure: IoT Hub y Event Hubs.
Pasos siguientes
- Procesamiento de eventos sin servidor es una arquitectura de referencia que detalla una arquitectura típica de este tipo, con ejemplos de código y análisis de las consideraciones importantes.
- Supervisión del procesamiento de eventos sin servidor proporciona información general e instrucciones sobre la supervisión de arquitecturas controladas por eventos sin servidor como esta.
- La anulación del procesamiento por lotes y el filtrado en el procesamiento de eventos sin servidor con Event Hubs describen con más detalle cómo funcionan estas partes de la arquitectura.
- El escenario de Private Link en el procesamiento de flujos de eventos es una idea de solución para implementar una arquitectura similar en una red virtual (VNet) con puntos de conexión privados, con el fin de mejorar la seguridad.