Eventarc te permite compilar 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 servidores y completamente administrada que te permite enrutar eventos de forma asíncrona desde fuentes a destinos. Para obtener más información, consulta Cómo elegir Eventarc Advanced o Eventarc Standard.
Eventarc Advanced está diseñado para simplificar la transferencia, la orquestación y la entrega de datos de eventos a través de mensajes en aplicaciones, servicios y extremos. Eventarc Advanced te permite recopilar eventos que ocurren en un sistema y publicarlos en un bus central. Los servicios interesados pueden suscribirse a mensajes específicos creando inscripciones. Puedes usar el bus y una canalización para enrutar eventos desde varias fuentes en tiempo real, publicarlos en varios destinos y, de manera opcional, transformarlos antes de la publicación en un destino.
Eventarc Advanced es ideal para organizaciones con necesidades complejas de eventos y mensajería, en especial aquellas que tienen problemas para administrar numerosos temas de Pub/Sub, colas de Kafka, o bien otros sistemas de mensajería de terceros. Debido a que proporciona a los administradores visibilidad y control mejorados y centralizados, Eventarc Advanced permite a las organizaciones conectar varios equipos en diferentes proyectos.
Puedes administrar Eventarc Advanced desde la consola de Google Cloud, desde la línea de comandos mediante Google Cloud CLI o mediante la API de Eventarc.
Conceptos clave
Un bus proporciona un extremo detectable para los eventos y es un router que recibe todos los eventos publicados por los proveedores y los entrega a cero o más destinos. Un bus te permite centralizar, supervisar 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 para los eventos recopilados por un bus en particular. Los eventos se enrutan a los consumidores que se suscribieron a esos eventos específicos. La inscripción te permite usar Common Expression Language (CEL) para definir políticas de control de acceso detallado a través de la coincidencia de eventos según sus atributos. Una inscripción también te permite especificar la canalización a la que se deben entregar los eventos coincidentes.
La canalización es el intermediario de entrega entre un bus y un destino. La canalización especifica un destino de destino y también proporciona la opción de transformar los eventos coincidentes antes de entregarlos al destino. Te permite controlar diferentes estructuras de eventos, ya que admite varios formatos de carga útil y te permite adaptar los datos de eventos sobre la marcha sin modificar tus servicios de origen o de destino.
Funciones clave
Eventarc Advanced admite muchos casos de uso para las aplicaciones de destino. Estas son algunas de las funciones clave:
Integración de aplicaciones a gran escala: Puedes conectar varios servicios y aplicaciones, lo que permite la comunicación asíncrona en diferentes formatos de eventos y esquemas.
Transmisión de eventos para IA y estadísticas: Puedes controlar la afluencia de datos de los dispositivos de la IoT y las cargas de trabajo de IA, filtrar, transformar y enriquecer eventos antes de enviarlos a tus canalizaciones de estadísticas.
Implementaciones híbridas y de múltiples nubes: Puedes extender tus arquitecturas orientadas a eventos más allá de Google Cloud y realizar integraciones con sistemas locales y otros proveedores de servicios en la nube. Eventarc Advanced te permite enrutar eventos desde variadas fuentes, incluidas fuentes de Google y publicadores directos de eventos.
Comprende la regionalización
Eventarc Advanced es un servicio completamente regional: todo el tráfico y los datos de Eventarc Advanced deben residir en la misma región. Por ejemplo, las inscripciones y las canalización solo pueden leer y procesar datos de la misma región que el autobús. Para lograr la compatibilidad entre regiones, puedes publicar eventos en diferentes buses en diferentes regiones y configurar una red dentro de un perímetro de servicio que abarque varias regiones.
Diseños de proyectos
Todos los recursos de Eventarc deben pertenecer a un proyecto de Google Cloud. Sin embargo, no es necesario que el proveedor (fuente de eventos), el bus (administrador) y la canalización (destino del evento) estén en el mismo proyecto.
Puedes usar una combinación de permisos de Identity and Access Management (IAM) para controlar el uso de recursos, el acceso detallado a los datos con CEL, los archivos adjuntos de red y los perimetros de servicio para admitir requisitos de seguridad y redes para diferentes necesidades de entrada y salida.
Eventos
Un evento es un registro de datos que expresa un caso y su contexto, y que indica un cambio en un recurso o entorno. Un evento es una unidad de comunicación discreta que es independiente de otros eventos. Por ejemplo, un evento puede indicar un cambio en los datos de una base de datos, un archivo agregado a un sistema de almacenamiento o un trabajo programado.
Ten en cuenta que un evento también es un mensaje que emite un componente cuando cambia su estado. 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 orientada a eventos, a menudo usamos el término evento para referirnos al mensaje que comunica el evento en lugar del evento en sí (lo que realmente sucedió para generar el mensaje).
Tipos de eventos
Eventarc Advanced admite eventos que provienen directamente de una fuente de Google.
Para obtener más información, consulta Tipos de eventos de Google compatibles con Eventarc.
Proveedores y destinos de eventos
Eventarc Advanced recopila eventos de los proveedores de eventos y los enruta a un destino de eventos. Cada canalización de Eventarc Advanced puede especificar solo un destino como objetivo para los mensajes enrutados.
Entre los proveedores admitidos, se incluyen los proveedores de Google y los publicadores directos de eventos. Entre los destinos compatibles, se incluyen Cloud Run, funciones de Cloud Run, extremos 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 entrega eventos al destino objetivo sin importar el proveedor y en un formato de CloudEventscon una solicitud HTTP en modo de contenido de objeto binario. CloudEvents es una especificación para describir metadatos de eventos de forma común.
Los destinos de destino como las funciones de Cloud Run y Cloud Run consumen eventos en el formato HTTP. Para los destinos de Workflows, el servicio de Workflows convierte el evento en un objeto JSON y lo pasa a la ejecución del flujo de trabajo como un argumento del entorno de ejecución.
Usar una manera estándar para describir los metadatos de eventos garantiza la coherencia, la accesibilidad y la portabilidad. Los consumidores de eventos pueden leer estos eventos directamente, o puedes usar las bibliotecas cliente de Cloud en varios lenguajes (incluidos C++, C#, Go, Java, Node.js, PHP, Python y Ruby) para leer y analizar los eventos. También hay un conjunto de SDK de CloudEvents específicos para cada lenguaje.
La estructura del cuerpo HTTP para todos los eventos está disponible en el repositorio de GitHub de CloudEvents de Google.
Confiabilidad y entrega
No hay garantía de entrega en orden ni de la regla primero en entrar. Ten en cuenta que tener un orden estricto comprometería 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 Ordena mensajes.
La latencia y la capacidad de procesamiento son el mejor esfuerzo. Varían en función de varios factores, incluido el hecho de si el tráfico de publicación o salida implica diferentes regiones, la configuración de un servicio en particular y la carga de red en los recursos de una región de Google Cloud.
Ten en cuenta que hay cuotas y límites de uso que se aplican, por lo general, a Eventarc.
Política de reintentos de eventos
La duración predeterminada de la retención de mensajes que establece Eventarc Advanced es de 24 horas con un retraso de retirada exponencial.
Eventarc Advanced usa un retraso con retirada exponencial para manejar errores que se pueden reintentar. Comienza con una demora de un segundo y esta 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 Eventos de reintento.
Eventos duplicados
Los eventos duplicados pueden entregarse a los controladores de eventos. Según la
especificación de CloudEvents,
la combinación de los atributos source
y id
se considera única y,
por lo tanto, cualquier evento con la misma combinación se considera duplicado.
Debes implementar controladores de eventos idempotentes como práctica recomendada general.
Observabilidad
Los registros detallados de Eventarc, Cloud Run, Cloud Run Functions, Pub/Sub y Workflows están disponibles en los registros de auditoría de Cloud.