Je vais essayer de traiter dans une série d'articles d'un sujet qui est rarement abordé, c'est-à-dire la mise en production et l'exploitation d'une application J2EE.
Le constat qu'ont dû faire plusieurs développeurs c'est que généralement l'application fonctionne sur le poste de celui-ci, mais dès qu'il s'agit de la déployer dans un environnement de production, ça ne marche plus. C'est surtout vrai quand on travaille pour une société qui a industrialisé ce processus.
Autre constat, c'est assez fréquent, l'application mise en production est une recopie,sur un serveur dit de « production », du répertoire contenant le serveur d'applications utilisé sur le poste d'un développeur et dans lequel est déployé l'application. Si cette solution à l'avantage de permettre une rapide mise en production, c'est l'exploitation sur le long terme qui va remettre en cause cette méthode.
Pour rendre cette série d'articles un peu plus parlants je vais m'appuyer sur la société fictive ChocoCorp qui a développé un site de vente en ligne de chocolats (c'est normal c'est la saison). Ils ont développé leur site sous la forme d'une application J2EE en utilisant les frameworks couramment utilisés :
Ils passent les commandes automatiquement auprès de leurs fournisseurs via des messages JMS et des appels à des WebServices. Des jobs Quarts sont lancés régulièrement pour vérifier l'état des stocks des fournisseurs. L'application génère des Factures qui sont stockées sur disque.
ChocoCorp a fait le choix de Glassfish et MySQL pour leur application.
Les développeurs de ChocoCorp utilisent tous Windows. Ils développent suivant des principes agiles. C'est pourquoi leur application est compilée en continu avec Hudson et Maven2. L'application a une couverture de tests unitaire importante. Ils n'ont pas mis en place de plateforme d'intégration proche de leur production.
Tout en suivant les aventures de ChocoCorp, j'ai prévu d'aborder les sujets suivants :
Je ne parlerais pas de l'installation du serveur d'applications. Je ne parlerais pas non plus de l'industrialisation de l'infrastructure serveur et des processus standardisés qui vont autour. Je vais partir du principe que l'infrastructure est mise à disposition par un prestataire qui a déjà fait ce travail d'industrialisation.