PyConFr 2015

}

samedi 10:25:00–10:50:00

Intégration et déploiement continus avec Python

Matthieu Huin, Fabien Boucher

Audience level:
Intermediate

Description

Cette présentation s'adresse à quiconque souhaitant mettre en place un système d'intégration et de déploiement continus pour ses propres projets. Nous partageons notre expérience dans ce domaine, en tant qu'utilisateurs et développeurs Python d'un environnement d'intégration et de déploiement continus.

Abstract

Assurer la qualité du code et être capable de le mettre en production au plus vite sont des problématiques cruciales dans le développement logiciel, aussi bien pour les petits projets personnels que pour les projets de grande envergure comme OpenStack. Ces problématiques sont connues sous les noms d'intégration et déploiement continus (CI et CD) respectivement. Toutefois mettre en place un environnement de CI/CD, bien qu'essentiel, peut de prime abord sembler ardu.

Nous présentons ici des outils (principalement) basés sur Python que nous utilisons au sein du projet Software Factory, poussé par Red Hat. Software Factory est une suite logicielle libre "all in one" de gestion de code collaborative, couvrant les besoins de bout en bout du cycle de vie du code:

  • gestion de projet, des sprints de développement et des tickets avec Redmine
  • gestion des versions et revue du code avec Git et Gerrit
  • gestion des tests automatisés avec Jenkins
  • gestion de l'intégration et du déploiement continus avec Zuul
  • outils collaboratifs: etherpad, paste

Nous avons automatisé et simplifié le déploiement et la gestion de ces composants, permettant ainsi de mettre en place un environnement de développement propice à l'intégration et au déploiement continus grace à Python.

Nous couvrirons les sujets suivants:

  • Déploiement automatisé de Software Factory sur un cloud OpenStack
  • Gestion des workflows d'intégration et de déploiement continus grace à Zuul
  • Gestion des noeuds esclaves pour les jobs de tests d'acceptation du code
  • Export des logs des jobs sur Swift