Déployez des applications Java en toute confiance et en toute simplicité
L'écosystème Java comprend diverses technologies telles que Java SE, Jakarta EE (successeur de Java EE et J2EE), Spring, de nombreux serveurs d'applications et d'autres frameworks. Quoi que vous fassiez avec Java - création d'une application, utilisation d'un framework et exécution d'un serveur d'applications - Azure prend en charge votre charge de travail avec une abondance de choix. De même, Azure prend en charge n'importe quelle architecture d'application - des applications monolithiques s'exécutant sur des machines virtuelles ou dans des conteneurs aux applications cloud-natives, basées sur des microservices et s'exécutant sur des services entièrement gérés.
Généralement, pour exécuter votre application Java, vous la déployez sur un serveur d'applications - une instance de la machine virtuelle Java (JVM) qui exécute vos applications. Vous pouvez également créer une application autonome avec un serveur d'application intégré. Dans les deux cas, le serveur d'application fournit une infrastructure d'application commune et des capacités fonctionnelles, en collaborant avec les conteneurs Web pour renvoyer une réponse dynamique et personnalisée à une requête du client. La requête du client peut être traitée à l'aide de composants logiciels qui peuvent inclure des servlets, des pages dynamiques, des beans d'entreprise, des classes de support, des bibliothèques dépendantes et des pilotes de données.
Tomcat, JBoss EAP, WildFly, WebLogic et WebSphere sont des serveurs d'applications populaires. De même, Spring Boot, Quarkus et Open Liberty sont des frameworks populaires pour la création d'applications autonomes avec des serveurs d'applications intégrés. Azure les prend tous en charge, ce qui vous permet d'utiliser n'importe quel serveur d'application Java et de déployer votre application Java en toute confiance et en toute simplicité.
Déployez Spring Boot ou une application Java sur n'importe quel serveur d'application - Tomcat et Jakarta EE.
Avec Azure, vous pouvez utiliser n'importe quelle version et n'importe quelle distribution de Java et n'importe quel serveur d'application, sans restrictions et sans avoir à gérer votre propre infrastructure physique. Vous décidez du degré de contrôle que vous souhaitez exercer ou de la gestion quotidienne qu'Azure doit assurer pour vous grâce à des options telles que les machines virtuelles, les conteneurs et les services entièrement gérés. Si vous utilisez des serveurs d'applications ou des frameworks Java pris en charge commercialement, tels que VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server, IBM WebSphere, Liberty ou OpenLiberty, Azure propose des offres développées et prises en charge conjointement pour chacun d'entre eux.
Options de déploiement
Azure offre une multitude d'options de déploiement pour les applications Java, notamment des services d'hébergement de type infrastructure-as-a-service (IaaS), conteneurs-as-a-service (CaaS) et plateforme-as-a-service (PaaS). Vous pouvez transférer des applications Java existantes vers des machines virtuelles (VM), les conteneuriser de différentes manières ou les déployer sur des services PaaS entièrement gérés afin d'optimiser la facilité de gestion, la productivité des développeurs et des opérations, ainsi que le coût total de possession.
Machines virtuelles et conteneurs
Vous êtes libre d'utiliser n'importe quelle distribution et version de Java - et n'importe quel serveur d'application - lorsque vous les déployez sur des machines virtuelles ou des conteneurs sur Azure. Le choix vous appartient entièrement. N'oubliez pas que vous devez configurer manuellement l'infrastructure et ses composants. Les options de déploiement qui entrent dans cette catégorie sont les suivantes :
Les machines virtuelles Azure, qui vous offrent la flexibilité de la virtualisation sans avoir à acheter et à entretenir le matériel physique qui l'exécute. Cependant, vous devez toujours assurer la maintenance de la machine virtuelle en installant, en configurant et en patchant le logiciel qui s'exécute dessus.
Azure Virtual Machine Scale Sets, qui vous permet de créer et de gérer un groupe de machines virtuelles à charge équilibrée. Le nombre d’instances de machine virtuelle peut augmenter ou diminuer automatiquement en fonction d’une demande ou d’un calendrier défini.
Azure Kubernetes Service (AKS), qui simplifie le déploiement d'un cluster Kubernetes géré en gérant pour vous l'ensemble des frais généraux opérationnels - y compris les tâches critiques comme la maintenance et le suivi de l'intégrité. AKS prend en charge le provisionnement élastique de la capacité, y compris l'autoscaling piloté par événement et les déclencheurs KEDA.
Azure Red Hat OpenShift, qui fournit des clusters OpenShift hautement disponibles et entièrement gérés à la demande. OpenShift offre des fonctionnalités à valeur ajoutée pour compléter Kubernetes, ce qui en fait une plateforme de conteneurs clé en main qui offre une expérience améliorée aux développeurs et aux opérateurs.
Bien que vous puissiez déployer n'importe quel runtime Java sur tous ces services IaaS et CaaS, nous vous recommandons d'utiliser l'un des runtimes suivants :
Microsoft Build d'OpenJDK pour Java 11 ou 17 - les images de conteneur de base pour lesquelles Microsoft fournit et maintient.
Eclipse Adoptium Temurin pour Java 8 - dont le runtime Java est fourni par le projet Eclipse Adoptium (anciennement projet OpenJDK).
Ces deux versions sont disponibles gratuitement pour le développement et les tests locaux, ainsi que pour la création de binaires prêts pour la production à l'aide de n'importe quelle plateforme ou d'outils DevOps - sans avoir à payer de frais de licence. Nous les recommandons pour des raisons de commodité. Lorsque vous utilisez l'une de ces constructions, si vous avez des problèmes et que vous disposez d'un plan d'assistance admissible pour Azure, vous pouvez ouvrir un ticket d'assistance Azure - sans frais supplémentaires. Cela dit, il convient de souligner que ces recommandations ne sont rien d'autre que les options que nous recommandons parmi d'autres versions gratuites d'OpenJDK pour faciliter l'assistance. Pour plus d’informations, consultez Prise en charge de Java sur Azure et Azure Stack.
Toutes ces options de déploiement IaaS et CaaS vous permettent de déployer facilement le serveur d'application Apache Tomcat. Si vous utilisez une offre commerciale, telle que Spring Runtime de VMware, JBoss EAP de Red Hat, WebLogic Server d'Oracle ou WebSphere d'IBM, Azure propose également des options d'hébergement développées et prises en charge conjointement par ces fournisseurs. Elles sont abordées plus loin, dans la section Solutions élaborées et prises en charge conjointement avec les partenaires de l'écosystème Java.
Services (PaaS) entièrement gérés
Les services PaaS entièrement gérés pour l'exécution d'applications Java sur Azure comprennent les options suivantes :
- Azure Container Apps, qui vous permet d'exécuter des microservices et des applications conteneurisées sur une plateforme sans serveur. Les utilisations courantes comprennent le déploiement de points de terminaison d'API, l'hébergement d'applications de traitement en arrière-plan, la gestion du traitement axé sur les événements et l'exécution de microservices. Les applications construites sur Azure Container Apps peuvent évoluer dynamiquement en fonction du trafic HTTP, du traitement basé sur les événements, de la charge du processeur ou de la mémoire, ou de n'importe quel scaler pris en charge par KEDA.
- Azure App Service, un service basé sur le protocole HTTP pour l'hébergement d'applications Web, d'API REST et de back ends mobiles - avec sécurité intégrée, équilibrage de charge, mise à l'échelle automatique et gestion automatisée. App Service prend également en charge des fonctionnalités DevOps complètes, telles que le déploiement continu, la gestion des packages, les environnements de mise en scène, les domaines personnalisés et les certificats TLS/SSL.
Les runtimes Java pour Azure App Service et pour Azure Container Apps déployés sous forme de code ou de binaires (JAR/WAR) sont fournis et maintenus par Microsoft. Ils ne prennent en charge que les distributions LTS d'OpenJDK, en utilisant Eclipse Adoptium Temurin pour Java 8 et la version Microsoft Build d'OpenJDK pour Java 11 et 17. Cela dit, il y a quelques mises en garde - par exemple, nos offres de partenaires développées et soutenues conjointement (voir plus loin) utilisent leurs propres moteurs d'exécution.
Pour les Container Apps Azure construites à partir de vos propres images de conteneurs, puisque vous devez construire et gérer vos propres images de conteneurs à partir du code source, vous êtes libre d'utiliser la distribution et la version de Java - et le serveur d'application - de votre choix.
Fonctions sans serveur
Parfois, vous n'avez pas besoin d'une application Java complète. Par exemple, pour le traitement de données en temps réel, vous pouvez n'avoir besoin que d'un petit morceau de code qui peut être déclenché à grande échelle, par exemple par des millions et des millions d'événements. Ces événements peuvent être ingérés via Azure Event Hubs, traités par du code Java sans serveur piloté par les événements et s'exécutant à l'échelle dans Azure Functions, et enregistrés dans un magasin de données tel qu'Azure Cosmos DB.
Des solutions élaborées et prises en charge conjointement avec les partenaires de l'écosystème Java
Microsoft s'est associé aux principaux fournisseurs de l'écosystème Java pour proposer les meilleures solutions pour l'exécution de Java sur Azure, depuis les services gérés développés et pris en charge conjointement jusqu'aux offres Azure Marketplace pour les serveurs d'applications Java les plus répandus. Nous avons également intégré des outils de surveillance d'applications populaires, qui sont abordés plus loin dans cette documentation.
JBoss EAP (Red Hat)
Red Hat propose des solutions open source pour les entreprises. L'une de ces solutions est JBoss Enterprise Application Platform (EAP), une plate-forme de serveur d'application populaire qui est certifiée Java EE et conforme à Jakarta EE, tant pour le profil Web que pour la plate-forme complète. Red Hat contribue également aux normes Java, OpenJDK, MicroProfile, Jakarta EE et Quarkus.
Nous nous sommes associés à Red Hat pour proposer Red Hat JBoss Enterprise Application Platform (EAP) sur Azure App Service - permettant aux développeurs Java de déployer leurs applications Jakarta EE dans App Service sans avoir besoin d'un abonnement ou d'une licence Red Hat distincte, avec une assistance intégrée des deux sociétés. Nous avons également lancé des offres conjointes similaires pour JBoss EAP sur les machines virtuelles Azure, sur Azure VM Scale Sets et sur Azure RedHat OpenShift (ARO) - ce dernier étant également exploité conjointement par Microsoft et Red Hat.
WebLogic Server (Oracle)
Nous nous sommes associés à Oracle pour proposer Oracle WebLogic Server (WLS) sur les machines virtuelles Azure et Oracle WebLogic Server sur Azure Kubernetes Service. Ces solutions facilitent les migrations vers Azure en automatisant les opérations classiques telles que le provisionnement des réseaux virtuels/du stockage, l'installation des ressources Linux/Java, la configuration de WebLogic Server et la configuration de la sécurité à l'aide d'un groupe de sécurité réseau.
WebSphere/Liberty/Open Liberty (IBM)
Nous avons établi un partenariat avec IBM, développant conjointement des solutions pour WebSphere Application Server (WAS) sur les machines virtuelles Azure, WebSphere Liberty et Open Liberty sur Azure Kubernetes Service, et WebSphere Liberty et Open Liberty sur Azure Red Hat OpenShift. Pour plus d'informations, consultez la rubrique Quelles sont les solutions permettant d'exécuter la famille de produits IBM WebSphere sur Azure ? Ces solutions permettent de migrer facilement les charges de travail WebSphere vers Azure, en automatisant la plupart des tâches de provisionnement des ressources nécessaires à la mise en place d'un cluster WebSphere hautement disponible. Le partenariat couvre un éventail de cas d'utilisation - des charges de travail critiques existantes aux applications cloud-natives.
Apache Kafka sur Confluent Cloud (Confluent)
Par le passé, les clients Azure qui souhaitaient utiliser le service Kafka de Confluent devaient créer et gérer les ressources et les utilisateurs séparément dans Azure et Confluent Cloud. Pour soulager ces difficultés, Confluent et Microsoft se sont associés pour proposer Apache Kafka for Confluent Cloud, une offre Azure Marketplace qui fournit Apache Kafka en tant que service entièrement géré - y compris la possibilité de créer et de gérer les ressources Confluent Cloud via le portail Azure, Azure CLI ou les SDK de gestion Azure.
Aujourd'hui, l'expérience client est plus simple, plus sûre et plus transparente. Les clients peuvent provisionner et gérer les ressources Confluent Cloud en même temps que leurs ressources Azure, dans le cadre d'un workflow unifié - et profiter de connecteurs entièrement gérés construits pour Azure Functions, Azure Blob Storage, Azure Event Hubs, Azure Data Lake Storage Gen2 et Microsoft SQL Server. Les développeurs peuvent continuer à coder en utilisant les bibliothèques client Apache Kafka.
Résumé
Le développement conjoint avec les partenaires pour un grand nombre de ces offres est un effort continu et permanent. Alors que nos partenaires continuent d'innover dans leurs offres, nous travaillons en étroite collaboration avec eux pour apporter rapidement ces mêmes innovations à Azure - afin que les clients puissent déployer et faire évoluer leurs applications Java avec confiance et facilité.
En résumé, Azure prend en charge votre charge de travail avec une abondance de choix, indépendamment de ce que vous faites avec Java. Vous pouvez créer n'importe quelle application Java, utiliser n'importe quel framework, exécuter n'importe quel serveur d'application et prendre en charge n'importe quelle architecture d'application - des applications monolithiques s'exécutant sur des machines virtuelles ou dans des conteneurs aux applications natives dans le cloud, basées sur des microservices et s'exécutant sur des services entièrement gérés.
Étape suivante
Évoluez grâce à la sécurité de bout en bout, à la surveillance et à l'automatisation.