Comparación de las soluciones

Completado

Se describen los tipos de implementación más típicos para aplicaciones Java. Ahora vamos a ver qué servicio de Azure puede funcionar mejor, en función del tipo de implementación que necesite.

Azure Container Apps (Aplicaciones de Contenedores de Azure)

Azure Container Apps le permite centrarse en la creación de aplicaciones Java en contenedores, ya sean monolíticas o microservicios, sin necesidad de administrar la infraestructura. Puede implementar JAR, WAR o incluso código fuente, y la plataforma optimiza automáticamente la memoria y escala sus aplicaciones en función de la demanda. También integra funciones de diagnóstico avanzadas para la resolución de problemas de la JVM, lo que garantiza un rendimiento eficaz de sus aplicaciones Java.

Además, Azure Container Apps admite componentes administrados de Spring, como Spring Cloud Service Registry y Spring Cloud Config Server, lo que proporciona una integración perfecta con Spring. Como parte del ecosistema de Azure, puede controlar las cargas de trabajo empresariales con escalado rentable y una administración sofisticada de memoria, lo que lo convierte en ideal para arquitecturas de aplicaciones tradicionales y modernas.

Azure App Service

Azure App Service es una solución de plataforma como servicio (PaaS) proporcionada por Azure. Ofrece un servicio fácil de usar para ejecutar aplicaciones web Java con actualizaciones y revisiones automáticas del sistema operativo y máquina virtual Java (JVM), así como el escalado automático o la supervisión.

App Service puede ejecutar cualquier archivo JAR ejecutable, lo que lo convierte en una alternativa a Azure Container Apps para ejecutar aplicaciones monolíticas de Java sencillas.

También puede implementar cualquier aplicación WAR sobre servidores de aplicaciones populares, como Apache Tomcat o Red Hat JBoss. Esta capacidad hace que sea la mejor solución para ejecutar aplicaciones de Jakarta EE en Azure.

Funciones de Azure

Azure Functions es la plataforma sin servidor proporcionada por Azure y admite la ejecución de cargas de trabajo de Java.

La ejecución de una aplicación Java en Azure Functions normalmente requiere algunas configuraciones y configuraciones secundarias. Por su naturaleza, las funciones sin servidor tienen una vida corta (normalmente unos minutos), por lo que algunos de los servicios que tradicionalmente usaría podrían no ser tan eficaces o prácticos como Azure App Service.

Como resultado, Azure Functions se adapta a las aplicaciones que necesitan una gran cantidad de escalabilidad. Puede detenerlos regularmente para reducir los costos y escalarlos para responder a cargas elevadas.

Azure Kubernetes Service

Azure Kubernetes Service (AKS) es una solución de Kubernetes administrada y protegida proporcionada por Azure. Puede ejecutar cualquier imagen de Docker y se beneficia de pertenecer a todo el ecosistema de Kubernetes. AKS funciona bien si desea entregar aplicaciones nativas de la nube en cualquier lenguaje, incluido Java.

Azure Kubernetes Service es una excelente solución si tiene cargas de trabajo heterogéneos o si desea un control preciso sobre el entorno. AKS ejecuta bien las cargas de trabajo de Java, pero debe compilar y mantener las imágenes de Docker.

Máquinas virtuales de Azure

La ejecución de máquinas virtuales en Azure ofrece la mayor flexibilidad y variedad de opciones. Puede elegir entre varios sistemas operativos, normalmente Windows y las principales distribuciones de Linux. Puede traer su propio software o usar algunas de las imágenes proporcionadas.

En el caso de Java específicamente, se usan principalmente máquinas virtuales para:

  • Instale y ejecute manualmente una aplicación web de Java sobre Windows o Linux.
  • Instale y ejecute Docker o incluso AKS para ejecutar una imagen que contenga una aplicación web de Java.
  • Use una de las ofertas admitidas, como Oracle WebLogic, para ejecutar aplicaciones web java en las máquinas virtuales.

Cuando se usan máquinas virtuales de Azure, no hay ningún límite para lo que se puede instalar y ejecutar, ya que tiene control total sobre ellas. Sin embargo, el principal inconveniente de las máquinas virtuales es que es necesario mantenerlas y protegerlas. En el caso de las máquinas virtuales, este trabajo de mantenimiento es su responsabilidad.