Quelles sont les bonnes stratégies de déploiement et de libération pour un environnement d'exécution partagé?

StackOverflow https://stackoverflow.com/questions/3801994

Question

Status Quo

Pour nos clients nous développons des bibliothèques et des applications qui fonctionnent comme des « modules » au sein d'une plus grande application qui est livré sous forme d'application interne Java Web Start. Le client maintient l'infrastructure que cette application est exécutée sur. Le « côté serveur » est composé de quelques services Web basés sur Axis2. Les deux parties sont déployées à une seule instance Tomcat comme deux applications Web distinctes.

Lorsque nous publions les nouvelles versions de nos artefacts, nous produisons juste les fichiers JAR nécessaires (par exemple ourapp-client.jar et ourapp-server.jar) et les envoyer à nos clients qui, à son tour les gouttes juste dans les endroits appropriés et - le cas échéant -. redémarre le serveur Tomcat

Objectifs

Nous sommes actuellement Maven izing tous nos projets et dans l'avenir, nous voulons aussi faire nos communiqués d'une manière « Maven ». L'objectif principal est d'automatiser la libération et processus de déploiement de notre côté et de le rendre moins sujette aux erreurs et plus fiable et confortable du côté client.

Problème principal

La partie la plus délicate est que notre client utilise les mêmes applications Web Tomcat (de Axis2 pour le « côté serveur » et l'application Web Start) pour inclure leurs modules auto-développés dans l'application. Donc, nous ne pouvons pas utiliser la solution évidente et juste fournir une application web frais (WAR) qui obtient simplement déployé sur le serveur. Voilà pourquoi nous fournissons actuellement des fichiers JAR unique qui sont mis « à la main » dans le bon endroit.

Quelles sont les stratégies que vous en cours d'utilisation générale pour livrer vos produits à votre client? Est-ce que quelqu'un a eu des expériences avec une situation similaire (à savoir l'environnement d'exécution partagé pour la 3ème partie et auto applications développées)?

Était-ce utile?

La solution

  

Le principal objectif est d'automatiser la libération et processus de déploiement de notre côté et de le rendre moins sujette aux erreurs et plus fiable et confortable du côté client.

Je ne sais pas ce que vous entendez exactement par « processus de libération et de déploiement » (dans la lingua Maven, cela est sur les tâches SCM automatisation et le déploiement d'artefacts à un dépôt distant). Si cela est sur le déploiement aux machines de production , je ne pense pas personnellement que c'est vraiment un travail pour Maven (et nous ne l'utilise pas Maven pour cela). Peut-être un coup d'oeil à des solutions dédiées comme ControlTier , SmartFrog , marionnettes , chef , etc.

  

Quelles sont les stratégies que vous en cours d'utilisation générale pour livrer vos produits à votre client? Est-ce que quelqu'un a eu des expériences avec une situation similaire (à savoir l'environnement d'exécution partagé pour la 3ème partie et auto applications développées)?

Nous livrons les choses que nous pouvons contrôler. Si un client veut inclure ses propres bits dans une application donnée, nous faisons les sous-parties nécessaires disponibles, mais l'emballage serait probablement sa responsabilité.

Questions connexes

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top