Difference between revisions of "Continuous Deliver"

From air
Jump to navigation Jump to search
Line 29: Line 29:
   
   
[[File:Jenkins-global.png]]
+
[[File:Hudson-job-main-page.png]]
   
 
[[File:Integration.png]]
 
[[File:Integration.png]]

Revision as of 21:01, 4 February 2015


Le Continous Delivery

En combien de temps votre entreprise peut-elle déployer une application dans laquelle une seule ligne de code a été modifiée?

Cette problématique répond à l’utilité du concept du Continous Delivery (C.D). Le C.D est un ensemble de technique permettant que pour chaque modification du code, d’effectuer un ensemble de tests automatisé, pour que le code que soit prêt à être déployé directement à l'équipe de production.

Fonctionnement Deploiement.png


Ainsi le C.D est une évolution de l’intégration Continue. Comme nous l'avons vu en Génie Logiciel, l’intégration continue consiste à vérifier automatiquement et à chaque modification de code source que le résultat des modifications ne produit pas de régression. C'est à dire que si votre commit produit des erreurs sur les résultats, celui-ci ne va pas être accepté. (T'as le droit de tout péter, mais t'es obligé d'être au courant). L’intégration Continue permet donc d'avoir plus confiance en son propre code et celui de son équipe, de responsabiliser les intervenants sur la qualité de leur code et surtout pouvoir déployer plus sereinement.

Un petit rappel concernant l’intégration continue:

  • Le code source soit partagé (en utilisant des logiciels de gestion de versions tels que CVS, Subversion, git, Mercurial, etc)
  • les développeurs intègrent (commit) quotidiennement (au moins) leurs modifications

Pour ce faire, il nécessite de contrôler plusieurs points:

  • Contrôler l'intégrité unitaire et fonctionnelle
  • S'assurer de l'absence de régressions
  • Mesurer la couverture du code
  • Surveiller le respect des conventions de codage
  • Signaler les erreurs de codage
  • Générer des rapports synthétiques utiles

Un exemple d'outils permettant l’intégration continue est Jenkins, souvent utilisé dans les projets Java développés avec maven, Jenkins est un serveur d’intégration qui s'interface avec des systèmes de gestion de versions tels que CVS, Git et Subversion, et exécute des projets basés sur Apache Ant, Maven... Jenkins fonctionne avec l'utilisation de Job, on peut configurer des jobs pour que celui-ci par exemple exécute un script à chaque commit ou bien permet de vérifier le bon fonctionnement du code. Une fois le job configuré, Jenkins permet d'obtenir des courbes de tests, d'analyse statique du code, un historique des productions effectuées. Et le tout de manière claire et simple:


Hudson-job-main-page.png

Integration.png

Voir aussi

Liens externes

Source Image