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 otras plataformas. Haga lo que haga con Java, como crear una aplicación, usar una plataforma y ejecutar un servidor de aplicaciones, Azure le ayuda con su carga de trabajo con una gran cantidad de opciones. Del mismo modo, Azure le asiste con cualquier arquitectura de aplicaciones, desde aplicaciones monolíticas que se ejecutan en máquinas virtuales o contenedores hasta aplicaciones basadas en microservicios nativos de la nube que se ejecutan en servicios totalmente administrados.

Normalmente, para ejecutar la aplicación Java, esta se implementa en un servidor de aplicaciones, una instancia de la máquina virtual de 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 usa funcionalidades funcionales y de infraestructura de aplicaciones comunes, colaborando con contenedores web para devolver una respuesta dinámica y personalizada a la solicitud del cliente. La solicitud del cliente se puede procesar mediante componentes de software que pueden incluir servlets, páginas dinámicas, enterprise beans, 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 modelos de trabajo populares para crear aplicaciones independientes con servidores de aplicaciones incrustados. Azure es compatible con todos ellos, lo que le permite usar cualquier servidor de aplicaciones de Java e implementar la aplicación Java con confianza y facilidad.

Implementación de una 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, sin tener que administrar su propia infraestructura física. Usted decide el nivel de control que quiere o cuánto volumen de administración diario quiere que Azure gestione por usted con opciones como máquinas virtuales, contenedores y servicios totalmente administrados. Si usa plataformas o servidores de aplicaciones de Java compatibles con soluciones comerciales, como VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server o IBM WebSphere, Liberty o OpenLiberty, Azure ofrece soluciones conjuntas desarrolladas y compatibles con todos ellos.

Opciones de implementación

Azure ofrece una gran cantidad de opciones de implementación para aplicaciones Java, incluidos servicios de hospedaje de infraestructuras como servicio (IaaS), contenedores como servicio (CaaS) y de plataformas como servicio (PaaS). Puede migrar mediante el método "lift-and-shift"las aplicaciones Java existentes en máquinas virtuales (VM), incluirlas en contenedores de varias maneras o implementarlas en servicios de PaaS totalmente administrados para optimizar la administración y su practicidad, la productividad del desarrollador y operativa y el coste total de propiedad.

Máquinas virtuales y contenedores

Puede usar cualquier distribución y versión de Java (y cualquier servidor de aplicaciones) al realizar la implementación en máquinas virtuales o contenedores en Azure. Usted es el que decide. 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 las siguientes:

  • Azure Virtual Machines, que ofrece la flexibilidad de la virtualización sin necesidad de adquirir ni mantener el hardware físico que la ejecuta. Sin embargo, la máquina virtual sigue necesitando mantenimiento mediante la instalación, configuración y aplicación de revisiones del software que se ejecuta en ella.

  • Azure Virtual Machine Scale Sets, 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 la gestión de toda la sobrecarga operativa, que incluye tareas esenciales, como el control de estado y el mantenimiento. AKS admite el aprovisionamiento elástico de capacidad, incluido el escalado automático controlado por eventos y los desencadenadores de KEDA.

  • Red Hat OpenShift en Azure, que ofrece clústeres de OpenShift de alta disponibilidad y totalmente administrados a petición. OpenShift incluye una serie características de valor añadido para complementar Kubernetes, lo que la convierte en una plataforma inmediata de contenedores que habilita un entorno para desarrolladores y operadores significativamente mejorada.

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 tareas de desarrollo y pruebas locales, así como para crear archivos binarios orientados a producción mediante cualquier plataforma o herramientas de DevOps, sin tener que pagar ninguna tasa de licencia. Estos los recomendamos por razones de comodidad. Al usar una de estas compilaciones, si tiene algún problema y cuenta con un plan de asistencia técnica válido para Azure, puede crear una incidencia de soporte técnico de Azure, sin costes extra. Dicho esto, vale la pena señalar que estas recomendaciones son solo eso: las opciones que se recomiendan entre otras compilaciones de OpenJDK disponibles y gratis para facilitar la asistencia técnica. Para más información, consulte Compatibilidad con Java en Azure y Azure Stack.

Diagrama con el título

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 solución 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 de forma conjunta y compatibles para dichos proveedores. Se hablan de ellas más adelante, en Soluciones integradas y compatibles de forma conjunta con proveedores del ecosistema de Java.

Servicios totalmente administrados (PaaS)

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

  • Azure Container Apps, que permite ejecutar microservicios y aplicaciones contenedorizadas en una plataforma sin servidor. Entre los usos habituales 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 de forma dinámica en función del tráfico HTTP, el procesamiento controlado por eventos, la CPU o la carga de memoria y cualquier escalador compatible con KEDA.
  • Azure App Service, un servicio basado en HTTP para hospedar aplicaciones web, API REST y backends de entornos móviles, con seguridad integrada, equilibrio de carga, escalado automático y administración automatizada. App Service también incluye funcionalidades de DevOps, por ejemplo, la implementación continua, la administración de paquetes, entornos de ensayo, dominios personalizados y certificados TLS/SSL.

Microsoft ofrece y mantiene los entornos de ejecución de Java para Azure App Service y Azure Container Apps implementados como código o archivos binarios (JAR/WAR). 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, merecen indicarse algunas advertencias: por ejemplo, las soluciones de nuestros colaboradores desarrolladas de forma conjunta y compatibles (descritas más adelante) usan sus propios entornos de ejecución.

En el caso de Azure Container Apps compilado a partir de sus propias imágenes de contenedor, ya que debe 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, así como el servidor de aplicaciones, que prefiera.

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 activar a gran escala, quizás a razón de millones y millones de eventos. Estos eventos se pueden ingerir a través Azure Event Hubs, procesados por el 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 de forma conjunta y compatibles con proveedores del ecosistema de Java

Microsoft se ha asociado con los principales proveedores del ecosistema de Java para ofrecer soluciones de primera categoría con el fin de ejecutar Java en Azure, desde servicios administrados desarrollados conjuntamente y compatibles hasta soluciones de Azure Marketplace para servidores de aplicaciones Java populares. También integramos herramientas populares de control de aplicaciones, de las que se habla más adelante en esta documentación.

Diagrama con el título

JBoss EAP (Red Hat)

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

Colaboramos con Red Hat para integrar Red Hat JBoss Enterprise Application Platform (EAP) en Azure App 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 soluciones conjuntas similares para JBoss EAP en Azure VMs, VM Scale Sets y en RedHat OpenShift en Azure (ARO); esta última también la usan conjuntamente Microsoft y Red Hat.

WebLogic Server (Oracle)

Colaboramos con Oracle para integrar Oracle WebLogic Server (WLS) en Azure VMs y Oracle WebLogic Server en Azure Kubernetes Service. Estas soluciones facilitan las migraciones a Azure mediante la automatización de operaciones repetitivas, como el aprovisionamiento de redes virtuales o almacenamiento, la instalación de recursos de Linux o 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)

Colaboramos con IBM, desarrollando soluciones conjuntamente para WebSphere Application Server (WAS) en Azure VMs, WebSphere Liberty y Open Liberty en Azure Kubernetes Service, así como WebSphere Liberty y Open Liberty en Red Hat OpenShift en Azure. Para obtener más información, consulte ¿Cuáles son las soluciones para ejecutar la familia de productos IBM WebSphere en Azure? Estas soluciones permiten una migración sencilla de las 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. Esta colaboración aborda diferentes tipos de casos prácticos, desde cargas de trabajo esenciales existentes hasta aplicaciones nativas de la nube.

Apache Kafka en Confluent Cloud (Confluent)

En el pasado, los clientes de Azure que pedían usar el servicio Kafka de Confluent tenían que crear y administrar los recursos y los usuarios por separado en Azure y Confluent Cloud. Para subsanar este problema, Confluent y Microsoft se han unido para ofrecer Apache Kafka para Confluent Cloud, una solución de Azure Marketplace que ofrece Apache Kafka como servicio totalmente administrado, entre cuyas funciones se incluye 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, el cliente cuenta con métodos más sencillos, seguros y fluidos. Los clientes pueden aprovisionar y administrar recursos de Confluent Cloud junto con sus recursos de Azure, como parte de un flujo de trabajo unificado. De este modo, aprovechan 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 creando código con bibliotecas de cliente de Apache Kafka.

Resumen

La labor conjunta de desarrollo con proveedores o colaboradores en muchas de estas soluciones no para de crecer. A medida que nuestros socios siguen innovando en sus soluciones, nosotros trabajamos codo con codo con ellos para integrar rápidamente esas mismas innovaciones a Azure y así los clientes puedan implementar y escalar sus aplicaciones Java con confianza y facilidad.

En resumen, Azure le ayuda con su carga de trabajo a través de todo tipo de opciones, independientemente de lo que quiera hacer con Java. Puede compilar cualquier aplicación Java, usar cualquier modelo de trabajo, ejecutar cualquier servidor de aplicaciones e incluir 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 título

Paso siguiente

Escalado con seguridad, supervisión y automatización integrales