Comparer les solutions
Nous avons décrit les types de déploiement les plus classiques pour les applications Java. Voyons maintenant quel service Azure peut fonctionner le mieux, en fonction du type de déploiement dont vous avez besoin.
Azure Container Apps (Applications de Conteneur Azure)
Azure Container Apps vous permet de vous concentrer sur la génération d’applications Java conteneurisées, qu’elles soient monolithiques ou de microservices, sans devoir gérer une infrastructure. Vous pouvez déployer des fichiers JAR, WAR et même du code source. La plateforme optimise automatiquement la mémoire et met à l’échelle vos applications en fonction de la demande. Elle intègre également des fonctionnalités de diagnostic avancées pour résoudre des problèmes Machine virtuelle Java (JVM), ce qui garantit un niveau de performance optimal de vos applications Java.
En outre, Azure Container Apps prend en charge les composants Spring managés tels que Spring Cloud Service Registry et Spring Cloud Config Server, ce qui offre une intégration Spring transparente. Dans le cadre de l’écosystème Azure, il peut gérer les charges de travail d’entreprise avec une mise à l’échelle rentable et une gestion sophistiquée de la mémoire, ce qui le rend idéal pour les architectures d’application traditionnelles et modernes.
Azure App Service
Azure App Service est une solution PaaS (Platform as a Service) fournie par Azure. Il offre un service facile à utiliser pour l’exécution d’applications web Java avec des mises à jour et des correctifs automatiques de système d’exploitation et de machine virtuelle Java (JVM), ainsi que la mise à l’échelle automatique ou la surveillance.
App Service peut exécuter n’importe quel fichier JAR exécutable, ce qui en fait une alternative à Azure Container Apps pour exécuter des applications monolithiques Java simples.
Il peut également déployer n’importe quelle application WAR sur des serveurs d’applications populaires tels qu’Apache Tomcat ou Red Hat JBoss. Cette fonctionnalité permet d’optimiser l’exécution d’applications Jakarta EE sur Azure.
Les fonctions Azure
Azure Functions est la plateforme serverless fournie par Azure et prend en charge l’exécution de charges de travail Java.
L'exécution d'une application Java sur Azure Functions nécessite généralement une configuration et un paramétrage mineurs. Par leur nature, les fonctions serverless ont des vies courtes (généralement quelques minutes), de sorte que certains des services que vous utilisez traditionnellement peuvent ne pas être aussi efficaces ou pratiques qu’Azure App Service.
Par conséquent, Azure Functions est adapté aux applications qui ont besoin d’une grande quantité d’extensibilité. Vous pouvez les arrêter régulièrement pour réduire les coûts et augmenter leur capacité pour répondre à des charges élevées.
Azure Kubernetes Service
Azure Kubernetes Service (AKS) est une solution Kubernetes managée et sécurisée fournie par Azure. Il peut exécuter n’importe quelle image Docker et il bénéficie de l’appartenance à l’ensemble de l’écosystème Kubernetes. AKS fonctionne bien si vous souhaitez fournir des applications natives cloud dans n’importe quel langage, y compris Java.
Azure Kubernetes Service est une excellente solution si vous avez des charges de travail hétérogènes ou si vous souhaitez un contrôle précis sur votre environnement. AKS exécute correctement les charges de travail Java, mais vous devez générer et gérer vos images Docker.
Machines virtuelles Azure
L’exécution de machines virtuelles sur Azure vous offre la plus grande flexibilité et la plus grande variété d’options. Vous pouvez choisir entre plusieurs systèmes d’exploitation, généralement Windows et les principales distributions Linux. Vous pouvez apporter votre propre logiciel ou utiliser certaines des images fournies.
Pour Java spécifiquement, vous utilisez principalement des machines virtuelles pour :
- Installez et exécutez manuellement une application web Java sur Windows ou Linux.
- Installez et exécutez Docker ou même AKS pour exécuter une image qui contient une application web Java.
- Utilisez l’une des offres prises en charge, comme Oracle WebLogic, pour exécuter des applications web Java sur vos machines virtuelles.
Lorsque vous utilisez des machines virtuelles Azure, il n’existe aucune limite à ce que vous pouvez installer et exécuter, car vous avez un contrôle total sur ces machines virtuelles. Toutefois, l’inconvénient principal des machines virtuelles est que vous devez les maintenir et les sécuriser. Pour les machines virtuelles, ce travail de maintenance est votre responsabilité.