Bonjour.

Nous avons un processus de déploiement qui est en partie manuel.
Mais il est déjà bien structuré.

Pour le dev nous avons une plateforme Jenkins qui produit nos livrables.
ceux-ci sont mis à disposition sur une plateforme Nexus.
Cette mise à disposition permet d'installer le livrable sur la machine de DEV et de Qualification.
Elle permet aussi à un profil particulier de la faire passer en Intégration
cela se fait par copie des livrables dans un repository maven dédier à cette phase de la livraison.
c'est une action qui peut être déclenché par ce profil mais il n'a pas accès au contenu de ces livrables. il ne fait que donner l'ordre au système de faire la copie.
une fois les livrables disponible pour l'intégration ils peuvent être installés sur une de ces plateformes. la encore le profil permettant de faire cette opération ne peut entrer en possession des livrables. c'est la plateforme qui les prends sur nexus et les installent dans sont contexte. (I.E. l'utilisateur de prends pas de jar war ou autre package pour les mettre dans la plateforme)
la phase d'intégration terminé un profil à le droit de pousser les livrables vers la phase de test fonctionnels.

les opérations se répètent donc de la même façon pour l'intégration, les tests fonctionnels, la préprod, et la prod.
chaque plateforme ne peut récupérer que des éléments issus du repository maven qui lui est assigné.

tout cela offre la garantie que personne ne viendra modifier le livrable entre la phase de build et la mise en prod.
reste que cette procédure ne prends en compte ce qui est dépendant de la plateforme.

de plus le passage d'une étape à l'autre est construit sur la base de commandes à installer sur les plateformes.

pour couronner le tout nous avons quelques dizaine de millier d'applications (beaucoup de métier différents à gérer) parfois en un seul exemplaire parfois en exemplaire multiples.

pour nous faciliter la configuration de toutes ces applications nous avons défini une base de donnée qui contient une représentation technique de notre SI. ainsi chaque paramètre est présent à un seul endroit et si plusieurs application se partagent une seule ressource celle-ci n'est pas à décrire dans une multitude de fichier de conf au formats hétérogènes.
chaque phase possède sa base de conf

et pour finir nous déployons aussi bien des app java que c++ que du SQL des war ear bundle osig sur des plateforme diverses. notre SI est suffisement vaste pour que je ne soit pas capable d'envisager faire un inventaire des techno en moins de quelques mois.

nous ne sommes donc plus très loin d'avoir toutes les brique d'un système de déploiement unifié.

suite à cette longue description
j'ai quelque question.

Connaissez-vous des systèmes de déploiement ouvert à un peut toutes les techno ?
Utilisez-vous des systèmes de déploiement ?
Etes-vous satisfait de votre solution ?
Envisagez-vous d'adopter ou changer de solution ?

A+JYT