CloudUnit : le PaaS Java Open Source

0
486
CloudUnit le PaaS Java Open Source

CloudUnit est une nouvelle plateforme permettant de déployer, exécuter et gérer des applications Java et Java EE. Cette nouvelle plateforme est développée par la startup Treeptik, et est actuellement en bêta privée, mais sera prochainement fournie en open source et disponible sur GitHub. L’article présente la plateforme ainsi qu’un exemple de déploiement d’une application Spring afin d’illustrer certaines fonctionnalités.

CloudUnit est un PaaS spécialisé dans le déploiement et la gestion d’applications Java et Java EE. C’est une plateforme qui a fait le choix d’être mono langage afin de traiter spécifiquement les problématiques liées au langage Java, et de fournir ainsi un outillage plus adapté. CloudUnit s’intègre dans la mouvance Devops qui est une philosophie globale qu’il faut instrumenter avec les bons outils et les bonnes personnes.

Les différences de CloudUnit

CloudUnit fournit un panel de fonctionnalités spécialisées pour les applications Java et Java EE ce qui permet de mettre à disposition des outils d’administration simplifiés, avec la possibilité de modifier simplement la version de la JVM ou de passer des options à celle-ci. Les applications, dans CloudUnit, sont constituées d’un serveur d’application (Tomcat ou Jboss) et de différents modules (Mysql, PostgreSQLRedis, MongoDB ….) avec pour chacun, un manager, qui permet de le configurer. La plateforme permet de déployer les applications Java, soit via l’interface Web, soit en ligne de commande avec le Command Line Interface, soit en poussant le code source avec un “git push” sur une branche distante, et c’est la plateforme qui, à ce moment là, se charge de construire l’application avec Maven et de la déployer. Avec CloudUnit, chacun travaille en fonction de ses préférences. Il est aussi possible de cloner et dupliquer à l’infini une application avec ses modules. CloudUnit permet également de consulter les Logs en ligne ainsi que toute l’activité CPU, Mémoire, Réseau, IO en temps réel.
Depuis sa création, CloudUnit repose sur Docker – une technologie Open Source partenaire de la startup, qui a permis le développement rapide de la plateforme, et qui offre pour l’avenir une extensibilité importante. En outre, la possibilité, pour ceux qui le souhaitent, d’extraire les applications de CloudUnit et de les basculer dans des environnements de production basés à 100% sur du Docker, comme Mesosphere ou Kubernetes. Coté Docker, CloudUnit n’utilise pas d’outils spécifiques tels que des ordonnanceurs. Ceci s’explique par le fait que la plateforme est elle-même un ordonnanceur de containers spécialisés pour les applications Java et Java EE. L’architecture microservice est à l’honneur en alignement avec les préconisations de Docker. Une application standard dans CloudUnit se construit avec un minimum de 7 containers, cependant cela s’effectue en toute transparence pour le développeur, qui ne voit que son application. Coté stack applicative, toute la plateforme est développée en Java avec notamment ElasticSearch, LogStash et une grosse tuyauterie Spring. Quelques API comme cAdvisor sont utilisées pour le monitoring des containers.

Déploiement d’une application Spring dans CloudUnit

Dans cet article nous allons déployer la fameuse application “Petclinic”, exemple développé par Spring qui va nous permettre d’illustrer quelques unes des fonctionnalités de CloudUnit comme : la création d’application, l’ajout d’une base de données, la configuration de la JVM et le déploiement.
En pré-requis, il faut avoir un accès à la plateforme CloudUnit. Cela peut se faire de deux manières soit vous bénéficiez déjà d’un accès sur votre Cloud privé, soit vous souhaitez avoir un accès sur le Cloud public par simple demande sur le site www.cloudunit.fr. Une fois en possession de votre accès, il faut ensuite cloner ou copier le projet qui va nous servir d’application d’exemple; pour cela nous allons nous baser sur l’exemple de ligne de Spring.
https://github.com/spring-projects/spring-petclinic
Une version de Java 8 ainsi qu’une version de Maven sur votre machine vous sera nécessaire.

Création de l’application

Il faut dans un premier temps se connecter à la plateforme avec les identifiants fournis. Une fois connecté, l’interface Web laisse apparaître le Dashboard de CloudUnit qui permet entre autres de lister les applications existantes et d’en créer de nouvelles. Dans CloudUnit, une application est identifiée par un nom et un type de serveur qui peut être pour l’instant une des versions de Tomcat, ou une des version de Jboss. Dans la zone de saisie App Name saisir “petclinic” comme nom d’application et choisir Tomcat 8 dans la liste des serveurs. En
quelques secondes l’application est créée et un nouveau bloc apparaît dans le dashboard.

Création de l’applicationÀ ce moment-là, un serveur Tomcat est créé et démarré ainsi qu’un dépot Git qui peut permettre de partager l’application et de déployer seulement des modifications.
Le nouveau bloc fournit des informations sur l’application avec son statut (Start / Stop / Pending), le modèle du serveur d’application, et les modules installés. Le lien MANAGE permet d’avoir accès à toute la configuration et la gestion de l’application.

Création de l’application

Le premier onglet OVERVIEW fournit un maximum de détails sur l’application et les modules qui seront installés par la suite. La barre de menu présente au dessus permet d’avoir accès à toutes les fonctionnalités liées à l’application.

Ajout de module Mysql

Le menu ADD MODULE présent dans la barre de menu permet d’ajouter des modules à l’application tels que Mysql, PostgreSQL ou MongoDB, et bien d’autres prochainement.

Ajout de module Mysql

Pour l’exemple de l’application PetClinic nous allons installer un module Mysql. L’ajout du module Mysql déclenche l’installation d’une instance complète du SGBD, ainsi que la création d’une première base de données qui porte le même nom que l’application.
Une fois le dispositif installé, un e-mail est envoyé à l’utilisateur avec l’ensemble des informations d’accès à la base de données. Ces informations sont aussi disponibles dans l’interface Web au niveau du premier onglet qui contient le récapitulatif de toutes les informations de l’application. Pour chaque module installé, un outil de gestion individuel est installé automatiquement et accessible depuis le navigateur.
Pour le module Mysql, le manager installé est phpMyAdmin qui permet entre autres de configurer, initialiser la base installée, et en créer d’autres en fonction des besoins. Pour accéder à cet outil il faut utiliser les identifiants de la base de données fournis dans le mail ou dans l’interface Web.

Déploiement de l’application

L’application Spring Petclinic étant maintenant construite en Java 8 par défaut, il faut ajouter cette configuration dans l’interface d’administration.
L’onglet JVM CONFIGURATION permet de choisir entre le JDK 7 ou 8 et permet aussi de passer des variables à la JVM, par exemple, pour changer les profils de Spring. Dans notre exemple, il faut choisir la version 8.
À ce niveau d’avancement, la plateforme est prête à recevoir l’application. Reste seulement à ajouter dans l’application les informations de la base de données nouvellement créée et à déployer l’application.
Dans le pom.xml, il faut décommenter la dépendance MYSQL et commenter la dépendance HSQL. Ensuite il faut mettre les informations de la base de données dans l’application. Pour cela, il faut éditer le fichier :
src/main/resources/spring/data-access.properties supprimer les informations du driver HSQL, et configurer le driver MYSQL avec les bonnes informations de connexion à la base de données. Le fichier doit correspondre à l’exemple suivant avec les bons user/password ainsi que la bonne url JDBC fournie dans le mail ou dans l’interface Web.

Déploiement de l’applicationUne fois l’application correctement configurée, il ne reste plus qu’à la construire avec Maven pour la déployer avec l’interface WEB. Il est aussi possible de déployer l’application avec un git push sur la branche distante visible dans le premier onglet overview. Pour construire l’application avec Maven, il faut lancer une commande mvn package à la racine du projet. Cette commande génère l’archive au format war que vous allez ensuite déployer. Le menu DEPLOY permet de le faire très simplement, en sélectionnant le fichier .war dans le répertoire target de votre application.
Une fois le fichier sélectionné, il faut cliquer sur le bouton DEPLOY qui lance l’upload du fichier sur le serveur ainsi que le déploiement dans le serveur.
Une fois l’application déployée, elle est instantanément accessible en ligne via un nom DNS configuré par défaut mais qu’il est possible de modifier dans l’onglet ALIAS. L’application est accessible depuis la console d’administration Web via une nouvelle icône, juste à coté du nom de l’application. Un clic sur cette icône ouvre l’application dans un nouvel onglet du navigateur.


 

Cette mise en oeuvre simple nous permet d’illustrer les fonctionnalités de base de CloudUnit et illustre la puissance de ce PaaS, qui nous a permis de mettre en ligne une application Web écrite en Java en quelques minutes – temps de modification de l’application compris!
D’autres fonctionnalités comme les snapshots, une gestion avancée des Logs applicatifs ou du monitoring, permettent une amélioration de la productivité dans le travail quotidien des équipes Dev et Ops. Un outil Command Line Interface (CLI) permet, pour ceux qui le préfèrent de travailler, en ligne de commande, mais aussi d’automatiser tous les traitements en exécutant des scripts.
L’application est aujourd’hui disponible gratuitement en Cloud public et en Cloud privé. Pour en savoir plus : http://www.cloudunit.fr.

CloudUnit : le PaaS Java Open Source
Évaluez cet article
PARTAGER SUR
Ayoub Belkadi
Ayoub Belkadi est un consultant et Freelance SEO. Il optimise des sites web pour atteindre la première page de Google en utilisant le référencement naturel Whitehat SEO. Il concois aussi des sites web sous la platforme Wordpress 100% responsive.

Choisir une plateforme pour commenter :

  • Facebook
  • Google Plus
  • Disqus
  • WordPress

LAISSER UNE RÉPONSE

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.