Desarrollo de aplicaciones modernas basadas en eventos

El patrón de aplicación basado en eventos permite responder casi en tiempo real a los cambios en los recursos en la nube y a los eventos generados por la aplicación.

Un evento es cualquier incidencia o cambio significativo en un sistema, por ejemplo, un objeto recién creado en el almacenamiento de objetos o una alerta de rendimiento en la aplicación. Este patrón de aplicación presenta los principios de diseño y la arquitectura para crear aplicaciones escalables, seguras, fiables y de alto rendimiento controladas por eventos.

Oracle Cloud Infrastructure (OCI) proporciona servicios como OCI Service Connector Hub y OCI Events para ayudarle a crear aplicaciones basadas en eventos. OCI Service Connector Hub permite crear conectores de servicio para mover datos entre servicios. Un conector de servicio especifica el servicio de origen que contiene los datos que se van a mover, las tareas opcionales y el servicio de destino para la entrega de datos cuando se completan las tareas. Entre los ejemplos de tareas opcionales se incluyen una tarea de función para procesar datos del origen, o una tarea de filtro de log para filtrar datos de log del origen. Los servicios de origen soportados para conectores de servicio incluyen OCI Monitoring, OCI Logging y OCI Streaming. Entre los ejemplos de servicios de destino se incluyen: OCI Functions, OCI Notifications y OCI Object Storage. Puede utilizar OCI Events para generar eventos de cambio de recursos que los conectores de servicio pueden ingerir mediante flujos. Asimismo, su aplicación puede emitir eventos personalizados y utilizar flujos para enrutarlos a conectores de servicio.

Principios de diseño

Utilice los siguientes principios modernos de desarrollo de aplicaciones al diseñar la arquitectura para la aplicación basada en eventos:

  • Utilice plataformas con poco código si es posible y, si no es posible, utilice lenguajes de programación maduros y marcos ligeros

    Describe los datos de tu evento utilizando CloudEvents, un formato abierto y estándar del sector. CloudEvents permite describir los datos de eventos en un formato consistente y ampliamente utilizado y proporcionar kits de desarrollo de software (SDK) para varios lenguajes de programación, incluido Java. Los eventos creados con Oracle Cloud Infrastructure Events utilizan el formato CloudEvents.

  • Utilice servicios gestionados para eliminar la complejidad del desarrollo y las operaciones de aplicaciones

    Utilice servicios gestionados para comunicar, procesar y mantener datos de eventos.

    Utilice OCI Service Connector Hub para organizar el movimiento de datos entre servicios. Utilice servicios gestionados como OCI Functions u Oracle Container Engine for Kubernetes (OKE) para procesar eventos. Utilice las notificaciones de OCI para conectar conectores de servicio a servicios descendentes, como correo electrónico, SMS, Slack o PagerDuty.

  • Seguimiento y supervisión integral del instrumento

    Un enrutador de eventos como OCI Service Connector Hub y OCI Events produce métricas en OCI Monitoring, lo que facilita la supervisión de los eventos de la aplicación y la creación de métricas y alarmas personalizadas. Para el rastreo distribuido de extremo a extremo, cree paneles de control personalizados con reglas de registro (OCI Logging Analytics), así como control basado en alarmas (OCI Notifications) para permitir a los administradores descubrir y reaccionar rápidamente a cualquier problema. Además, un enrutador de eventos tiene la capacidad única de proporcionar una vista de un único panel en la huella del evento.

Arquitectura

Esta arquitectura utiliza principios modernos de desarrollo de aplicaciones para crear aplicaciones basadas en eventos.



arquitectura impulsada por eventos locos-oracle.zip

La arquitectura tiene los siguientes componentes:

  • Flujo

    Oracle Cloud Infrastructure Streaming proporciona una solución de almacenamiento duradera, ampliable y gestionada para la ingestión de flujos de datos continuos y de alto volumen que puede utilizar y procesar en tiempo real. Puede utilizar Streaming para la ingesta de datos de gran volumen, como logs de aplicación, datos de telemetría operativa, datos de flujo de clics en la web o para otros casos de uso en los que se producen y procesan datos de forma continua y secuencial en un modelo de mensajería de publicación-suscripción.

  • Funciones

    Oracle Cloud Infrastructure Functions es una plataforma de funciones como servicio (FaaS) totalmente gestionada, multicliente, altamente escalable y bajo demanda. Se basa en el motor de código abierto de Fn Project. Las funciones le permiten desplegar el código y o bien llamarlo directamente o dispararlo en respuesta a eventos. Oracle Functions utiliza contenedores de Docker alojados en Oracle Cloud Infrastructure Registry.

  • Conectores de servicio

    Oracle Cloud Infrastructure Service Connector Hub es una plataforma de bus de mensajes en la nube que organiza el movimiento de datos entre servicios en OCI. Puede utilizar conectores de servicio para mover datos de un servicio de origen a un servicio de destino. Los conectores de servicio también le permiten especificar opcionalmente una tarea (como una función) que realizar en los datos antes de que se entreguen al servicio de destino.

    Puede utilizar el hub de conector de servicio de Oracle Cloud Infrastructure para crear rápidamente un marco de agregación de registros para sistemas de información de seguridad y gestión de eventos (SIEM).

  • Puede utilizar conectores de servicio para mover datos de un servicio de origen a un servicio de destino. Los conectores de servicio también le permiten especificar opcionalmente una tarea (como una función) que realizar en los datos antes de que se entreguen al servicio de destino.
  • Notificaciones

    El servicio Oracle Cloud Infrastructure Notifications difunde mensajes a componentes distribuidos a través de un patrón de publicación-suscripción, que proporciona mensajes seguros, altamente fiables, de baja latencia y duraderos para aplicaciones alojadas en Oracle Cloud Infrastructure.

Ejemplo de caso de uso

El caso de uso Alarma en datos de log adopta la arquitectura basada en eventos para implementar alarmas para los datos de log mediante los servicios Oracle Cloud Infrastructure (OCI) Service Connector Hub, OCI Logging y OCI Monitoring.

Este caso de uso crea un conector de servicio y una alarma. El conector de servicio (OCI Service Connector Hub) procesa y mueve los datos del log de OCI Logging a OCI Monitoring mientras la alarma se activa cuando los datos del log recibidos lo disparan. Para obtener más detalles, consulte el enlace al escenario en el tema Explorar más.



caso de uso controlado por eventos: oracle.zip

Despliegue

Universal Health Organization (UHO) es una aplicación de ejemplo que se adhiere a los principios del Modern App Development Framework. En particular, implementa elementos de los patrones de arquitectura web o móvil, de mensajería y basada en eventos, y está disponible en GitHub.
  1. Vaya a GitHub.
  2. Clone o descargue el repositorio en la computadora local.
  3. Siga las instrucciones del documento README.

Log de Cambios

Este log muestra cambios significativos: