Wiki

Clone wiki

deployment / 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 :

  1. Offrir un outil de déploiement très simple,
  2. Préparer un serveur JBoss "prêt à exécuter",
  3. Permettre le paramétrage par environnement,
  4. Installer et exécuter les serveurs,
  5. Offrir à chaque application un cadre souple,
  6. 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é.

Déploiement JBoss

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.

Configuration de JBoss.

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 par SSH

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éploiement par OpenShift

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.

Démarche à suivre par les projets

Updated