Eventarc te permite crear arquitecturas basadas en eventos y en mensajes sin tener que implementar, personalizar ni mantener la infraestructura subyacente.
Eventarc se ofrece en dos ediciones: Eventarc Advanced y Eventarc Standard. Ambas ediciones ofrecen una solución de eventos escalable, sin servidor y totalmente gestionada que te permite enrutar eventos de forma asíncrona desde orígenes a destinos. Para obtener más información, consulta Elegir Eventarc avanzado o Eventarc estándar.
Eventarc Advanced se ha diseñado para simplificar la ingestión, la orquestación y el envío de datos de eventos a través de mensajes entre aplicaciones, servicios y endpoints. Eventarc Advanced te permite recoger eventos que se producen en un sistema y publicarlos en un bus central. Los servicios interesados pueden suscribirse a mensajes específicos creando registros. Puedes usar el bus y una pipeline para enrutar eventos de varias fuentes en tiempo real, publicarlos en varios destinos y, opcionalmente, transformar eventos antes de enviarlos a un destino.
Eventarc Advanced es ideal para organizaciones con necesidades complejas de eventos y mensajería, sobre todo para aquellas que tienen dificultades para gestionar numerosos temas de Pub/Sub, colas de Kafka u otros sistemas de mensajería de terceros. Al proporcionar a los administradores una visibilidad y un control mejorados y centralizados, Eventarc Advanced permite a las organizaciones conectar varios equipos en diferentes proyectos.
Puedes gestionar Eventarc Advanced desde la consola, desde la línea de comandos con la CLI de Google Cloud o mediante la API de Eventarc. Google Cloud
entre diferentes servicios, aplicaciones y sistemas (haz clic en el diagrama para ampliarlo).
Conceptos clave
Un bus proporciona un endpoint detectable para los eventos y es un router que recibe todos los eventos publicados por los proveedores y los envía a uno o varios destinos. Un bus te permite centralizar, monitorizar y rastrear el flujo de mensajes a través de tu sistema. Puedes usar un bus para enrutar eventos de muchas fuentes a muchos destinos.
Los mensajes que llegan a un bus se evalúan según los criterios de una inscripción, que representa una suscripción a los eventos recogidos por un bus concreto. Los eventos se enrutan a los consumidores que se hayan suscrito a esos eventos específicos. El registro te permite usar el lenguaje de expresión común (CEL) para definir políticas de control de acceso pormenorizadas. Para ello, se emparejan eventos en función de los atributos de los eventos. El registro también te permite especificar el flujo de procesamiento al que se deben enviar los eventos coincidentes.
El canal es el intermediario de entrega entre un bus y un destino. La canalización especifica un destino y también ofrece la opción de transformar los eventos coincidentes antes de enviarlos al destino. Te permite gestionar diferentes estructuras de eventos, ya que admite varios formatos de carga útil y te permite adaptar los datos de los eventos sobre la marcha sin modificar los servicios de origen o de destino.
Funciones clave
Eventarc Advanced admite muchos casos prácticos para aplicaciones de destino. Estas son algunas de sus funciones principales:
Integración de aplicaciones a gran escala: puede conectar numerosos servicios y aplicaciones, lo que permite la comunicación asíncrona entre diferentes formatos y esquemas de eventos.
Streaming de eventos para IA y analíticas: puedes gestionar la afluencia de datos de dispositivos IoT y cargas de trabajo de IA, así como filtrar, transformar y enriquecer eventos antes de incorporarlos a tus pipelines de analíticas.
Despliegues híbridos y multinube: puedes ampliar tus arquitecturas basadas en eventos más allá de Google Cloude integrarlas con sistemas locales y otros proveedores de servicios en la nube. Eventarc Advanced te permite enrutar eventos de varias fuentes, incluidas fuentes de Google y editores directos de eventos.
Entender la regionalización
Eventarc Advanced es un servicio totalmente regional: todo el tráfico y los datos de Eventarc Advanced deben residir en la misma región. Por ejemplo, las inscripciones y las canalizaciones solo pueden leer y procesar datos de la misma región que el bus. Para ofrecer compatibilidad entre regiones, puedes publicar eventos en diferentes buses de distintas regiones y configurar una red en un perímetro de servicio que abarque varias regiones.
Diseños de proyectos
Todos los recursos de Eventarc deben pertenecer a un Google Cloudproyecto. Sin embargo, no es necesario que el proveedor (fuente de eventos), el bus (administrador) y la canalización (destino de eventos) estén en el mismo proyecto.
Puedes usar una combinación de permisos de Gestión de Identidades y Accesos (IAM) para controlar el uso de los recursos, el acceso detallado a los datos mediante CEL y perímetros de servicio para satisfacer los requisitos de redes y seguridad de las diferentes necesidades de entrada y salida.
Eventos
Un evento es un registro de datos que expresa un suceso y su contexto, e indica un cambio en un recurso o un entorno. Un evento es una unidad discreta de comunicación, independiente de otros eventos. Por ejemplo, un evento puede indicar un cambio en los datos de una base de datos, un archivo añadido a un sistema de almacenamiento o un trabajo programado.
Ten en cuenta que un evento también es un mensaje emitido por un componente cuando su estado ha cambiado. Cuando se produce un evento, el mensaje se envía a la infraestructura de eventos, donde los consumidores pueden recuperarlo. En el contexto de la arquitectura basada en eventos, a menudo usamos el término evento para referirnos al mensaje que comunica el evento, en lugar de a la ocurrencia en sí (lo que ha ocurrido para generar el mensaje).
Tipos de eventos
Eventarc Advanced admite eventos que proceden directamente de una fuente de Google.
Para obtener más información, consulta los tipos de eventos de Google compatibles con Eventarc.
Proveedores y destinos de eventos
Eventarc Advanced recoge los eventos de los proveedores de eventos y los dirige a un destino de eventos. Cada canal avanzado de Eventarc solo puede especificar un destino como objetivo de los mensajes enrutados.
Entre los proveedores admitidos se incluyen los proveedores de Google y los editores directos de eventos. Entre los destinos admitidos se incluyen Cloud Run, Cloud Run Functions, endpoints HTTP alojados en una red de nube privada virtual, Workflows y otro bus avanzado de Eventarc.
Para obtener más información, consulta Proveedores y destinos de eventos.
Formato de eventos y bibliotecas
Eventarc envía eventos, independientemente del proveedor, al destino en formato CloudEvents mediante una solicitud HTTP en modo de contenido binario. CloudEvents es una especificación para describir metadatos de eventos de forma común.
Los destinos, como las funciones de Cloud Run y Cloud Run, consumen eventos en formato HTTP. En el caso de los destinos de Workflows, el servicio Workflows convierte el evento en un objeto JSON y lo transfiere a la ejecución del flujo de trabajo como argumento de tiempo de ejecución.
Usar una forma estándar de describir los metadatos de eventos favorece la coherencia, la accesibilidad y la portabilidad. Los consumidores de eventos pueden leer estos eventos directamente o puedes usar las bibliotecas de cliente de Cloud en varios lenguajes (como C++, C#, Go, Java, Node.js, PHP, Python y Ruby) para leer y analizar los eventos. También hay un conjunto de SDKs de CloudEvents específicos de cada lenguaje.
La estructura del cuerpo HTTP de todos los eventos está disponible en el repositorio de GitHub de Google CloudEvents.
Fiabilidad y entrega
No se garantiza la entrega en orden ni la entrega según el orden de llegada. Ten en cuenta que, si se aplicara un orden estricto, se verían afectadas las funciones de disponibilidad y escalabilidad de Eventarc, que coinciden con las de su capa de transporte, Pub/Sub. Para obtener más información, consulta Ordenar mensajes.
La latencia y el rendimiento se aplican en la medida de lo posible. Varían en función de varios factores, como si el tráfico de publicación o de salida implica diferentes regiones, la configuración de un servicio concreto y la carga de la red en los recursos de una Google Cloud región.
Ten en cuenta que hay cuotas y límites de uso que se aplican a Eventarc en general.
Política de reintentos de eventos
La duración predeterminada de la retención de mensajes establecida por Eventarc Advanced es de 24 horas con un retraso de retirada exponencial.
Eventarc Advanced usa un retraso de tiempo de espera exponencial para gestionar los errores que se pueden volver a intentar. Empieza con un retraso de un segundo y se duplica después de cada intento fallido (hasta un máximo de 60 segundos y 5 intentos).
Para obtener más información, consulta Reintentar eventos.
Duplicación de eventos
Es posible que se envíen eventos duplicados a los controladores de eventos. Según la especificación de CloudEvents, la combinación de los atributos source
y id
se considera única, por lo que los eventos con la misma combinación se consideran duplicados.
Te recomendamos que implementes gestores de eventos idempotentes.
Observabilidad
Google Cloud Observability ofrece herramientas de monitorización, registro y diagnóstico. Estas herramientas pueden ayudarte a monitorizar y analizar la actividad y el crecimiento de Eventarc, así como a comprender el comportamiento, el estado y el rendimiento de tus aplicaciones. Para obtener más información, consulta Observabilidad en Eventarc.
Los registros detallados de Eventarc, Cloud Run, Cloud Run Functions, Pub/Sub y Workflows están disponibles en Registros de auditoría de Cloud.
Estándares de cumplimiento
Eventarc cumple estas certificaciones y estándares.