Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Quarkus
  3. Déployer dans Microsoft Azure
Extrait - Quarkus Développer des applications microservices en Java pour le cloud et Kubernetes
Extraits du livre
Quarkus Développer des applications microservices en Java pour le cloud et Kubernetes Revenir à la page d'achat du livre

Déployer dans Microsoft Azure

Azure Functions

Microsoft Azure est le cloud public de Microsoft.

Azure Functions est la solution serverless de Function-as-a-Service (FaaS) de Microsoft Azure.

Quarkus propose l’écriture de fonctions Azure via l’extension Quarkus Azure Functions HTTP qui permet l’écriture de fonctions avec l’une des API HTTP de Quarkus. Cette extension permet d’utiliser toutes les fonctionnalités de Quarkus pour le développement d’une fonction Azure Functions.

Le déploiement d’une fonction Azure Functions nécessite la CLI az.

Vous obtiendrez plus d’informations sur son utilisation dans la documentation de la CLI az : https://learn.microsoft.com/fr-fr/cli/azure/install-azure-cli

Il est possible de développer une fonction Azure avec l’un des frameworks HTTP de Quarkus : RESTEasy Classic ou Reactive, Undertow (pour le développement de Servlet), Reactive Routes, Spring Web ou Funqy HTTP. Funqy sera vu en détail dans le chapitre Funqy : des fonctions portables.

L’extension Azure Functions peut être ajoutée à votre application via :

  • la CLI Quarkus :

quarkus extension add azure-functions-http 
  • le plugin Maven :

mvn quarkus:add-extension -Dextensions="azure-functions-http" 

Ceci va ajouter la dépendance Maven suivante :

<dependency> 
  <groupId>io.quarkus</groupId> 
  <artifactId>quarkus-azure-functions-http</artifactId> 
</dependency> 

L’écriture de la fonction se fait alors via l’API de l’extension HTTP utilisée. Il est même possible de mélanger les extensions HTTP si nécessaire.

L’archétype Maven va générer...

Azure App Service

App Services est une plateforme d’hébergement d’applications web fournie par Microsoft Azure. C’est une offre de type PaaS (Platform-as-a-Service) et serverless : il n’y a pas à se soucier de la mise à disposition des serveurs ni de leur dimensionnement.

Dans cette section, nous allons déployer dans App Services une application Quarkus Hello World qui peut être créée via la ligne de commande suivante :

quarkus create app \ 
    fr.loicmathieu.eni.quarkus:chapitre-12-app-services 

Le déploiement dans App Services se fait via Maven. Il faut ajouter le plugin azure-webapp-maven-plugin au fichier pom.xml dans la section <build><plugins> :

<plugin> 
  <groupId>com.microsoft.azure</groupId> 
  <artifactId>azure-webapp-maven-plugin</artifactId> 
  <version>2.5.0</version> 
</plugin> 

Ce plugin nécessite plusieurs propriétés de configuration. Le plus simple est de lancer la commande mvn azure-webapp:config qui va permettre de créer la configuration par défaut. Faites attention à bien sélectionner Java 17 comme version de Java puisque c’est la version configurée lors de la création du projet.

La commande mvn azure-webapp:config va générer un nom unique d’application...

Azure Container Apps

Container Apps est une plateforme d’exécution de conteneur fournie par Microsoft Azure. C’est une offre de type CaaS (Container-as-a-Service) et serverless : il n’y a pas à se soucier de la mise à disposition des serveurs ni de leur dimensionnement.

Dans cette section, nous allons déployer dans Container Apps une application Quarkus Hello World qui peut être créée via la ligne de commande suivante :

quarkus create app \ 
    fr.loicmathieu.eni.quarkus:chapitre-12-container-apps 

Container Apps va déployer une application comme un conteneur, il va donc nécessiter un fichier Dockerfile à la racine du projet.

Tout d’abord, il faut construire l’application localement via quarkus build ou mvn package, puis copier le fichier Dockerfile nécessaire à la racine du projet. Voici un exemple pour un déploiement JVM :

cp src/main/docker/Dockerfile.jvm Dockerfile 

Pour déployer une application comme une image native, il faut construire localement via quarkus build --native ou mvn package -Dnative, puis copier le fichier src/main/docker/Dockerfile.native à la racine du projet.

Ensuite, il faut construire l’image Docker localement. Pour cela, vous pouvez utiliser la commande suivante :

docker build . -t chapitre-12-container-apps 

Pour déployer cette image dans Container Apps...