OpenShift et Java

#cloud#java#usine logicielle

Nous avons présenté l’offre PAAS de Redhat, OpenShift, et proposions la création d’une première application de démonstration en PHP. Mais la plateforme propose d’autres technologies et nous nous intéressons aujourd’hui plus particulièrement aux outils mis à disposition des développeurs Java.

Cet article présente dans un premier temps les choix techniques retenus par Redhat et, afin de bien démarrer, propose dans un second temps de guider l’utilisateur pour mettre en place les outils adéquats.

1. Présentation technique de la plate-forme Java

Le cœur du système

Le serveur d’applications étant l’élément central d’une architecture Web, la plate-forme Java proposée par OpenShift s’appuie naturellement sur JBoss AS 7.1 de RedHat. Cette version respecte la spécification JEE 6 Web Profile mettant à disposition les principaux standards tels que JSF 2, Bean Validation, CDI avec Weld, JPA, etc.

Une des forces de cet opus est de s’appuyer sur OSGi afin de disposer d’un serveur d’applications modulable et performant étant donné qu’il ne charge que ce dont il a réellement besoin.

Les outils annexes

Il est envisageable de déployer directement son application dans l’instance du JBoss fourni mais OpenShift propose un certain nombre d’outils bien connus des développeurs Java permettant de faciliter la création, le développement, le déploiement et l’intégration continue d’une application JEE.

Tout d’abord, il existe un plug-in spécifique OpenShift pour l’outil de développement Eclipse afin d’être en mesure de créer un projet et de réaliser les développements de son application.

Maven est pris en charge, en paramétrant correctement le fichier pom.xml à la racine du projet, afin de simplement pouvoir définir les dépendances et packager son application. Ainsi, il est possible de configurer les librairies nécessaires à son application ainsi que les modules du serveur d’applications à charger.

La mise en oeuvre d’une plate-forme continue est possible grâce à Jenkins qu’il est possible d’activer afin de réaliser des tests avant de déployer automatiquement l’application après un commit dans le référentiel de source.

De ce fait, juste en synchronisant les sources depuis votre environnement de développement avec votre référentiel GIT d’OpenShift, votre application sera construite, testée et déployée !

figure 1
Figure 1

2. Bien débuter le développement JavaEE pour OpenShift avec Eclipse

Nous présentons dans cette section les différentes étapes de création d’une application JEE pour OpenShift, à l’aide d’Eclipse et de son plugin OpenShift. Le choix de l’IDE Eclipse est ici lié à l’existence d’un plugin simplifiant la gestion des applications OpenShift, mais l’utilisation de tout autre outil est bien évidemment possible. Pour l’utilisation des outils en ligne de commandes (ssh, rhc et git), on peut se référer à l’article de présentation d’Openshift, ou encore à la documentation en ligne de Redhat1.

Installation des outils nécessaires

L’installation d’Eclipse est simple et rapide. Elle consiste à récupérer l’archive de la version souhaitée sur le site de l’éditeur 2 – la version« Eclipse IDE for Java EE Developpers » dans le cadre de cet article – puis à en décompresser le contenu à l’endroit souhaité. Un répertoire Eclipse est alors créé qui contient l’exécutable permettant le lancement de l’IDE. A la première exécution, il est demandé de choisir le répertoire de travail. Nous validons ici le choix par défaut, Eclipse est maintenant prêt à être utilisé.

Pour l’installation du plugin pour OpenShift, on utilise l’interface de gestion des plugins intégrée à Eclipse et accessible depuis le menu le menu « Help → Install New Software ».

Dans la fenêtre qui s’ouvre, il faut ajouter le dépôt des outils JBoss, qui contient entre autres le plugin qui nous intéresse, en cliquant sur le bouton « Add… » (Figure 2).

figure 2
Figure 2

On choisit un nom pour le nouveau dépôt, par exemple « JBoss Tools », puis on en précise l’adresse, à savoir « http://download.jboss.org/jbosstools/updates/development/indigo/ » (Figure 3).

figure 3
Figure 3

Après validation, de nouveaux éléments sont disponibles. On étend le nœud « JBoss Cloud Development Tools » et on sélectionne l’élément « JBossOpenShift Tools » (Figure 4).

figure 4
Figure 4

Après installation du plugin, il faut redémarrer Eclipse. L’IDE est alors prêt à gérer les projets OpenShift.

Préparation et configuration

Pour pouvoir créer des applications OpenShift via le plugin Eclipse, il faut disposer d’un compte OpenShift valide. Avoir installé les outils en ligne de commande peut également être un plus. Pour la création d’un compte ou la configuration des outils, il est possible de se référer à l’article de présentation d’Openshift, ou de s’aider de la documentation en ligne.

Il est également nécessaire de disposer d’un accès SSH. Si le système n’est pas encore configuré pour communiquer avec les serveurs OpenShift via SSH, comme cela a été configuré dans le précédent article, il est possible de générer une paire de clés depuis l’interface d’Eclipse. Pour cela, on accède aux préférences d’Eclipse via « Eclipse → Préférences … », puis dans « General → Network Connections → SSH2 » on utilise l’onglet « Key Management » qui nous permet de générer une nouvelle paire de clés (Figure 5). Il ne reste alors qu’à ajouter la clé publique générée au trousseau d’OpenShift, via la console d’administration Web3.

figure 5
Figure 5

Si une paire de clés a déjà été générée, et que la clé publique est déjà dans le trousseau d’OpenShift, il faut vérifier que la clé privée correspondante est bien listée dans l’onglet General.

Le système est maintenant près pour se lancer dans la réaliser d’une première application.

Création et modification de l’application

On procède à la création d’un projet de type « OpenShift application », accessible via le menu « File → New → Other … » (Figure 6).

figure 6
Figure 6

Sont alors demandés les login et mot de passe d’accès au compte OpenShift. Le choix est donné entre les différents types d’applications disponibles pour la nouvelle application OpenShift. C’est ici le choix « jbossas-7 » que nous faisons (Figure 7).

figure 7
Figure 7

Remarque : on peut noter que si l’application existe déjà sur les serveurs d’OpenShift, il est possible de la sélectionner ici. On peut également sélectionner à cette étape des Cartridges (modules d’une application OpenShift) si nécessaire, comme un serveur de base de données notamment.

Après validation, la création de l’application peut prendre quelques minutes. En effet, l’application est créée et configurée sur les serveurs d’OpenShift, avec notamment la création du dépôt Git indispensable à la mise à jour de l’application. Le dépôt est automatiquement cloné localement et le projet Eclipse est créé et ouvert dans l’IDE.

Une fois créée, l’application est accessible en ligne (Figure 8). Pour rappel, les applications OpenShift sont accessibles via une url de la forme : http://nomapplication-nomdomaine.rhcloud.com

figure 8
Figure 8

Pour le développement de l’application, il n’y a à rien à préciser, il s’effectue comme à l’accoutumée sous Eclipse.

Une fois les sources modifiées, la mise à jour du dépôt Git se fait simplement par un clic droit sur le projet dans l’explorateur de projet suivi d’un clic sur « Team → Commit » pour mettre à jour le dépôt local, et « Team → Push to Upstream » pour mettre à jour le dépôt distant OpenShift.

La mise à jour du dépôt OpenShift prend un peu de temps. En effet, après la simple mise à jour du code source, une compilation et un redéploiement de l’application sont effectués. Il est donc possible de développer localement et de tester les modifications « dans le cloud » en utilisant les fonctionnalités de compilation d’OpenShift. Après le redéploiement, la nouvelle version de l’application est accessible en ligne.

En suivant les quelques étapes présentées ici, nous sommes en mesure d’installer simplement un environnement de développement complet et opérationnel pour travailler efficacement avec OpenShift tout en tirant profit des différentes fonctionnalités offertes. Le recours à la ligne de commande n’est pas obligatoire et le développeur habitué à Eclipse n’a pas à quitter son IDE favori.

3. Conclusion

Nous nous sommes intéressés dans cet article aux possibilités offertes par OpenShift pour la mise en place d’applications Web Java. L’offre est complète, cohérente et simple à appréhender. L’existence d’un plugin Eclipse est un réel plus, il permet aux développeurs de s’affranchir de la ligne de commande pour la plupart des tâches habituelles tout en gardant leurs habitudes de développement. Le service est actuellement en phase de test et est donc disponible gratuitement avec quelques limitations, notamment en termes de mémoire et de nombre d’applications.

Gilles Bougenière et Jean-Sébastien Mercy.

Il est possible de retrouver l’intégralité de cet article dans le numéro 155 du mois de Septembre 2012 du magazine « Programmez ».

1Documentation OpenShift :http://docs.redhat.com/docs/en-US/OpenShift/2.0/html/Getting_Started_Guide/
2Téléchargements Eclipse :http://www.eclipse.org/downloads/
3Console d’administration d’OpenShift :https://openshift.redhat.com/app/account