Pourquoi DevOps et intégration continue fonctionnent la main dans la main
L’intégration continue facilite une intégration rationnalisée du code ainsi que les phases de testing. Notre expert Chris Tozzi explique pourquoi la CI doit être un maillon de la chaîne DevOps
Si DevOps est déjà sur votre radar, vous avez inévitablement été confronté à l’intégration continue (CI – Continuous Integration). Mais à quels concepts cela s’adosse-t-il et comment cela s’insère-t-il dans des processus DevOps ?
Intégration continue : qu’est-ce que c’est ?
L’intégration continue est un mode de développement logiciel qui permet aux développeurs d’effectuer des modifications de code par petites briques, d’intégrer ces changements à la base de code principale pour enfin tester ces lignes de code pour garantir leur fonctionnement.
L’idée en fait est de minimiser les risques de défaillance d’une application, provoquée par une éventuelle mise à jour non conforme. Le risque est également d’en dégrader les performances. En réduisant la taille des mises à jour et les testant systématiquement à chaque itération, les développeurs savent tout de suite si leurs dernières modifications posent problème. De plus, il est plus facile de revenir aux versions précédentes sans affecter les autres parties de l’application.
L’intégration continue peut ainsi être considérée comme l’opposé des techniques de développement fonctionnant sur le mode waterfall. Avec ce modèle, les développeurs écrivent du code en volume, qu’ils finissent par intégrer et tester. Le risque, élevé, est que certaines lignes de code ou snippets, perdus dans cette base de code, compromettent l’application. Et si c’est le cas, identifier le bout de code qui pose problème devient très compliqué et donc chronophage.
Afin de rationaliser des processus, les développeurs s’appuient généralement sur un serveur d’intégration continue. Celui-ci intègre le code et le teste automatiquement. Il en existe de nombreux sur le marché, mais Jenkins, TeamCity ou Bamboo sont les plus utilisés.
Intégration continue VS livraison continue
Il est à noter que l’intégration continue est différente de la livraison continue (Continuous Delivery – CD).
La livraison continue correspond au fait que tous les maillons de la chaîne de livraison de vos applications – depuis la conception à la programmation jusqu’au test et déploiement – soient synchronisés en continu. De son côté, l’intégration continue fait seulement référence à une partie de la chaîne de livraison – celle associée à l’intégration de code dans une base et au test.
L’intégration continue est essentielle si vous voulez mettre en place des processus de livraison continue. Mais cette dernière nécessite bien plus que de l’intégration continue.
DevOps et l’intégration continue
Comment cela s’insère finalement dans DevOps ?
Techniquement, rien ne dit qu’il faut faire de l’intégration continue pour mettre en place des processus DevOps. DevOps est lié à des pratiques culturelles et n’est pas lié à des outils ou des technologies spécifiques. Ceci dit, si vous voulez pleinement profiter de DevOps, vous tirerez pleinement satisfaction de faire de la livraison continue une composante de votre chaîne de développement.
DevOps met l’accent sur l’agilité et sur l’accélération de la livraison logicielle. Un bon workflow DevOps sain favorise la collaboration entre tous les membres d’une équipe IT. L’intégration continue est en cela un facilitateur car cela permet aux développeurs de modifier le code très rapidement, et l’impact est identique pour les testeurs et les opérationnels.
L’intégration continue permet aussi de journaliser les modifications de code et d’en ouvrir l’accès à toutes les équipes d’une entreprise. Ces logs sont en fait un moyen rapide pour comprendre l’état en cours des phases de développement ou pour suivre les avancées du projet depuis son lancement. Cette visibilité favorise le travail collaboratif et les connexions entre équipes – l’un des buts ultimes de DevOps.