Compartir vía


Implementación de aplicaciones Java con confianza y facilidad

El ecosistema de Java incluye diversas tecnologías como Java SE, Jakarta EE (sucesor de Java EE y J2EE), Spring, numerosos servidores de aplicaciones y otros marcos. Independientemente de lo que esté haciendo con Java, compilar una aplicación, usar un marco y ejecutar un servidor de aplicaciones, Soporte técnico de Azure la carga de trabajo con una gran cantidad de opciones. Del mismo modo, Soporte técnico de Azure cualquier arquitectura de aplicación, desde aplicaciones monolíticas que se ejecutan en máquinas virtuales o contenedores hasta aplicaciones basadas en microservicios nativas de nube que se ejecutan en servicios totalmente administrados.

Normalmente, para ejecutar la aplicación Java, se implementa en un servidor de aplicaciones, una instancia de la máquina virtual Java (JVM) que ejecuta las aplicaciones. O bien, puede compilar una aplicación independiente con un servidor de aplicaciones incrustado. En cualquier caso, el servidor de aplicaciones proporciona funcionalidades funcionales y de infraestructura de aplicaciones comunes, colaborando con contenedores web para devolver una respuesta dinámica y personalizada a una solicitud de cliente. La solicitud de cliente se puede procesar mediante componentes de software que pueden incluir servlets, páginas dinámicas, frijoles empresariales, clases auxiliares, bibliotecas dependientes y controladores de datos.

Tomcat, JBoss EAP, WildFly, WebLogic y WebSphere son servidores de aplicaciones populares. Del mismo modo, Spring Boot, Quarkus y Open Liberty son marcos populares para crear aplicaciones independientes con servidores de aplicaciones insertados. Soporte técnico de Azure todos ellos, lo que le permite usar cualquier servidor de aplicaciones Java e implementar la aplicación Java con confianza y facilidad.

Implementación de la aplicación Spring Boot o Java en cualquier servidor de aplicaciones: Tomcat y Jakarta EE

Con Azure, puede ejecutar cualquier versión y cualquier distribución de Java y cualquier servidor de aplicaciones, sin restricciones, y sin tener que administrar su propia infraestructura física. Decide cuánto control desea, o la administración diaria que quiere que Azure controle para usted con opciones como máquinas virtuales, contenedores y servicios totalmente administrados. Si usa marcos o servidores de aplicaciones java compatibles comercialmente, como VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server o IBM WebSphere, Liberty o OpenLiberty, Azure ofrece ofertas conjuntas desarrolladas y compatibles para todos ellos.

Opciones de implementación

Azure proporciona una gran cantidad de opciones de implementación para aplicaciones Java, incluidos los servicios de hospedaje de infraestructura como servicio (IaaS), contenedores como servicio (CaaS) y servicios de hospedaje de plataforma como servicio (PaaS). Puede migrar mediante lift-and-shift las aplicaciones Java existentes a máquinas virtuales (VM), incluirlas en contenedores de varias maneras o implementarlas en servicios PaaS totalmente administrados para optimizar la facilidad de administración, el desarrollador y la productividad operativa, y el costo total de propiedad.

Máquinas virtuales y contenedores

Puede usar cualquier distribución y versión de Java (y cualquier servidor de aplicaciones) al implementar en máquinas virtuales o contenedores en Azure. La elección es totalmente para usted. Recuerde que debe configurar manualmente la infraestructura y sus componentes. Entre las opciones de implementación que se encuentran en esta categoría se incluyen:

  • Azure Virtual Machines, que proporciona la flexibilidad de virtualización sin tener que comprar y mantener el hardware físico que lo ejecuta. Sin embargo, todavía debe mantener la máquina virtual instalando, configurando y revisando el software que se ejecuta en ella.

  • Conjuntos de escalado de máquinas virtuales de Azure, que permite crear y administrar un grupo de máquinas virtuales con equilibrio de carga. El número de instancias de máquina virtual puede aumentar o disminuir automáticamente según la demanda, o de acuerdo a una programación definida.

  • Azure Kubernetes Service (AKS), que simplifica la implementación de un clúster de Kubernetes administrado mediante el control de toda la sobrecarga operativa, incluidas las tareas críticas, como la supervisión de mantenimiento y mantenimiento. AKS admite el aprovisionamiento elástico de capacidad, incluido el escalado automático controlado por eventos y los desencadenadores KEDA.

  • Red Hat OpenShift en Azure, que proporciona clústeres de OpenShift totalmente administrados de alta disponibilidad a petición. OpenShift ofrece características de valor añadido para complementar Kubernetes, lo que lo convierte en una plataforma de contenedor llave en mano que ofrece una experiencia mejorada para desarrolladores y operadores.

Aunque puede implementar cualquier entorno de ejecución de Java en todos estos servicios IaaS y CaaS, se recomienda usar uno de los siguientes entornos de ejecución:

Ambas compilaciones están disponibles de forma gratuita para el desarrollo y las pruebas locales, y para crear archivos binarios listos para producción mediante cualquier plataforma o herramientas de DevOps, sin tener que pagar ninguna tarifa de licencia. Los recomendamos como cuestión de comodidad. Al usar una de estas compilaciones, si tiene algún problema y tiene un plan de soporte técnico apto para Azure, puede abrir un vale de Soporte técnico de Azure, sin más costos. Dicho esto, vale la pena señalar que estas recomendaciones son solo eso: las opciones que se recomiendan entre otras compilaciones disponibles libremente de OpenJDK para facilitar el soporte técnico. Para más información, consulte Compatibilidad con Java en Azure y Azure Stack.

Diagrama con el encabezado

Todas estas opciones de implementación de IaaS y CaaS le permiten implementar fácilmente el servidor de aplicaciones de Apache Tomcat. Si usa una oferta comercial, como Spring Runtime de VMware, JBoss EAP de Red Hat, WebLogic Server de Oracle o WebSphere de IBM, Azure ofrece opciones de hospedaje desarrolladas y compatibles conjuntamente de esos proveedores. Se tratan más adelante, en Soluciones integradas y compatibles conjuntamente con asociados del ecosistema de Java.

Servicios totalmente administrados (PaaS)

Los servicios PaaS totalmente administrados para ejecutar aplicaciones Java en Azure incluyen las siguientes opciones:

  • Azure Spring Apps, que facilita la implementación de aplicaciones de Spring Boot en Azure, sin cambios en el código. El servicio administra toda la infraestructura de las aplicaciones de Spring Boot. Esta infraestructura incluye supervisión y diagnósticos completos, administración de configuración, detección de servicios, seguridad, ciclo de vida de la aplicación, registros de publicación y métricas, integración de CI/CD, implementaciones azul-verde, etc. Desarrollado en colaboración con Pivotal (ahora parte de VMware), Azure Spring Apps funciona y es compatible conjuntamente con Microsoft y VMware.
  • App de Azure Service, un servicio basado en HTTP para hospedar aplicaciones web, API REST y back-ends móviles, con seguridad integrada, equilibrio de carga, escalado automático y administración automatizada. App Service también admite funcionalidades completas de DevOps, como la implementación continua, la administración de paquetes, los entornos de ensayo, los dominios personalizados y los certificados TLS/SSL.
  • Azure Container Apps, que permite ejecutar microservicios y aplicaciones en contenedor en una plataforma sin servidor. Entre los usos comunes se incluyen la implementación de puntos de conexión de API, el hospedaje de aplicaciones de procesamiento en segundo plano, el control del procesamiento controlado por eventos y la ejecución de microservicios. Las aplicaciones basadas en Azure Container Apps se pueden escalar dinámicamente en función del tráfico HTTP, el procesamiento controlado por eventos, la CPU o la carga de memoria, o cualquier escalador compatible con KEDA.

Microsoft proporciona y mantiene los entornos de ejecución de Java para Azure Spring Apps y App de Azure Service. Solo admiten distribuciones LTS de OpenJDK, con Eclipse Adoptium Temurin para Java 8 y Microsoft Build de OpenJDK para Java 11 y 17. Dicho esto, hay algunas advertencias: por ejemplo, nuestras ofertas de asociados desarrolladas conjuntamente y compatibles (descritas más adelante) usan sus propios entornos de ejecución.

Para Azure Container Apps, ya que necesita compilar y administrar sus propias imágenes de contenedor a partir del código fuente, puede usar la distribución y la versión de Java , y el servidor de aplicaciones, de su elección.

Funciones sin servidor

A veces no necesita una aplicación Java completa. Por ejemplo, para el procesamiento de datos en tiempo real, es posible que solo necesite un pequeño fragmento de código que se pueda desencadenar a gran escala, quizás por millones y millones de eventos. Estos eventos se pueden ingerir a través de Azure Event Hubs, procesados por código Java sin servidor controlado por eventos que se ejecuta a escala en Azure Functions y guardados en un almacén de datos como Azure Cosmos DB.

Soluciones integradas y compatibles conjuntamente con asociados del ecosistema de Java

Microsoft se ha asociado con los principales proveedores del ecosistema de Java para ofrecer soluciones de primera clase para ejecutar Java en Azure, desde servicios administrados desarrollados y compatibles conjuntamente hasta ofertas de Azure Marketplace para servidores de aplicaciones Java populares. También integramos herramientas populares de supervisión de aplicaciones, que se tratan más adelante en esta documentación.

Diagrama con el encabezado

Azure Spring Apps (Pivotal/VMware)

Desarrollado conjuntamente por Microsoft y Pivotal, Azure Spring Apps es un servicio totalmente administrado que resuelve muchos de los desafíos comunes que los desarrolladores, los operadores de TI y los equipos de DevOps enfrentan al ejecutar aplicaciones de Spring Boot a escala. Abstrae la complejidad de administrar la infraestructura para ejecutar aplicaciones basadas en Spring y componentes de middleware de Spring Cloud, lo que permite a los desarrolladores de Java centrarse en su código, al tiempo que Azure se encarga del escalado dinámico, las revisiones de seguridad, los estándares de cumplimiento, la alta disponibilidad, etc.

JBoss EAP (Red Hat)

Red Hat proporciona soluciones de código abierto para la empresa. Una de estas soluciones es JBoss Enterprise Application Platform (EAP), una plataforma popular del servidor de aplicaciones que es compatible con Java EE Certified y Jakarta EE tanto en el perfil web como en la plataforma completa. Red Hat también es colaborador de los estándares de Java , OpenJDK, MicroProfile, Jakarta EE y Quarkus.

Nos asociamos con Red Hat para entregar red Hat JBoss Enterprise Application Platform (EAP) en App de Azure Service, lo que permite a los desarrolladores de Java implementar sus aplicaciones de Jakarta EE en App Service sin necesidad de una suscripción o licencia de Red Hat independiente con soporte integrado de ambas empresas. También lanzamos ofertas conjuntas similares para JBoss EAP en máquinas virtuales de Azure, en conjuntos de escalado de máquinas virtuales de Azure y en RedHat OpenShift (ARO) de Azure: esta última también opera conjuntamente por Microsoft y Red Hat.

WebLogic Server (Oracle)

Nos asociamos con Oracle para entregar Oracle WebLogic Server (WLS) en máquinas virtuales de Azure y Oracle WebLogic Server en Azure Kubernetes Service. Estas soluciones facilitan las migraciones a Azure mediante la automatización de operaciones reutilizables, como el aprovisionamiento de redes virtuales o almacenamiento, la instalación de recursos de Linux/Java, la configuración de WebLogic Server y la configuración de la seguridad con un grupo de seguridad de red.

WebSphere/Liberty/Open Liberty (IBM)

Nos asociamos con IBM, desarrollando soluciones conjuntamente para WebSphere Application Server (WAS) en máquinas virtuales de Azure, WebSphere Liberty y Open Liberty en Azure Kubernetes Service, y WebSphere Liberty y Open Liberty en Red Hat OpenShift en Azure. Para más información, consulte ¿Qué son las soluciones para ejecutar la familia de productos IBM WebSphere en Azure? Estas soluciones permiten la migración sencilla de cargas de trabajo de WebSphere a Azure, automatizando la mayoría de las tareas de aprovisionamiento de recursos necesarias para configurar un clúster de WebSphere de alta disponibilidad. La asociación abarca una serie de casos de uso, desde cargas de trabajo críticas existentes hasta aplicaciones nativas de nube.

Apache Kafka en Confluent Cloud (Confluent)

En el pasado, los clientes de Azure querían usar el servicio Kafka de Confluent tenían que crear y administrar recursos y usuarios por separado en Azure y Confluent Cloud. Para facilitar este problema, Confluent y Microsoft se han asociado para ofrecer Apache Kafka para Confluent Cloud, una oferta de Azure Marketplace que proporciona Apache Kafka como servicio totalmente administrado, incluida la capacidad de crear y administrar recursos de Confluent Cloud a través de Azure Portal, la CLI de Azure o los SDK de administración de Azure.

Hoy en día, la experiencia del cliente es más sencilla, segura y más fluida. Los clientes pueden aprovisionar y administrar recursos de Confluent Cloud junto con sus recursos de Azure, como parte de un flujo de trabajo unificado, y aprovechar las ventajas de los conectores totalmente administrados creados para Azure Functions, Azure Blob Storage, Azure Event Hubs, Azure Data Lake Storage Gen2 y Microsoft SQL Server. Los desarrolladores pueden seguir codificando con bibliotecas cliente de Apache Kafka.

Resumen

El desarrollo conjunto con asociados para muchas de estas ofertas es un esfuerzo continuo y continuo. A medida que nuestros asociados siguen innovando en sus ofertas, estamos trabajando estrechamente con ellos para llevar rápidamente esas mismas innovaciones a Azure, para que los clientes puedan implementar y escalar sus aplicaciones Java con confianza y facilidad.

En resumen, Soporte técnico de Azure la carga de trabajo con una gran variedad de opciones, independientemente de lo que esté haciendo con Java. Puede compilar cualquier aplicación de Java, usar cualquier marco, ejecutar cualquier servidor de aplicaciones y admitir cualquier arquitectura de aplicación, desde aplicaciones monolíticas que se ejecutan en máquinas virtuales o contenedores hasta aplicaciones nativas de la nube basadas en microservicios que se ejecutan en servicios totalmente administrados.

Diagrama con el encabezado

Paso siguiente

Escalado con seguridad, supervisión y automatización de un extremo a otro