« La première règle avec toute technologie utilisée dans les affaires, c’est que l’automatisation appliquée à un process efficace va augmenter l’efficacité. La seconde règle est que l’automatisation appliquée à un process inefficace va augmenter l’inefficacité. »
Bill GATES
Avant de détailler davantage deux outils de déploiement continu (Ansible et XL Deploy), revenons aux fondamentaux : l’intégration continue (CI), la livraison continue (CD) et le déploiement continu (CD). Trois étapes clés du DevOps qui sont standardisées tout au long des projets.
Cette phase permet aux développeurs de vérifier fréquemment les modifications appliquées à leur code source. Cette pratique vise à éviter les conflits auxquels les équipes de développement sont confrontées lors de l’intégration du code sur plusieurs versions et branches.
Lorsqu’un développeur déclenche un « pull request », un processus automatisé (souvent appelé « job » ou « runner ») lance les processus de build et de test, puis déploie le package construit dans l’environnement d’intégration. L’avantage est de vérifier automatiquement le bon fonctionnement du déploiement de l’application.
C’est la suite logique de l’intégration continue. Dans cette phase, les livrables créés sont automatiquement versionnés et déployés dans un outil de dépôt d’objets binaires. L’application, ainsi mise à disposition, peut être déployée à tout moment par les membres des équipes d’opérations (Ops) sur l’environnement de leur choix.
C'est une extension de la livraison continue afin d’assurer et d’accomplir le déploiement d’une façon automatisée dans les environnements de production. Le DC implique des méthodes de déploiement automatisées qui s’appuient sur des outils comme Ansible et XL Deploy.
Créé en 2012 par Michael DeHann et racheté par Redhat en 2015, Ansible est un outil de déploiement continu, de configuration et de l’infrastructure en tant que code. Il est développé en langage python.
XL Deploy permet de déployer tout type d’applications (Java, Windows, BDD, etc.) sur tout type d’infrastructure et d’environnement (On Premise ou Cloud). Il a été créé en 2011 par Xebialabs, puis racheté par Degital.ai en 2020. Il est développé en langage Java.
La pertinence des équipes Devs et Ops repose sur leur capacité à déployer des applications au même rythme que les besoins des utilisateurs finaux, tout en préservant les composants socle du système d’informations qui les supportent. Ce processus, concrétisé par la mise en place d’outils de CI/CD efficients, permet d’obtenir des avantages concurrentiels accrus et une livraison de meilleure qualité du produit.
L’enjeu majeur de cette efficacité s’appuie sur la capacité à choisir les bons outils, c’est-à-dire, ceux susceptibles de répondre aux aspirations des équipes et qui sont le plus adaptés aux contextes projet. Ansible et XL Deploy présentent chacun des avantages et des inconvénients, comme énoncé précédemment.
Ansible a actuellement la préférence des équipes DevOps car il est considéré comme le plus mature, en termes de prise en main ou du fait des composants systèmes disponibles. De plus, son support est reconnu et son architecture plutôt simple. Sa version communautaire étant très aboutie, il est également privilégié pour des raisons financières.
XL Deploy est plutôt destiné aux organisations en cours de construction ou en cours d’adoption de stratégie DevOps. Son interface graphique est très ergonomique, les plans de déploiements sont rapidement traçables et sa simplicité d’utilisation incarne complètement le processus CI/CD avec les outils d’intégration continue. Cependant, le coût des licences XL Deploy peut également contraindre certaines organisations à se tourner vers des solutions plus abordables, voire gratuite, c’est notamment le cas dans la plupart des PME.
Il n’existe pas d’outil de déploiement continu parfait pour la mise en place de la culture DevOps. Avant de choisir la solution la plus adaptée à vos besoins, je vous conseille fortement de bien connaitre votre propre organisation, vos besoins projets ainsi que vos processus internes.
Je vous recommande de tester plusieurs outils sur un premier projet, l’objectif étant de s’assurer que les équipes soient assez matures dans leurs réflexions avant de faire le bon choix.
Si l’on suit le précepte de Bill GATES, l’industrialisation de ces bonnes pratiques rendra le cycle de vie du projet plus réactif et mettra en exergue l’amélioration continue de la qualité du code livré.
Mohamed,
Expert technique
Crédit photo © Xebia Labs