Eventarc te permite compilar arquitecturas basadas en eventos y 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 Elige Eventarc Advanced o Eventarc Standard.
Eventarc Advanced está diseñado para simplificar la transferencia, la organización y la entrega de datos de eventos a través de mensajes entre 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 mediante la creación de inscripciones. Puedes usar el bus y una canalización para enrutar eventos de varias fuentes en tiempo real, publicarlos en varios destinos y, de manera opcional, transformar eventos antes de entregarlos a 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. Al proporcionar 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 Google Cloud consola, desde la línea de comandos con la Google Cloud CLI o con la API de Eventarc.
entre diferentes servicios, apps y sistemas (haz clic en el diagrama para ampliarlo).
Conceptos clave
Un bus proporciona un extremo detectable para los eventos y es un enrutador 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 hacer un seguimiento del 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 detalladas mediante la coincidencia de eventos según los atributos de eventos. 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 objetivo 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 los servicios de origen o de destino.
Funciones clave
Eventarc Advanced admite muchos casos prácticos para las aplicaciones de destino. Estas son algunas de las capacidades clave:
Integración de aplicaciones a gran escala: Puedes conectar numerosos servicios y aplicaciones, lo que permite la comunicación asíncrona en diferentes formatos y esquemas de eventos.
Transmisión de eventos para IA y análisis: Puedes controlar la afluencia de datos de dispositivos IoT y cargas de trabajo de IA, filtrar, transformar y enriquecer eventos antes de enviarlos a tus canalizaciones de análisis.
Implementaciones híbridas y de múltiples nubes: Puedes extender tus arquitecturas basadas en eventos más allá de Google Cloud Google Cloud, integrándolas con sistemas locales y otros proveedores de servicios en la nube. Eventarc Advanced te permite enrutar eventos de varias fuentes, incluidas las fuentes de Google y los publicadores directos de eventos.
Información sobre la regionalidad
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 canalizaciones solo pueden leer y procesar datos de la misma región que el bus. Se puede lograr la compatibilidad entre regiones publicando eventos en diferentes buses en diferentes regiones y configurando 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 Google Cloud proyecto. 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. También puedes recopilar y publicar eventos de fuentes de Google en varios proyectos. Para obtener más información, consulta Publica eventos desde varios proyectos.
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 políticas de acceso y CEL, y perímetros de servicio para admitir los requisitos de redes y seguridad 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 ser 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 ocurre 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 del caso 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 proveedores de eventos y los enruta a un destino de eventos. Cada canalización de Eventarc Advanced puede especificar solo un destino como destino para los mensajes enrutados.
Entre los proveedores compatibles, se incluyen los proveedores de Google y los publicadores directos de eventos. Entre los destinos compatibles, se incluyen Cloud Run, las funciones de Cloud Run, los extremos HTTP alojados en una red de nube privada virtual, un tema de Pub/Sub, Workflows y otro bus de Eventarc Advanced.
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 CloudEvents formato con 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 objetivo, como las funciones de Cloud Run y Cloud Run , consumen eventos en 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 de salida involucra diferentes regiones; la configuración de un servicio en particular y la carga de red en los recursos de una Google Cloud región.
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. Esto comienza con un retraso de un segundo, y el retraso 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 Reintenta eventos.
Eventos duplicados
Los eventos duplicados pueden entregarse a los controladores de eventos. Según la
especificación de CloudEvents,
la combinación de source y id atributos 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
Google Cloud Observability proporciona herramientas de supervisión, registro y diagnóstico. Estas herramientas pueden ayudarte a supervisar y analizar la actividad y el crecimiento de Eventarc, y 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, las funciones de Cloud Run, Pub/Sub y Workflows están disponibles en los Registros de auditoría de Cloud.
Estándares de cumplimiento
Eventarc cumple con estas certificaciones y estándares.