Livre blanc Deployment Automation Distribution continue : automatisation du pipeline de déploiement
Table des matières Importance de la distribution continue.... 1 Absence d interaction entre conception et déploiement... 3 Automatisation et interaction du pipeline de déploiement.... 4 Intégration de la chaîne d outils complète... 5 Modélisation, gestion et visualisation de votre pipeline de déploiement... 6 Automatisation du déploiement axé sur les applications.... 7 Résumé... 7 page
La distribution continue permet aux entreprises de répondre rapidement aux attentes de leurs clients tout en améliorant la qualité de leurs produits, et ce, à moindre coût. Importance de la distribution continue La distribution continue est une pratique de distribution de logiciels qui nécessite de créer et déployer des logiciels qui peuvent être mis en production à tout moment. Pour satisfaire cette condition, vous devez intégrer de manière continue les modifications logicielles apportées lors du développement, de la conception, des tests et du déploiement des exécutables, et être prêt à les mettre en production lorsque l activité le nécessite. Il s agit d une évolution majeure de la manière dont la plupart des logiciels sont distribués actuellement dans les services informatiques des entreprises. Pourquoi la distribution continue est-elle importante pour les services informatiques des entreprises? Car elle permet aux entreprises de répondre rapidement aux attentes de leurs clients tout en améliorant la qualité de leurs produits, et ce, à moindre coût. Fig. 1 La nécessité de la distribution continue 1
Livre blanc Distribution continue : automatisation du pipeline de déploiement L objectif de la distribution continue est de mettre en place des méthodes qui permettent de distribuer des logiciels de valeur et de qualité de manière efficace, rapide et fiable. La distribution continue repose sur la rapidité de mise sur le marché et de développement, de la réflexion au déploiement ; l objectif étant de devancer la concurrence. Cette rapidité de mise sur le marché implique un cycle d observations plus court ainsi qu un délai de rentabilisation plus rapide. Avec ce cycle d observations plus court, vous échouez, corrigez, ajustez et réussissez plus rapidement. Cette agilité offre un avantage concurrentiel notable. C est la raison pour laquelle les entreprises comme Amazon et Netflix dominent leurs concurrents respectifs, évoluent vers des marchés contigus et prennent la position de leader sur leur marché. Ces sociétés peuvent s adapter plus facilement à l évolution du marché et proposer de nouvelles fonctionnalités et services plus rapidement que leurs concurrents. La distribution continue repose sur la rapidité de mise sur le marché et de développement, de la réflexion au déploiement ; l objectif étant de devancer la concurrence. Cette rapidité de mise sur le marché implique un cycle d observations plus court ainsi qu un délai de rentabilisation plus rapide. Le pipeline de déploiement constitue le coeur de la distribution continue. Il s agit de la mise en oeuvre automatique de votre processus de conception, de déploiement, de test et de distribution des applications. Le pipeline de déploiement est instancié dès lors qu une application est modifiée. Fig. 2 Présentation détaillée d un pipeline de déploiement 2
Il ne peut y avoir de distribution continue sans intégration continue. L intégration continue permet aux équipes de développement d automatiser l intégration, la conception et le test de code dans l environnement de développement. Bien que le pipeline de déploiement soit un schéma efficace pour passer du développement à la distribution d un logiciel, le mappage d un pipeline de déploiement automatisé dans l ensemble de l entreprise peut s avérer complexe. Les entreprises tendent à débuter en adoptant une approche progressive. Elles commencent par les processus de développement et de conception qui se terminent avec l intégration continue (qui constitue la base du pipeline de déploiement). Absence d interaction entre conception et déploiement Le pipeline de déploiement repose sur le processus d intégration continue. Il ne peut y avoir de distribution continue sans intégration continue. L intégration continue permet aux équipes de développement d automatiser l intégration, la conception et le test de code dans l environnement de développement. À l aide d un serveur d intégration continue comme Jenkins, les environnements de développement et de conception sont intégrés et automatisés. Il existe différentes manières de lancer des conceptions, comme effectuer une validation dans un système de contrôle de versions, réaliser une planification via un mécanisme semblable à cron, exécuter une nouvelle version lorsque d autres versions sont terminées ou demander une URL de version spécifique. Fig. 3 L absence d interaction entre les processus dans les entreprises freine la distribution continue 3
Livre blanc Distribution continue : automatisation du pipeline de déploiement Cependant, dans de nombreux projets logiciels, une fois la conception terminée, il y a une absence totale d interaction entre les processus de conception et de déploiement. Alors que les équipes de développement dirigent les processus de développement et de conception, le processus de déploiement relève généralement de la responsabilité d un autre service, qui dispose d un ensemble différent d outils, de scripts et de processus pour déployer et tester les versions dans le pipeline de déploiement. L intégration de la chaîne d outils au serveur d intégration continue est souvent faible, voire inexistante. Une transmission physique a lieu et l équipe de déploiement commence un processus manuel exigeant pour déployer les candidats à la distribution dans des environnements de test et de production. Cette absence d interaction se transforme en goulot d étranglement lorsque les déploiements s accumulent et engendre des déploiements de faible qualité et des temps de cycle plus longs, le tout s accompagnant d un coût supérieur pour l entreprise. Alors que les équipes de développement dirigent les processus de développement et de conception, le processus de déploiement relève généralement de la responsabilité d un autre service, qui dispose d un ensemble différent d outils, de scripts et de processus pour déployer et tester les versions dans le pipeline de déploiement. Automatisation et interaction du pipeline de déploiement Le produit Deployment Automation de Micro Focus fait disparaître cette absence d interaction en travaillant de manière fluide avec des outils d intégration continue comme Jenkins et en automatisant l ensemble du pipeline de déploiement. Deployment Automation comble ce fossé entre développement et production en intégrant la chaîne complète d outils, en gérant et en visualisant le déploiement des candidats à la distribution dans l intégralité du pipeline, le tout en se concentrant sur les applications. 4
Deployment Automation est fourni avec des plugins utilisables dans de nombreux processus de déploiement courants. D autres plug-ins peuvent être facilement mis à disposition pour une large gamme d outils, comme les outils de test ou de middleware, les bases de données, les serveurs et d autres objectifs de déploiement. Fig. 4 L automatisation du pipeline de déploiement avec Deployment Automation Intégration de la chaîne d outils complète Deployment Automation prend en charge plus de 80 intégrations de chaîne d outils en proposant une architecture de plug-in flexible, robuste et évolutive. Les plug-ins proposent des fonctions de traitement de base ainsi qu une intégration à des outils tiers. Deployment Automation est fourni avec des plug-ins utilisables dans de nombreux processus de déploiement courants. D autres plug-ins peuvent être facilement mis à disposition pour une large gamme d outils, comme les outils de test ou de middleware, les bases de données, les serveurs et d autres objectifs de déploiement. 5
Livre blanc Distribution continue : automatisation du pipeline de déploiement Pour effectuer une intégration à Jenkins, il vous suffit de télécharger, d installer et de configurer le plug-in Deployment Automation de Jenkins. Deployment Automation s intègre aux outils de test automatisé et peut lancer un test automatique dans le cadre du processus de déploiement. Vous pouvez également automatiser le provisioning de la pile d applications complète à l aide de plug-ins pour Chef, AWS ou VMware. Pour obtenir la liste complète des plug-ins pris en charge, consultez notre centre de documentation. Deployment Automation vous permet de gérer facilement tous vos pipelines de déploiement, et ce, dans leur intégralité. Modélisation, gestion et visualisation de votre pipeline de déploiement Le pipeline de déploiement modélise votre processus de distribution de logiciels, du contrôle de version à la livraison au client. Chaque fois qu une modification est validée, un nouveau pipeline de déploiement est instancié. Selon l application et la modification, le pipeline de déploiement peut s étendre à différents chemins et environnements requis. Le déploiement dans ces environnements peut s effectuer dans un certain ordre, en plusieurs flux parallèles ou être proposé sous forme d étapes facultatives manuellement sélectionnées. Le nombre de pipelines de déploiement à gérer peut augmenter selon le nombre d applications, d équipes, d exigences et d environnements. Deployment Automation vous permet de gérer facilement tous vos pipelines de déploiement, et ce, dans leur intégralité. Vous pouvez facilement créer, importer, exporter et visualiser tous les pipelines de déploiement et les environnements associés. Vous pouvez également demander un processus de déploiement sur le premier environnement du pipeline uniquement. Par la suite, vous pouvez promouvoir uniquement les environnements suivants. Cela permet de garantir que la même configuration est utilisée pour chaque environnement du pipeline. La promotion automatique, si elle est sélectionnée, promeut automatiquement le candidat à la distribution s il a été déployé avec succès dans le premier environnement. Si le déploiement dans cet environnement est réussi, l application est automatiquement promue vers l environnement suivant dans l ordre du pipeline. Si chaque promotion est réussie, la promotion automatique continue d un environnement à l autre jusqu à la promotion vers le dernier environnement du pipeline. L affichage du pipeline de déploiement offre une vision globale de la manière dont chaque environnement est utilisé dans chaque pipeline. Vous pouvez rapidement comprendre ce qui est déployé et où le déploiement est effectué, le tout au sein d un seul produit. 6
Il est important de vérifier que les composants d application testés ensemble sont déployés ensemble. Deployment Automation résout cette question grâce à la prise en charge des snapshots et des processus d application. Automatisation du déploiement axé sur les applications Les applications actuelles contiennent des composants qui peuvent être tirés de différentes sources et déployés sur des plates-formes, ressources et niveaux d application différents. La coordination et l harmonisation sont essentielles pour réussir le déploiement de ces applications. Il est important de vérifier que les composants d application testés ensemble sont déployés ensemble. Deployment Automation résout cette question grâce à la prise en charge des snapshots et des processus d application. Les processus d application peuvent s exécuter manuellement, automatiquement avec une condition de déclenchement ou selon une planification établie par l utilisateur. Lorsque plusieurs processus sont définis pour un composant, l application détermine les processus exécutés et l ordre de leur exécution. Par exemple, une application multiniveaux peut avoir un niveau Web et un niveau base de données. Une fois approuvés, le niveau Web et le niveau base de données sont déployés simultanément. Le processus d application appelle les processus de composant associés contenant toutes les étapes de déploiement afin de déployer les composants sur les ressources spécifiques. Un snapshot représente l état actuel d une application dans l environnement. Les snapshots spécifient la combinaison des versions de composant que vous déployez ensemble. Ce sont des modèles que vous créez avant de déployer l application. Un snapshot spécifie la version exacte de chaque composant de l application. Lorsqu un snapshot est créé, Deployment Automation collecte les informations sur l application, y compris les versions de composant, pour un environnement donné. Pour la plupart des utilisateurs, le snapshot est tiré dans le pipeline. Un snapshot est créé en fonction de l état de l application dans l environnement. Il capture par conséquent les différentes versions des composants à un moment donné. Résumé La distribution continue peut améliorer de manière significative la valeur que vous apportez au client, mais elle peut être difficile à mettre en oeuvre. Beaucoup d entreprises ont mis en oeuvre l intégration continue, qui constitue la base de la distribution continue, mais elles ne parviennent pas à effectuer une transition fluide vers le processus de déploiement et de distribution, et à l automatiser. Deployment Automation peut intégrer, gérer et automatiser l intégralité de votre pipeline de déploiement, le tout en se concentrant sur les applications. 7
Micro Focus France +33 (0) 1 55 70 30 13 Micro Focus Siège social au Royaume-Uni Royaume-Uni +44 (0) 1635 565200 162-FR0098-001 S 03/17 2017 Micro Focus. Tous droits réservés. Micro Focus et le logo Micro Focus, entre autres, sont des marques ou des marques déposées de Micro Focus ou de ses filiales et sociétés affiliées au Royaume-Uni, aux États-Unis et dans d autres pays. Toutes les autres marques sont la propriété de leurs détenteurs respectifs.