Les pratiques de DevOps associent le développement logiciel à l'administration des infrastructures informatiques. L'objectif de cette démarche consiste à fluidifier les processus de production et d'exploitation en favorisant la communication entre tous les acteurs concernés. Dans ce contexte, plusieurs outils d'automatisation ont vu le jour afin de faciliter et d'accélérer la mise en production ainsi que le test des révisions de code apportées par les développeurs. Il s'agit précisément de l'intégration continue, qui permet d'implémenter des modifications à tout moment, de les tester et de les déployer automatiquement si aucune erreur n'est constatée.
Qu'est-ce que l'intégration continue ?
Dans le modèle DevOps, l'intégration continue sert à tester les révisions apportées à un code informatique de manière automatique. Le serveur d'intégration effectue alors les tests nécessaires pour valider le code. Cette méthode fluidifie le processus et garantit de disposer d'un code de qualité.
Quelles sont les étapes de l'intégration continue ?
- Planifier le développement
- Compiler et intégrer le code
- Tester le code
- Evaluer la qualité du code
Planifier le développement
Le DevOps sert avant tout à réunir tous les professionnels de l'informatique impliqués dans un même projet pour fluidifier la communication entre eux et ainsi, accélérer la production. La première étape de l'intégration continue semble donc assez logique : planifier les sessions de code à tester par la suite. Pour y parvenir, il paraît judicieux de mettre en place des outils collaboratifs pour attribuer les tâches de chacun. Parmi les plus courants, on trouve notamment Jira, GitLab ou encore Confluence.
Compiler et intégrer le code
Une fois que chacun sait ce qu'il doit faire, vient le temps de compiler le code et de l'intégrer avant sa phase de test. Le code source doit se trouver dans un dépôt central et faire l'objet d'un premier contrôle grâce à un outil comme GitHub ou Subversion, par exemple. Ensuite, un orchestrateur s'occupe d'automatiser toutes les étapes de compilation des fragments de code conçus par les différentes parties. Celui-ci donne également accès à tous au tableau de bord du projet renseignant l'état d'avancement des phases de test. Cette orchestration peut aussi être réalisée avec des logiciels comme Bamboo, Travis CI ou Jenkins. Mieux vaut opter pour une compilation continue via un outil, pour éviter que le développeur soit obligé de compiler manuellement son code à chaque modification. Envoyer automatiquement son code révisé au dépôt central déclenche une première étape de compilation et permet de gagner du temps avant la phase de test.
Tester le code
Lorsque le code s'avère correctement compilé, l'orchestrateur lance les tests unitaires, qui vérifient que celui-ci respecte un niveau de qualité donné. Ces examens doivent avoir lieu le plus rapidement possible afin de délivrer un feedback aux développeurs, qui peuvent alors effectuer les modifications nécessaires au plus vite. Plus le code subit de tests unitaires, plus il paraît sûr, même si ceux-ci demeurent codés par les développeurs eux-mêmes car l'outil ne peut concevoir des tests en autonomie. Ces analyses garantissent de débusquer les erreurs plus facilement, de sécuriser la maintenance en cas de régression de code et de documenter les évolutions de ce dernier au fur et à mesure.
Évaluer la qualité du code
Les tests unitaires garantissent un code de qualité et fonctionnel, comportant le moins de bugs possibles. Une fois cette étape terminée, il convient de s'assurer que le code reste durable dans le temps et qu'il pourra faire l'objet de modifications à l'avenir sans devenir complètement obsolète. Mesurer la qualité du code revient à analyser sa dette technique, c'est-à-dire le temps nécessaire à l'ajout de nouvelles fonctionnalités ou à la correction de problèmes. Plus la dette technique se révèle élevée, plus l'évolution du code dans le temps semble compliquée. Cette étape peut être réalisée avec des outils comme SonarQube, GitLab Code Quality ou Cast.
Les meilleurs outils d'intégration continue
- Jenkins
- Bamboo
- TeamCity
- Gitlab CI
- Travis CI
Jenkins
Jenkins constitue sans doute l'outil d'intégration continue le plus connu du marché et l'un des plus populaires. Il s'agit d'un logiciel gratuit et open source, qui bénéficie de nombreuses mises à jour très fréquentes, implémentées par une vaste communauté. Développé en Java, il peut fonctionner de manière autonome avec son serveur web embarqué ou dans un conteneur web. Il possède d'ailleurs plus de mille plugins pour mieux s'intégrer à la plupart des outils de développement, de test et de déploiement.
Bamboo
Cet outil d'intégration continue figure également parmi les plus appréciés des développeurs. Développé par Atlassian, Bamboo se révèle très pratique à utiliser, notamment car il effectue tout au même endroit. Il s'agit d'un serveur d'intégration qui réalise à la fois la construction automatique, les tests et la création des versions. La particularité de Bamboo reste sans doute son interface permettant le glisser-déposer, ce qui permet de gagner un temps précieux. Ce logiciel fonctionne également très bien avec les autres outils conçus par Atlassian tels que Jira ou BitBucket.
TeamCity
TeamCity prend également la forme d'un serveur d'intégration développé en Java, par l'éditeur JetBrains. Gratuit et facile à utiliser, il s'intègre très bien à la plupart des environnements de développement et propose des feedbacks en temps réel dès lors qu'un test échoue. Ce logiciel peut aussi identifier de manière quasiment immédiate da cause de l'échec, ce qui permet de gagner, là encore, un temps précieux dans la phase de développement et de correction.
Gitlab CI
Comme son nom l'indique, GitLab CI fait partie de GitLab. Cet outil d'intégration continue prend la forme d'une application web dotée d'une API capable de stocker des projets et les informations liées à leur état dans une même base de données. Ce logiciel DevOps aide les développeurs à mettre leurs idées en production et existe en version gratuite, mais limitée.
Travis CI
Le logiciel d'intégration continue Travis CI compte, lui aussi, parmi les plus souvent recommandés. Il s'agit d'un logiciel libre mais payant, qui propose d'effectuer plusieurs tests gratuits sur des projets open source. Travis CI s'installe de manière simple et se configure en YAML. Il peut compiler, tester et déployer un code source mais aussi lancer des tests en environnement Docker.
Pour aller plus loin, découvrez comment évaluer votre site web en utilisant l'outil Website Grader ; ou découvrez les modèles de site web gratuits de HubSpot.