12.4. Conclusion

Le Déploiement Automatisé, et ses formes plus avancées, le Déploiement Continu ou la Livraison Continue, peuvent être considérés comme le point culminant d'une infrastructure moderne d'Intégration Continue.

Dans ce chapitre, nous avons vu plusieurs techniques de Déploiement Automatisé, essentiellement axées autour de déploiements Java. Cependant, les principes généraux discutés ici sont valables pour n'importe quelle technologie. En effet, le processus de déploiement dans de nombreuses autres technologies, spécialement pour les langages de scripts tels Ruby et PHP, sont considérablement plus simple que leur équivalent Java, impliquant essentiellement de copier des fichiers vers le serveur de production. Ruby bénéficie aussi d'outils tels qu'Heroku et Capistrano pour aider à accomplir cette tâche.

Il y a plusieurs aspects importants à prendre en compte lors de la mise en place d'un Déploiement Automatisé. En premier lieu, le Déploiement Automatisé est le point final de votre architecture d'Intégration Continue : vous devez définir un séquenceur de build, de la compilation initiale et des tests unitaires vers des tests fonctionnels et d'acceptation automatisés ainsi que des contrôles de qualité du code, culminant au déploiement vers une ou plusieurs plate formes. Le degré de confiance dans votre séquenceur de build dépend largement du degré de confiance que avez en vos tests. En d'autres termes, plus les tests sont douteux et limités, le plus tôt vous aurez à recourir à des tests manuels et à une intervention humaine.

Finallement, si possible, il est important de construire vos artefacts déployables en une fois seulement, et ensuite de les réutiliser dans les étapes suivantes, que ce soit pour les tests fonctionnels ou des déploiements vers différentes plateformes.