Choisir la bonne destination
Nous avons décrit les options disponibles pour le déploiement d’une application Java sur le cloud et, plus précisément sur Azure. Mais quelle est l’option qui répond le mieux à vos besoins spécifiques ? Voici un guide pour vous aider à choisir.
Solution PaaS ou contrôle de l’infrastructure ?
La première question à vous poser est : avez-vous besoin d’un contrôle total sur votre application ou voulez-vous utiliser une solution PaaS (platform as a service) ? Votre réponse dépend généralement des besoins de l’équipe avec laquelle vous travaillez.
Les solutions PaaS sont plus faciles à utiliser. De nombreuses équipes les préfèrent, car elles offrent des coûts réduits, une meilleure fiabilité et une plus grande sécurité.
Les équipes choisissent les solutions PaaS pour les raisons suivantes :
- Elles ont besoin de passer rapidement en production et leur équipe des opérations est limitée voire carrément inexistante.
- Elles ont certaines exigences en matière de haute disponibilité, de sécurité ou de conformité, et peuvent satisfaire ces besoins par des fonctionnalités prêtes à l’emploi fournies par un service managé.
- Elles ne disposent peut-être pas des ressources ou de la volonté nécessaires pour assurer la maintenance d’une infrastructure de niveau production.
Par ailleurs, certaines équipes préfèrent conserver un contrôle total sur leur infrastructure, principalement pour les raisons suivantes :
- Vous utilisez un logiciel propriétaire spécifique ou des fonctionnalités Java peu courantes. Un service managé ne sera alors peut-être pas adapté à vos besoins. Si, par exemple, vous voulez recourir à la diffusion réseau pour rechercher les nœuds de votre application, sachez que cette fonctionnalité n’est pas disponible sur un service géré.
- Vous voulez utiliser une bibliothèque native spécifique qui ne peut pas s’exécuter sur un service géré.
Choisir une solution PaaS sur Azure
Azure propose quatre options pour exécuter des charges de travail Java sur une solution PaaS :
- Azure Functions : option idéale pour des charges de travail simples pilotées par les événements, parfaitement scalables.
- Azure App Service : Idéal pour exécuter des charges de travail Jakarta EE.
- Azure Spring Apps : option idéale pour exécuter des applications Spring Boot, et plus particulièrement des microservices Spring Cloud.
Choisir le contrôle de l’infrastructure sur Azure
Pour garder un contrôle total sur vos déploiements, Azure propose les deux principales options suivantes :
- Azure Container Apps : Idéal pour exécuter de simples applications monolithiques Java basées sur des conteneurs.
- Azure Kubernetes Service (AKS) : Idéal pour de plus complexes applications Java basées sur des conteneurs. Vous tirez également parti du riche écosystème AKS.
- Machines virtuelles Azure : option idéale pour exécuter tout type de charge de travail ou effectuer un « lift-and-shift » à partir d’une infrastructure locale existante sans remanier vos applications.
Derniers mots pour faciliter la prise de décision
Le choix d’une destination n’est qu’une première étape. Pour choisir votre service, gardez à l’esprit les points suivants :
- Vos tâches de maintenance varient considérablement selon le type de service que vous choisissez et l’ensemble des compétences de votre propre équipe des opérations.
- Vos développeurs vont utiliser la plateforme tous les jours et seront plus productifs si ce service offre une excellente expérience de développement.
Pour ces deux points, votre choix dépend de l’équipe que vous avez. La bonne pratique consiste à choisir une destination qui correspond à l’expertise et aux préférences de votre équipe.