Pour déployer des applications Java d’entreprise avec des serveurs Red Hat JBoss Enterprise Application Platform (EAP) sur Red Hat OpenShift, les développeurs ont généralement besoin d’apprendre à utiliser des modèles OpenShift ou des opérateurs pour spécifier les ressources Kubernetes et OpenShift telles que la configuration de build, le déploiement, le volume, l’environnement variables et image de l’application. Cet article, le premier d’une série en deux parties, explique un moyen plus simple de déployer une application Java d’entreprise sur OpenShift à l’aide de graphiques Helm et comment connecter l’application à une base de données PostgreSQL.
Helm : Simplifier le déploiement d’applications sur Kubernetes
Les pratiques de déploiement ne sont pas familières aux développeurs d’applications car la définition des ressources est traditionnellement déterminée par l’équipe d’exploitation informatique. Lorsqu’ils entrent rapidement dans l’ère DevOps, les développeurs doivent assumer davantage de responsabilités pour définir les ressources appropriées en alignement avec les microservices cloud.
Pour résoudre ces problèmes pour les développeurs, Helm a été conçu pour simplifier le déploiement d’applications sur Kubernetes. Helm est un gestionnaire de packages logiciels similaire au gestionnaire de packages DNF de Fedora et au gestionnaire de packages Windows. Les gestionnaires de packages permettent aux développeurs d’installer des outils logiciels et de les maintenir (par exemple, mise à niveau, suppression et correctif) rapidement à l’aide d’une interface de ligne de commande ou d’une interface utilisateur graphique (GUI).
Les développeurs peuvent installer une collection particulière de fichiers représentant les ressources Kubernetes à l’aide d’un graphique Helm. Lorsque la carte est installée, elle est gérée par une version. Le développeur peut supprimer ou mettre à niveau la version à la demande pour apporter des modifications au déploiement de l’application.
OpenShift prend également en charge un graphique Helm pour déployer des applications avec plusieurs environnements d’exécution, y compris JBoss EAP. Les développeurs peuvent sélectionner et installer une charte Helm du point de vue des développeurs d’OpenShift. Ils peuvent ensuite mettre à niveau, restaurer et désinstaller une charte Helm (version) existante pendant le cycle de vie de l’application.
À la fin de cet article, vous disposerez d’une application Java d’entreprise traditionnelle s’exécutant sur des serveurs JBoss EAP en cluster qui se connectent à une base de données PostgreSQL à l’aide du graphique Helm JBoss EAP, comme illustré à la Figure 1.
Noter: Les graphiques Helm pour JBoss EAP 7.4 sont une fonctionnalité d’aperçu technologique sur OpenShift 4.8, la prise en charge est donc limitée lorsque vous utilisez ces fonctionnalités dans des environnements de production.

Installation d’une charte Helm JBoss EAP
Accédez à la console développeur dans OpenShift et accédez à la vue Topologie. Créer un nouveau projet nommé eap-helm-demo
en cliquant sur le Ajouter au projet icône en haut à gauche et en entrant EAP
dans le champ de recherche. Sélectionnez ensuite le Eap74 v1.1.0 Diagramme de barre et clic Installer Helm Chart, comme le montre la figure 2.

Définissez maintenant une version, une image et un déploiement spécifiques, par exemple l’application principale Todo. Basculez vers le Vue YAML pour ajouter des configurations de génération et de déploiement Source-to-Image (S2I), comme illustré à la Figure 3.

JBoss EAP 7.4 fournit un pack de fonctionnalités Galleon pour ajouter des sources de données, un découpage de contenu et des spécifications MicroProfile pour les applications Java d’entreprise. Trois packs de fonctionnalités (cloud-server
, postgresql-datasource
, et ejb
) sont installés pendant l’exécution de la compilation S2I. L’extrait suivant montre comment vous pouvez définir le mode S2I avec un pack de fonctionnalités galeon pour une source de données PostgreSQL dans la section de construction, ainsi que comment définir les serveurs en cluster (avec trois réplicas) dans la section de déploiement :
build:
mode: s2i
s2i:
featurePacks:
- org.jboss.eap:eap-datasources-galleon-pack:7.4.0.GA-redhat-00003
galleonLayers: cloud-server,postgresql-datasource,ejb
env:
- name: ARTIFACT_DIR
value: todo-backend/target
deploy:
replicas: 3
Clique le Installer après avoir ajouté la configuration personnalisée au fichier YAML. Vous pouvez trouver l’intégralité de la configuration YAML dans le référentiel principal de Todo.
Noter: Vous verrez probablement un ErrImagePull ou ImagePullBackOff message dans les ressources, comme illustré à la Figure 4. Pas de soucis : votre application JBoss EAP 7.4 se construit avec succès, mais votre déploiement rapportera ErrImagePull et ImagePullBackOff jusqu’à ce que la construction soit terminée.

Déployer une base de données PostgreSQL
Déployons maintenant une nouvelle base de données PostgreSQL pour communiquer avec les serveurs JBoss EAP. Cliquez avec le bouton droit sur la vue Topologie, puis sélectionnez Base de données dans le menu contextuel. Ensuite, entrez postgres
dans le champ de recherche et cliquez sur le PostgreSQL (éphémère) modèle, comme le montre la figure 5.

Cliquez sur Modèle d’instanciation et remplissez les champs suivants, comme illustré à la figure 6, en laissant les autres champs à leurs valeurs par défaut.
- Nom du service de base de données:
todos-db
- Nom d’utilisateur de connexion PostgreSQL:
todos-db
- Mot de passe de connexion PostgreSQL:
todos-db
- Nom de la base de données PostgreSQL:
todos-db
Puis clique Créer, comme le montre la figure 6.

Une fois la construction de l’application terminée, votre image est automatiquement déployée, comme illustré à la Figure 7. Créez un connecteur entre le pod JBoss EAP et le pod PostgreSQL via la fonction glisser-déposer dans la vue Topologie.

Lorsque vous cliquez Ouvrir le lien, une nouvelle page Web s’ouvre automatiquement. Copiez l’URL de la route pour l’étape suivante.
Test de l’application Java d’entreprise
Une fois le déploiement terminé, visitez votre application frontale Todo en ouvrant une nouvelle fenêtre dans un navigateur Web et en collant l’URL de la route que vous avez copiée à l’étape précédente. Cliquez ensuite sur le aller bouton illustré à la figure 8.

Vous devriez maintenant pouvoir ajouter, mettre à jour et supprimer des éléments dans la liste des tâches, comme illustré à la figure 9.

Et après
Cet article a montré comment déployer des applications Java d’entreprise traditionnelles dans le cloud sur Red Hat OpenShift à l’aide d’une charte Helm. Le graphique Helm de JBoss EAP permet aux développeurs Java de spécifier l’environnement d’exécution de l’application sur JBoss EAP en termes de stratégie de construction, de référentiel source, de packs de fonctionnalités galeon et de réplication de serveur (clustering). Les procédures présentées dans cet article sont beaucoup plus simples pour les développeurs que d’utiliser des modèles OpenShift ou des opérateurs Kubernetes.
Le prochain article de cette série vous explique comment faire de cette application un fichier JAR amorçable à l’aide de JBoss EAP Extension Pack (XP) avec un graphique Helm.
Ressources additionnelles:
S’abonner à bit.ly/danielohtv pour apprendre le développement d’applications cloud natives avec Kubernetes. Cet article est à l’origine publié par moi-même ici.