Dans le monde des SI, il est bien connu que la livraison et l’installation d’une nouvelle version d’un projet conduisent à un stress conséquent et sont perçues comme des facteurs de risques importants. Comment pallier à cette situation ?
Le déploiement automatisé : une évolution naturelle
Le déploiement automatisé, c’est l’utilisation d’une infrastructure permettant de déployer un livrable sur un environnement cible sans intervention humaine autre que le geste initiant le déploiement. Cela implique l’automatisation de tous les gestes techniques : préparation des plates-formes, mise en place ou mise à niveau de l’environnement de base, installation des composants de support des livrables, installation des livrables eux-mêmes. D’autres aspects doivent également être pris en compte : les migrations de données et la gestion de la disponibilité notamment.
Il s’agit typiquement d’une extension de plate-forme d’intégration continue (PIC) : une fois qu’on a un SI capable de produire des livrables de façon automatique, il semble logique de vouloir les installer de façon automatique. Au-delà de la production de livrables, une PIC permet également d’exécuter des tests automatiques ; avec des tests automatisés suffisamment poussés, on pourrait même envisager de pousser le raisonnement encore plus loin, jusqu’au déploiement en continu… Mais nous n’en sommes pas là, revenons plutôt à notre déploiement automatisé !
La plate-forme d’intégration continue, source de nombreux bénéfices
Commençons par quelques-uns des avantages d’une PIC, puisque le déploiement automatisé repose généralement dessus.
La maîtrise des sources. L’intégration d’un projet dans une PIC nécessite ses codes sources. Le fait de passer par un outil que vous hébergez pour produire les livrables vous garantit de disposer des sources correspondant aux livrables installés, et de modifier les sources et produire de nouveaux livrables, même sans le support de la MOE à l’origine du projet.
La maîtrise de la qualité. Puisque vous disposez des sources, il est possible de les auditer, et généralement une PIC propose un certain nombre d’outils appropriés. Ceci permet de mesurer la qualité du projet, si ce n’est de la maîtriser, avec notamment des tests automatisés et des métriques paramétrées selon vos normes.
L’indépendance. Cette double maîtrise du processus de construction et du code du projet permet une réversibilité plus simple, et donc une certaine liberté vis-à-vis du réalisateur.
6 bonnes raisons d’adopter le déploiement automatisé
Il est vrai que le déploiement automatisé apporte ses propres avantages.
1 – Des déploiements sans risque. Un déploiement automatisé est reproductible, sans intervention manuelle. Le risque d’erreur d’inattention ou d’imprécision dans les procédures d’installation et leur mise en œuvre s’en trouve fortement réduit.
2 – Des déploiements rapides. Sans intervention manuelle, on évite les temps d’attente : vérifications d’informations, saisies, procédures de contrôle manuel… On peut en outre paralléliser un grand nombre d’opérations, entre plusieurs serveurs et au sein d’un même serveur. Les temps d’installation sont réduits, et par conséquent les indisponibilités des applications lors des mises à niveau.
3 – Des habitudes communes. L’utilisation d’une seule procédure de livraison pour toutes les plates-formes permet d’imposer des habitudes de travail communes à toutes les équipes, du développement à la production. Ceci réduit les risques au passage d’un environnement à l’autre et permet aux différents intervenants de partager un vocabulaire commun.
4 – Des cycles rapides. Avec des déploiements rapides et peu risqués on peut envisager des mises à jour fréquentes des applications installées. Le gain dès les phases de développement et de recette est conséquent : d’une part les cycles développement-recette-intégration ont un coût d’installation plus faible à amortir, et peuvent dès lors être raccourcis ; et d’autre part les corrections en recette peuvent être vérifiées immédiatement, ce qui réduit aussi les cycles détection-correction-vérification des défauts.
5 – Des installations déléguées. Si l’outil de déploiement est accessible à tous, ce qui ne représente pas nécessairement un risque puisque les droits sur les environnements cibles peuvent être cloisonnés, la gestion des déploiements peut être déléguée. Ainsi, en phase de recette la MOA peut provoquer des installations, sans impliquer les équipes de développement, d’intégration ou d’exploitation.
6 -Plus de sauvegardes ! Une fois qu’un déploiement se fait sur un serveur vierge en quelques minutes, il n’est plus nécessaire de prévoir de le sauvegarder ! Tout serveur qui ne contient pas de données irremplaçables peut simplement être réinstallé en cas de désastre. L’installation d’un serveur complémentaire peut aussi être une réponse aux questions de tenue à la charge…
Si les gains sont considérables, les enjeux sont à étudier avec attention : cela fera l’objet d’un prochain article.