Presentación de la versión preliminar de Java Message Service 2.0 a través de AMQP en Azure Service Bus

Publicado el 5 agosto, 2020

Program Manager II, Azure Messaging

Azure Service Bus simplifica los escenarios de mensajería empresarial aprovechando la semántica familiar de las suscripciones a los temas y las colas a través del protocolo Advanced Message Queuing Protocol (AMQP) basado en el sector. Ofrece a los clientes una oferta de plataforma como servicio (PaaS) totalmente administrada con integraciones profundas con los servicios de Azure, para proporcionar un agente de mensajería con un alto rendimiento y una latencia confiable, que permite garantizar al mismo tiempo una alta disponibilidad, un diseño seguro y la escalabilidad como una experiencia de primera clase. Pretendemos ofrecer Azure Service Bus para las cargas de trabajo de clientes en la mayoría de los ecosistemas y las pilas de aplicaciones.

Para alcanzar dicho objetivo, nos complace anunciar la compatibilidad con la versión preliminar de Java Message Service (JMS) 2.0 a través de AMQP en el nivel Prémium de Azure Service Bus. Con esto, permitimos a los clientes migrar mediante lift-and-shift las cargas de trabajo de Java y Spring a Azure, al mismo tiempo que los ayudamos a modernizar su pila de aplicaciones con la mejor mensajería empresarial en la nube.

A medida que los clientes empresariales migran mediante lift-and-shift sus cargas de trabajo a Azure, pueden aprovechar la oportunidad de modernizar su pila de aplicaciones con las ofertas de Azure nativas de la nube. Esto es más conveniente para los componentes del plano de datos, el almacenamiento o el movimiento de datos, que se benefician de la transición de una configuración hospedada en una infraestructura como servicio (IaaS) a una configuración de PaaS más nativa de la nube.

Con las bases de datos y los almacenes de datos, el establecimiento de API y protocolos estandarizados ha allanado el camino para una migración sencilla, donde la aplicación es independiente del proveedor o la implementación real de esta API normalizada y con cambios de código en la configuración exclusivamente o insignificantes, las aplicaciones pueden realizar la transición desde su proveedor local actual a la oferta de PaaS totalmente administrada de Azure con el comportamiento previsto.

El ecosistema de mensajería empresarial se ha fragmentado en gran medida en comparación con el ecosistema de datos hasta la estandarización reciente del protocolo AMQP 1.0 de 2011, que consiguió un comportamiento coherente en todos los agentes de mensajería empresarial garantizado por la implementación del protocolo. Sin embargo, esto no llegó a derivar en un contrato de API normalizado, perpetuando la fragmentación del espacio de mensajería empresarial.

La comunidad de Java Enterprise y, por consiguiente, también Spring, ha conseguido algunos avances con la especificación Java Message Service (JMS 1.1 y 2.0) para normalizar la API utilizada por las aplicaciones de productor y consumidor al interactuar con un agente de mensajería empresarial. La comunidad de Apache QPID logró avances en este ámbito mediante la implementación de la especificación de la API de JMS a través de AMQP. QPID-JMS, ya sea de forma independiente o como parte del paquete de Spring JMS, es la implementación de JMS de facto para la mayoría de los clientes empresariales que trabajan con una variedad de agentes de mensajería.

Conexión de las aplicaciones existentes con Azure Service Bus a través de AMQP

Con la lista de características compatibles con esta versión preliminar (con la paridad completa planeada por la disponibilidad general), Azure Service Bus admite todos los contratos de API de Java Message Service, lo que permite a los clientes migrar sus aplicaciones existentes a Azure sin tener que volver a escribir la aplicación. Esta es una lista de las características de JMS que se admiten actualmente:

  • Colas
  • Temas
  • Colas temporales
  • Temas temporales
  • Suscripciones
    • Suscripciones duraderas compartidas
    • Suscripciones no duraderas compartidas
    • Suscripciones duraderas no compartidas
    • Suscripciones no duraderas no compartidas
  • QueueBrowser
  • TopicBrowser
  • Creación automática de todas las entidades anteriores (si aún no existen)
  • Selectores de mensajes
  • Envío de mensajes con retraso en la entrega (mensajes programados)

Migración sencilla desde el proveedor de JMS hospedado en IaaS o local a Azure Service Bus

Para conectar una aplicación basada en JMS existente con Azure Service Bus, solo debe agregar el paquete Maven de JMS de Azure Service Bus o Spring Boot Starter en Azure Service Bus al pom.xml de la aplicación y agregar la cadena de conexión de Azure Service Bus a los parámetros de configuración.

Con cambios de código en la configuración exclusivamente, como se indicó anteriormente, los clientes pueden mantener una lógica empresarial independiente del agente de mensajería y evitar cualquier dependencia del proveedor.
   migración desde el proveedor de JMS hospedado en IaaS o local a Azure Service Bus

Precios sencillos, implementaciones fluidas y recursos escalables

Con el uso de la compatibilidad de JMS con Azure Service Bus, los clientes ahora pueden evitar la sobrecarga que supone la adquisición de licencias, la administración de un agente de mensajería empresarial en su propio proceso de IaaS, la simplificación de la administración de costos con un precio fijo por unidad de mensajería y el uso del aprovisionamiento automático de escalado y reducción vertical para abordar la variabilidad de las cargas de trabajo.

Integración con otras ofertas de Azure para modernizar más la pila de aplicaciones

También puede aprovechar la integración de Azure Service Bus con otras ofertas de Azure para modernizar y simplificar la pila de aplicaciones. A continuación, se indican algunas formas de hacerlo.

  1. Azure Logic Apps: use los conectores de Azure Logic Apps para Azure Service Bus, a fin de reemplazar varios flujos de trabajo empresariales críticos con una oferta sin servidor. de pago por uso, sencilla y con poco código.
  2. Azure Functions: use desencadenadores de Azure Functions para Azure Service Bus, a fin de reemplazar aplicaciones personalizadas por una oferta de PaaS sin servidor, de pago por uso y sencilla.
  3. Azure Monitor y alertas: use Azure Monitor y las alertas para tener conocimiento de las métricas a nivel de espacio de nombres, cola, temas y suscripciones de Azure Service Bus.
  4. Azure KeyVault: use la integración con Azure KeyVault para cifrar los datos en el espacio de nombres con una clave administrada por el cliente.
  5. Virtual Networks y puntos de conexión privados: proteja el acceso a Azure Service Bus mediante puntos de conexión de servicio de red virtual. Conéctese con un servicio hospedado en la nube a través de una dirección hospedada en la red privada mediante puntos de conexión privados.

Comience hoy mismo

Comience hoy mismo por aprovisionar un espacio de nombres de Service Bus con las características de JMS y migrar las aplicaciones Java y Spring existentes de Apache ActiveMQ a Service Bus.