Intégration continue et production continue (CI/CD)

Le pipeline d'intégration et de déploiement continus (CI/CD) fait partie des meilleures pratiques destinées aux équipes DevOps. Il permet aux développeurs de livrer des modifications de code fréquentes, fiables et dépourvues d'erreurs. Aujourd'hui, la conception d'un pipeline CI/CD constitue un aspect majeur du développement logiciel et s'inscrit dans la gestion de vie complet des API, depuis leur conception jusqu'à leur déploiement en passant par leur gestion.

Qu'est-ce l'intégration continue (CI) ?

L'intégration continue est une pratique et une philosophie de codage qui facilite la préparation, l'implémentation et le contrôle qualité des versions pour les équipes de développement. L'intégration continue vise non seulement à automatiser la manière dont les équipes de développement conçoivent, testent et regroupent les applications, mais aussi à assurer la cohérence de ces opérations. Aujourd'hui, de très nombreuses applications sont conçues à partir de code développé dans différents outils et plateformes. C'est pourquoi les équipes de développement sont à la recherche d'une solution permettant d'intégrer et de valider leurs modifications. La CI présente de précieux avantages, comme la réduction des travaux de déploiement, fréquente source d'erreur, ou encore la visibilité précoce des bugs.

Qu'est-ce que la production continue (CD) ?

La production continue (CD) se trouve à l'autre extrémité du pipeline CI/CD. La CD automatise la livraison des applications et des modifications de code vers plusieurs environnements d'infrastructure, par exemple de test ou de développement. Par la suite, la CD appelle automatiquement les bases de données, les serveurs Web et les services supplémentaires devant être mis à jour ou redémarrés après le déploiement d'une application. Les équipes peuvent ainsi planifier puis déployer leurs productions selon un calendrier de déploiement journalier, horaire ou continu.

La CI/CD en action

En déployant un modèle de développement d'applications offrant à la fois une évaluation et une génération de rapport riches et automatiques, intégrées à leur cycle de développement logiciel (SDLC), mais aussi une intégration et une production continues, les équipes informatiques permettent à leur entreprise d'évaluer et de lancer rapidement de nouvelles fonctionnalités et applications. Les entreprises qui réussissent sont celles qui associent indicateurs SDLC et financement de projets dans le but de mesurer et prioriser les projets qui auront le meilleur impact sur leur activité.

Les développeurs Mule peuvent par exemple utiliser la CI/CD afin d'automatiser les déploiements Mule à l'aide de GitHub et Jenkins Pipelines. La plupart des développeurs connaissent bien l'étape de conception ; le travail réalisé dans Anypoint Studio peut être facilement connecté au pipeline d'intégration continue en exploitant certaines des technologies mentionnées plus haut : GitHub pour le contrôle des versions, Maven pour la gestion des dépendances et l'automatisation de la conception, JUnit et MUnit pour l'automatisation des évaluations, et JIRA ou ServiceNow pour la gestion des problèmes et des services. En général, les clients ayant investi dans Microsoft qui se lancent dans la conception d'applications Mule exploitent Team Foundation et Visual Studio.

Lorsque le code est prêt à être livré, les clients MuleSoft exploitent généralement Jenkins, Puppet, Chef ou HP ALM pour l'automatisation du déploiement comme pour les processus d'orchestration des versions dans différents environnements : développement, test, préparation et production. Puppet et Chef peuvent également servir à automatiser l'installation et la configuration des runtimes Mule. Docker rencontre de plus en plus de succès, car il réduit la complexité du déploiement continu et permet de livrer le runtime Mule dans un conteneur Docker. Grâce à l'agent de gestion, Anypoint Platform for APIs et Anypoint Platform CLI, les utilisateurs peuvent renforcer l'automatisation des processus en utilisant des outils de gestion et d'automatisation de la configuration comme Puppet, Chef, Ansible et Salt, au lieu de l'interface utilisateur Anypoint Platform.