Introduction à l’intégration continue

L’intégration continue consiste à maintenir constamment une version stable déployée d’une manière automatisée sur un environnement d’intégration. Ce qui permet de tester en continue les nouvelles fonctionnalités développées, de visualiser rapidement le résultat et de s’assurer de la non régression du code produit.

Cela permet également, au fil du temps, d’avoir des statistiques sur la réactivité de l’équipe, de l’évolution de la qualité du code, et du type de fonctionnalités à haut risque de régression.

Ceci dit, cette technique permet un gain de productivité, en temps, en argent et en monitoring général de la qualité des logiciels produits.

L’intégration continue rime très bien avec les méthodologie agiles, telles que Scrum.

Choix de l’outil d’intégration continue

Ils existent plusieurs frameworks d’intégration continues, qui diffèrent en terme de support, de licence, de tarification, et des outils compatibles et d’utilisation

On peut cependant dresser un tableau comparatif des 3 outils les plus répandus et utilisés :

Nom Open Source Plugins Support Type de versionning
Bamboo (fait partie de la suite Atlassian) Non Oui (mais très chers) Très faible communauté Tout (Git, svn …)
Jenkins Oui (gratuit) Oui (plusieurs : Git, Redmine, .NET, test, qualité du code, livrables …) Oui (une très grande communauté) Tout (Git, svn …)
Travis Oui (gratuit) Très peu Non Git

Jenkins a une longeur d’avance sur les autres outils, mais pour avoir un choix plus large, je vous invite à regarder un tableau comparatif très exhaustif sur wikipedia consacré.

Pour ceux qui se plaignaient du look désuet de Jenkins, il y a le projet Blue Ocean qui a repensé l’UX de l’outil, et ajouté des fonctionnalité de visualisation des shémas de déploiement des applications, qui s’avère des fois difficile à comprendre je l’avoue.blueocean-successful-pipeline

 

J’ai toujours utilisé Jenkins, surtout dans les projets en forfait des grandes entreprises, qui ont souvent une équipe de devOps et d’architectes qui mettent en place, en interne et bien au chaud, tous les outils de l’usine logicielle et de gestion de projet.

Et sur le Cloud ?

Mais depuis que j’ai commencé à utiliser Bitbucket sur des projets plus petits (des projets interne à Azurys ou pour des petites entreprises qui ne sont pas équipées d’usine logicielle), je commence à opter pour des solutions sur le cloud, et surtout bien intégrées à Bitbucket. Et devinez quoi, Atlassian (la société mère de Bitbucket) viens de sortir il y a quelques moins Pipelines, un outil qui s’occupe du build du code depuis bitbucket, et du déploiement sur le service d’hébergement de votre choix.

Je ne l’ai pas encore testé, mais je vous promet de vous faire un retour sur un article dès que je l’utilise sur un cas concret 😉

Allez, à vous de jouer !