Wiki
Clone wikideployment / Home
Description
Ce package est un ensemble de projets MAVEN afin de faciliter le déploiement des applications JEE.
Causes
Quels sont les défauts du déploiement standard ?
Un projet Maven contient par défaut la génération d'un packaging war, ear, etc. Celui-ci peut-être déployé par des modules spécifiques comme:
- maven-jboss
- maven-weblogic
Toutefois, les serveurs doivent être adaptés et configurés pour ces applications. Les ressources à déclarer sont:
- les datasources
- les variables d'environnements
- les files JMS
Plus l'application est complexe, plus les interractions et les interdépendances avec le serveur sont nombreuses.
Pour qui faciliter le déploiement ?
Ces tâches sont réalisées habituallement par des opérationnels pour préparer ces environnements. En automatiant la configuration du serveur, les OPS se concentrent sur les tâches essentielles et non répétitives.
Simplifier de gestion des environnements
Ces applications sont, bien évidemment, à paramétrer différement en fonction des environnements. Les applications doivent prendre en compte ces différents environnements.
Objectifs
Ces projets MAVEN ont pour objectifs de :
- Offrir un outil de déploiement très simple,
- Préparer un serveur JBoss "prêt à exécuter",
- Permettre le paramétrage par environnement,
- Installer et exécuter les serveurs,
- Offrir à chaque application un cadre souple,
- Réduire l'adhérence entre applications.
Principe de fonctionnement
Un projet dit "de déploiement" définit tous les éléments nécessaires pour déployer une application:
- fichier de configuration du serveur,
- modules supplémentaires,
- librairies serveurs,
- etc.
Ce projet utilise un modèle de serveur pour construire un serveur dédié à une application, paramétré pour un environnement donné et déployé sur un serveur prédéterminé.
Le modèle de serveur peut être enrichit par une équipe OPS. Le projet de déploiement sera plutôt gouverné par les DEV qui pourront: - ajouter des modules, - utiliser la configuration adaptée (standalone, standalone-full, etc.) - définir des variables d'environnement, - ajouter des datasources, - déclarer les files JMS, - etc.
Les archetypes accélèrent la création de ces projets.
Installation
Les projets parents au projet de déploiement doivent être installé dans le référentiel Maven. cf la procédure d'installation.
Organisation MAVEN
Pour déployer des serveurs JBoss "pret-à-l'emploi", une organisation spécifique doit être respectée.
Serveurs d'applications
Les serveurs d'applications couverts sont les serveurs RedHat:
- Redhat JBoss 5
- Redhat JBoss EAP 6.4
- Redhat JBoss EAP 7.0
Mécanismes de déploiement
Déploiement par SSH
La 1ère cible de dépliement est de minimiser les impacts sur un existant. Il s'agit de déployer des applications sur des serveurs existants (VM). Aucune modification du cadre d'exécution n'est alors nécessaire.
Déploiement sur OpenShift
La 2nde cible est de déployer ces applications sur des orchestrateurs Docker, OpenShift est la 1er. Un orchestrateur OpenShift est donc nécessaire.
Démarche pour un projet
Chaque projet applicatif (WAR, EAR) doit définir un projet de déploiement. Ceci permet de :
- séparer les responsabilités (si nécessaire),
- réduire la complexité des projets de build,
- regrouper plusieurs applications dans un projet de déploiement,
- déployer une application avec Jenkins.
Updated