Je n'ai pas beaucoup d'expérience mais j'ai travaillé sur de gros projets Java EE (utilisant maven2) avec des manières très distinctes de gérer l'installation / la livraison sur les différentes plateformes.
1) L'un d'entre eux était d'utiliser des snapshots pour le développement et ensuite de faire une version maven, des composants et des applications web principales. Ainsi la livraison est :
- dossiers de guerre/ear
- Élément de liste
- fichiers de propriétés
- Fichiers sgdb
- quelques autres
Et les équipes utiliseront ces fichiers pour mettre les nouvelles versions des applications dans les différentes plateformes. Je pense que ce processus est strict et permet de toujours garder facilement les différentes configurations passées en production, mais il n'est pas vraiment flexible, le processus est un peu lourd et il nous a conduit à faire parfois des choses sales comme remplacer une classe d'une guerre pour corriger une régression... Il s'agit d'un site de commerce électronique avec 10 millions de visiteurs uniques par mois et une disponibilité de 99,89%.
2) Une autre solution que j'ai vue consiste à extraire les sources de chaque plate-forme et à installer les artefacts instantanés dans un référentiel local. Ensuite, le serveur d'application utilisera ces instantanés du dossier .m2. Il n'y a pas de véritable processus de livraison puisque pour mettre une nouvelle version en production, il suffit de mettre à jour les sources des composants / webapps, de faire un maven clean install et de redémarrer le serveur d'application. Je pense que c'est plus flexible mais je vois quelques inconvénients et cette approche me semble dangereuse. Ce site a un frontoffice, je ne connais pas les chiffres mais c'est beaucoup moins que le premier. Il a également un grand backoffice disponible pour la plupart des employés d'une entreprise de 130 000 personnes.
Je suppose qu'en fonction du site web, de son exposition au public et de la disponibilité requise, nous devons adapter la stratégie de diffusion aux besoins.
Je ne suis pas ici pour demander quelle est la meilleure solution, mais je me demande si vous avez vu des choses différentes, et quelle stratégie vous utiliseriez dans tel ou tel cas ?