Partager via


Déployer manuellement une application Java avec Open Liberty/WebSphere Liberty sur un cluster Azure Red Hat OpenShift

Cet article fournit des instructions manuelles étape par étape pour exécuter Open/WebSphere Liberty sur un cluster Azure Red Hat OpenShift. Il vous guide dans la préparation d’une application Liberty, la création de l’image Docker de l’application et l’exécution de l’application conteneurisée sur un cluster Azure Red Hat OpenShift.

Plus précisément, vous apprendrez à réaliser les tâches suivantes :

  • Préparer l’application Liberty
  • Générer l’image de l’application
  • Exécuter l’application conteneurisée sur un cluster Azure Red Hat OpenShift en utilisant l’interface graphique (GUI) et la CLI

Pour une solution plus automatisée qui accélère votre transition vers le cluster Azure Red Hat OpenShift, veuillez consulter la section Déployer IBM WebSphere Liberty et Open Liberty sur Azure Red Hat OpenShift en utilisant l’offre Azure Marketplace.

Pour plus d’informations sur Open Liberty, consultez la page de projet Open Liberty. Pour plus d’informations sur WebSphere Liberty, veuillez consulter la section la page produit WebSphere Liberty.

Cet article vous aide à accéder rapidement au déploiement. Avant de passer en production, vous devez explorer Tuning Liberty.

Si vous souhaitez fournir des commentaires ou travailler étroitement sur vos scénarios de migration avec l’équipe d’ingénierie qui développe WebSphere sur des solutions Azure, répondez à cette courte enquête sur la migration WebSphere et incluez vos coordonnées. L’équipe de gestionnaires de programmes, d’architectes et d’ingénieurs vous contactera rapidement pour établir une collaboration.

Important

Bien qu’Azure Red Hat OpenShift soit conçu, opéré et supporté conjointement par Red Hat et Microsoft pour offrir une expérience de support intégrée, le logiciel que vous exécutez sur Azure Red Hat OpenShift, y compris celui décrit dans cet article, est soumis à ses propres conditions de support et de licence. Pour plus d’informations sur le support pour Azure Red Hat OpenShift, veuillez consulter la section Cycle de vie du support pour Azure Red Hat OpenShift 4. Pour plus d’informations sur le support du logiciel décrit dans cet article, consultez les pages principales de ce logiciel telles que listées dans l’article.

Remarque

Azure Red Hat OpenShift requiert a minimum de 40 cœurs pour créer et exécuter un cluster OpenShift. Le quota de ressources Azure par défaut pour un nouvel abonnement Azure ne répond pas à cette exigence. Pour demander une augmentation de votre limite de ressources, consultez Quota standard : augmenter les limites par série de machines virtuelles. Notez que l’abonnement d’essai gratuit n’est pas éligible à une augmentation de quota. Passez à un abonnement Paiement à l’utilisation avant de demander une augmentation de quota.

Prérequis

  • Une machine locale avec un système d’exploitation de type Unix installé, par exemple, Ubuntu, macOS ou Windows Subsystem for Linux.

  • Implémentation java Édition Standard (SE), version 17 , par exemple Eclipse Open J9.

  • Maven, version 3.9.8 ou une version plus récente.

  • Docker pour votre système d’exploitation.

  • Azure CLI, version 2.61.0 ou ultérieure.

  • Un cluster Azure Red Hat OpenShift 4. Pour créer le cluster, suivez les instructions dans Créer un cluster Azure Red Hat OpenShift 4 en utilisant les instructions suivantes :

    • Bien que l’étape « Obtenir un secret de récupération Red Hat » soit étiquetée comme facultative, elle est requise pour cet article. Le secret d’extraction permet à votre cluster Azure Red Hat OpenShift de trouver l’opérateur Open Liberty.

    • Les variables d’environnement suivantes définies dans Créer un cluster Azure Red Hat OpenShift 4 sont utilisées plus tard dans cet article :

      • RESOURCEGROUP : le nom du groupe de ressources dans lequel le cluster est déployé.
      • CLUSTER : le nom du cluster.
    • Si vous envisagez d’exécuter des applications gourmandes en mémoire sur le cluster, spécifiez la taille de machine virtuelle appropriée pour les nœuds Worker à l’aide du paramètre --worker-vm-size. Pour plus d’informations, consultez les articles suivants :

  • Connectez-vous au cluster en suivant les étapes de Connexion à un cluster Azure Red Hat OpenShift 4 en utilisant les instructions suivantes :

    • Assurez-vous de suivre les étapes de « Installer la CLI OpenShift » car vous utiliserez la commande oc plus loin dans cet article.
    • Mettez de côté l’URL de la console du cluster. Il doit ressembler à https://console-openshift-console.apps.<random>.<region>.aroapp.io/.
    • Notez les informations d’identification de kubeadmin.
    • Veillez à suivre les étapes décrites dans « Se connecter à l’aide de l’interface de ligne de commande OpenShift » avec les informations d’identification kubeadmin.

Installer l’opérateur Open Liberty OpenShift

Après avoir créé et connecté au cluster, utilisez les étapes suivantes pour installer l’Open Liberty Operator. La page de démarrage principale de l’opérateur Open Liberty se trouve sur GitHub.

  1. Connectez-vous à la console web OpenShift à partir de votre navigateur en utilisant les informations d’identification de kubeadmin.

  2. Accédez à Opérateurs>OperatorHub et recherchez Open Liberty.

  3. Sélectionnez Ouvrir Liberty dans les résultats de la recherche.

  4. Sélectionnez Installer.

  5. Sur la page Installer l’Operator, utilisez les étapes suivantes :

    1. Pour mettre à jour le canal, sélectionnez le dernier canal v1.4.
    2. Pour Mode d’installation, sélectionnez Tous les espaces de noms sur le cluster (par défaut).
    3. Pour Approbation de mise à jour, sélectionnez Automatique.

    Capture d’écran de la console web OpenShift montrant la page Installer l’Operator.

  6. Sélectionnez Installer et patientez quelques minutes jusqu’à la fin de l’installation.

  7. Observez que l’Open Liberty Operator est installé avec succès et prêt à être utilisé. S’il n’est pas prêt, diagnostiquez et résolvez le problème avant de continuer.

    Capture d’écran de la console web OpenShift montrant la boîte de dialogue Operator installé.

Remarque

Ce guide installe l’Open Liberty Operator pour gérer les applications Liberty sur le cluster Azure Red Hat OpenShift. Si vous souhaitez utiliser le WebSphere Liberty Operator, suivez les étapes de Installation de l’opérateur WebSphere Liberty pour installer le WebSphere Liberty Operator sur le cluster.

Créer un espace de noms OpenShift pour l’application Java

Utilisez les étapes suivantes pour créer un espace de noms OpenShift à utiliser avec votre application :

  1. Assurez-vous que vous êtes connecté à la console web OpenShift depuis votre navigateur en utilisant les identifiants kubeadmin.

  2. Accédez à Administration>Espaces de noms>Créer un espace de noms.

  3. Renseignez open-liberty-demo pour le nom et sélectionnez Créer, comme indiqué ci-dessous.

    Capture d’écran de la console web OpenShift montrant la boîte de dialogue Créer un espace de noms.

Créer un serveur flexible Azure Database pour MySQL

Le modèle de déploiement Azure Database for MySQL Flexible Server est un mode de déploiement conçu pour offrir un contrôle plus granulaire et une flexibilité accrue sur les fonctions de gestion et les paramètres de configuration de la base de données que le mode de déploiement Azure Database for MySQL single server. Cette section vous montre comment créer une instance Azure Database for MySQL Flexible Server en utilisant l’Azure CLI. Pour plus d’informations, veuillez consulter la section Démarrage rapide : Créer une instance d’Azure Database for MySQL - Flexible Server en utilisant l’Azure CLI.

Exécutez la commande suivante dans votre terminal pour créer une instance Azure Database for MySQL Flexible Server. Remplacez <server-admin-password> par un mot de passe qui respecte les exigences de complexité de mot de passe pour Azure Database for MySQL Flexible Server.

az mysql flexible-server create \
    --name ${CLUSTER} \
    --resource-group ${RESOURCEGROUP} \
    --admin-user admin${RESOURCEGROUP} \
    --admin-password '<server-admin-password>' \
    --database-name ${RESOURCEGROUP}db \
    --public-access 0.0.0.0 \
    --yes

Remarque

Cet article vous guide pour créer un serveur flexible Azure Database pour MySQL avec l’authentification MySQL. Une pratique plus sécurisée consiste à utiliser l’authentification Microsoft Entra pour authentifier la connexion au serveur de base de données. Azure Red Hat OpenShift ne prend actuellement pas en charge ID de charge de travail Microsoft Entra. L’authentification MySQL est donc la seule option disponible.

Si vous recevez un message d’erreur Aucune référence SKU disponible dans cet emplacement, spécifiez un autre emplacement à l’aide du --location paramètre et réessayez. Utilisez la commande suivante pour lister les SKU disponibles dans un emplacement spécifique :

az mysql flexible-server list-skus --location <location>

Recherchez un emplacement avec des références SKU disponibles, puis répétez la commande précédente az mysql flexible-server create , mais ajoutez le paramètre approprié --location <location> , en laissant tous les autres paramètres inchangés.

Il faut quelques minutes pour créer le serveur, la base de données, l’utilisateur administrateur et la règle de pare-feu qui accepte les connexions de toutes les ressources Azure. Si la commande réussit, la sortie ressemble à l’exemple suivant :

{
  "connectionString": "mysql <database-name> --host <server-name>.mysql.database.azure.com --user <server-admin-username> --password=<server-admin-password>",
  "databaseName": "<database-name>",
  "firewallName": "AllowAllAzureServicesAndResourcesWithinAzureIps_2024-7-10_16-22-8",
  "host": "<server-name>.mysql.database.azure.com",
  "id": "/subscriptions/REDACTED/resourceGroups/<resource-group-of-the-OpenShift-cluster>/providers/Microsoft.DBforMySQL/flexibleServers/<server-name>",
  "location": "West US",
  "password": "<server-admin-password>",
  "resourceGroup": "<resource-group-of-the-OpenShift-cluster>",
  "skuname": "Standard_B1ms",
  "username": "<server-admin-username>",
  "version": "5.7"
}

Préparer l’application Liberty

Nous utilisons une application Java EE 8 comme exemple dans ce guide. Open Liberty est un serveur compatible avec le profil complet Java EE 8, de sorte qu’il peut facilement exécuter l’application. Open Liberty est également compatible avec le profil complet Jakarta EE 8.

Exécuter l’application sur Open Liberty

Pour exécuter l’application sur Open Liberty, vous devez créer un fichier config de serveur Open Liberty pour que le plug-in Liberty Maven puisse empaqueter l’application pour le déploiement. Le plugin Liberty Maven n’est pas requis pour déployer l’application sur OpenShift. Cependant, nous l’utilisons dans cet exemple avec le mode développeur (dev) d’Open Liberty. Le mode développeur vous permet d’exécuter facilement l’application localement. Pour en savoir plus sur le liberty-maven-plugin, consultez Building a web application with Maven.

Suivez les étapes de cette section pour préparer l’exemple d’application en vue d’une utilisation ultérieure dans cet article. Ces étapes utilisent Maven et le liberty-maven-plugin.

Extraire l’application

Utilisez les commandes suivantes pour cloner le code exemple pour ce guide. L’exemple se trouve sur GitHub.

git clone https://github.com/Azure-Samples/open-liberty-on-aro.git
cd open-liberty-on-aro
export BASE_DIR=$PWD
git checkout 20240920
cd ${BASE_DIR}/3-integration/connect-db/mysql

Si un message vous signale que vous allez passer à l’état « detached HEAD », vous pouvez ignorer ce message sans risque. Cela signifie simplement que vous avez modifié une étiquette.

Il existe quelques exemples dans le référentiel. Nous utilisons open-liberty-on-aro/3-integration/connect-db/mysql. Voici la structure des fichiers de l’application :

open-liberty-on-aro/3-integration/connect-db/mysql
├─ src/main/
│  ├─ aro/
│  │  ├─ db-secret.yaml
│  │  ├─ openlibertyapplication.yaml
│  ├─ liberty/config/
│  │  ├─ server.xml
│  ├─ java/
│  ├─ resources/
│  ├─ webapp/
├─ Dockerfile
├─ Dockerfile-wlp
├─ pom.xml

Les répertoires java, resources et webapp contiennent le code source de l’exemple d’application. Le code déclare et utilise une source de données nommée jdbc/JavaEECafeDB.

Dans le répertoire aro, nous avons placé deux fichiers de déploiement. db-secret.xml est utilisé pour créer des Secrets avec les identifiants de connexion à la base de données. Le fichier openlibertyapplication.yaml est utilisé pour déployer l’image de l’application.

Dans le répertoire racine, nous avons placé deux fichiers Dockerfile. Dockerfile et Dockerfile-wlp sont utilisés pour le débogage local et pour créer l’image pour un déploiement sur Azure Red Hat OpenShift, travaillant respectivement avec Open Liberty et WebSphere Liberty.

Dans le répertoire liberty/config, le fichier server.xml est utilisé pour configurer la connexion à la base de données pour le cluster Open Liberty et WebSphere Liberty.

Créer le projet

En utilisant les variables d’environnement définies précédemment, exécutez les commandes suivantes dans votre terminal pour construire le projet. La fichier POM du projet lit de nombreuses propriétés de l’environnement.

cd ${BASE_DIR}/3-integration/connect-db/mysql

# The following variables are used for deployment file generation
export DB_SERVER_NAME=$CLUSTER.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=${RESOURCEGROUP}db
export DB_USER=admin${RESOURCEGROUP}
export DB_PASSWORD='<server-admin-password>'
export NAMESPACE=open-liberty-demo

mvn clean install

(Facultatif) Tester votre application localement

Vous pouvez éventuellement exécuter l’application localement pour vérifier qu’elle fonctionne comme prévu. Tout d’abord, vous devez ajouter une règle de pare-feu pour permettre à votre machine locale de se connecter à l’instance Azure Database for MySQL Flexible Server. Utilisez les étapes suivantes pour ajouter la règle de pare-feu :

  1. Connectez-vous au portail Azure et accédez à l’instance Azure Database for MySQL Flexible Server que vous avez créée précédemment.
  2. Dans le volet de gauche, sélectionnez Paramètres>Réseaux.
  3. Sélectionnez Ajouter l’adresse IP actuelle du client.
  4. Sélectionnez Enregistrer et attendez que la règle de pare-feu soit ajoutée.

Utilisez les étapes suivantes pour exécuter la commande liberty:devc pour exécuter et tester localement le projet et l’image du conteneur avant de traiter toute complexité Azure. Pour plus d’informations sur liberty:devc, consultez la documentation du plug-in Liberty.

  1. Démarrez votre environnement Docker local si nécessaire. Les instructions relatives à cette opération varient selon le système d’exploitation hôte.

  2. Utilisez les commandes suivantes pour démarrer l’application en mode liberty:devc :

    cd ${BASE_DIR}/3-integration/connect-db/mysql
    
    # If you are running with Open Liberty
    mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile
    
    # If you are running with WebSphere Liberty
    mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile-wlp
    
  3. Vérifiez que l’application fonctionne comme prévu. Vous devriez voir un message similaire à [INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds. dans la sortie de la commande en cas de réussite. Rendez-vous à l’adresse https://localhost:9443/ dans votre navigateur et vérifiez que l’application est accessible et que toutes les fonctions fonctionnent.

  4. Pour arrêter le mode liberty:devc, appuyez sur Control+C.

Préparer l’image de l’application

Pour déployer et exécuter votre application Liberty sur un cluster Azure Red Hat OpenShift, conteneurisez votre application en tant qu’image Docker en utilisant les images de conteneur Open Liberty ou les images de conteneur WebSphere Liberty.

Générer l’application et effectuer un push dans le flux d’image

Puisque vous avez déjà exécuté avec succès l’application dans le conteneur Docker Liberty en utilisant la commande liberty:devc, vous allez construire l’image à distance sur le cluster en utilisant les étapes suivantes :

  1. Assurez-vous de vous connecter à la CLI OpenShift en utilisant les identifiants kubeadmin.

  2. Utilisez les commandes suivantes pour identifier le répertoire source et le Dockerfile :

    cd ${BASE_DIR}/3-integration/connect-db/mysql
    
    # If you are building with the Open Liberty base image, the existing Dockerfile is ready for you
    
    # If you are building with the WebSphere Liberty base image, uncomment and execute the following two commands to rename Dockerfile-wlp to Dockerfile
    # mv Dockerfile Dockerfile.backup
    # mv Dockerfile-wlp Dockerfile
    
  3. Utilisez la commande suivante pour changer de projet vers open-liberty-demo :

    oc project open-liberty-demo
    
  4. Utilisez la commande suivante pour créer un flux d’images :

    oc create imagestream javaee-cafe-mysql
    
  5. Utilisez la commande suivante pour créer une configuration de build qui spécifie la balise de flux d’images de la sortie de build :

    oc new-build --name javaee-cafe-mysql-config --binary --strategy docker --to javaee-cafe-mysql:v1
    
  6. Utilisez la commande suivante pour démarrer la build afin de charger le contenu local, conteneuriser et générer dans la balise de flux d’images spécifiée précédemment :

    oc start-build javaee-cafe-mysql-config --from-dir . --follow
    

Déployer l’application sur le cluster Azure Red Hat OpenShift

Vous pouvez maintenant déployer l’application Liberty d’exemple sur le cluster Azure Red Hat OpenShift que vous avez créé précédemment lors du travail sur les conditions préalables.

Déployer l’application à partir de la console Web

Étant donné que nous utilisons l’Open Liberty Operator pour gérer les applications Liberty, nous devons créer une instance de sa Définition de ressource personnalisée, de type OpenLibertyApplication. L’Operator prend en charge tous les aspects de la gestion des ressources OpenShift nécessaires au déploiement. Utilisez les étapes suivantes pour créer cette instance :

  1. Connectez-vous à la console web OpenShift à partir de votre navigateur en utilisant les informations d’identification de kubeadmin.

  2. Sélectionnez le projet en visitant Accueil>Projets>open-liberty-demo.

  3. Accédez à Workloads (Charges de travail)>Secrets.

  4. Sélectionnez Create (Créer)> From YAML (À partir de YAML).

  5. Remplacez le yaml généré par le vôtre, qui est situé à <chemin-vers-repo>/3-integration/connect-db/mysql/target/db-secret.yaml.

  6. Sélectionnez Créer. Vous revenez à la page de détails du Secret.

  7. Accédez à Opérateurs>Opérateurs installés.

  8. Au milieu de la page, vous voyez Open Liberty.

  9. Dans APIs fournies, sélectionnez OpenLibertyApplication. La navigation dans les éléments de l’interface utilisateur reflète la hiérarchie réelle de confinement des technologies utilisées.

    Diagramme de confinement Java Azure Red Hat OpenShift.

  10. Sélectionnez Créer OpenLibertyApplication.

  11. Sélectionnez affichage YAML pour Configurer via.

  12. Remplacez le yaml généré par le vôtre, qui est situé à <chemin-vers-repo>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.

  13. Sélectionnez Créer. Vous revenez à la liste des OpenLibertyApplications.

  14. Accédez à Operators>Operators installés>Open Liberty>OpenLibertyApplication.

  15. Sélectionnez javaee-cafe-mysql.

  16. Au milieu de la page, sélectionnez Ressources.

  17. Dans le tableau, sélectionnez le lien pour javaee-cafe-mysql avec le type Route (Itinéraire).

  18. Sur la page qui s’ouvre, sélectionnez le lien sous Emplacement.

La page d’accueil de l’application s’ouvre dans le navigateur.

Supprimer l’application à partir de la console Web

Lorsque vous avez terminé avec l’application, utilisez les étapes suivantes pour supprimer l’application d’OpenShift :

  1. Dans le volet de navigation gauche, développez l’entrée pour Opérateurs.
  2. Sélectionnez Opérateurs installés.
  3. Sélectionnez Open Liberty.
  4. Au milieu de la page, sélectionnez OpenLibertyApplication.
  5. Pour javaee-cafe-mysql, sélectionnez l’ellipse verticale (trois points verticaux) puis sélectionnez Supprimer OpenLibertyApplication.
  6. Sélectionnez Supprimer pour supprimer l’application.

Utilisez les étapes suivantes pour supprimer le secret d’OpenShift :

  1. Accédez à Workloads (Charges de travail)>Secrets.
  2. Sélectionnez db-secret-mysql.
  3. Sélectionnez Actions>Supprimer Secret.
  4. Sélectionnez Supprimer pour supprimer le secret.

Nettoyer les ressources

Supprimez le cluster Azure Red Hat OpenShift en suivant les étapes de Tutoriel : Supprimer un cluster Azure Red Hat OpenShift 4. Assurez-vous que la base de données et toutes les ressources associées sont également supprimées.

Étapes suivantes

Vous pouvez en savoir plus sur les références utilisées dans ce guide :

Pour explorer les options d’exécution des produits WebSphere sur Azure, veuillez consulter la section Quelles sont les solutions pour exécuter la famille de produits WebSphere sur Azure ?