Table des matières
Retour DescriptionMots clésPresentationsAteliers préparatoiresAteliersGroupes de travail

T6 - Les usines logicielles (Outils/environnements de développement et de déploiement), l'approche DevOps et la virtualisation

Description

Nous aborderons dans cette thématique tous les aspects de la mise en place d'une infrastructure et d'un environnement adaptés et flexibles aux besoins des projets de développement logiciel des laboratoires.

L'infrastructure de développement encore appelée l'atelier de génie logiciel nécessaire au bon déroulement d'un projet de développement logiciel est souvent coûteux et difficile à mettre en oeuvre.

L'infrastructure nécessaire dépend de la nature du projet. Dans les méthode agile la mise en oeuvre correspond souvent au spring 0, le premier cycle du projet. Cette infrastructure facilite la gestion du cycle de développement et l'adoption de bonnes pratiques.

Le choix des outils de production de code, la spécification et le déploiement de cette infrastructure, nécessite des compétences de développeur mais aussi des compétences et des prérogatives d'administrateurs système et réseaux.

le mouvement Devops aborde cette problématique sous l'angle des relations entre les ASR (Administrateurs Système et Réseau et les développeurs pour faciliter la mise en place d'une infra-structure agile adaptée aux besoins pour chaque projet de recherche.

Ce mouvement peut rester lettre morte si le contexte de collaboration ne s'y prête pas et si l'environnement technique n'y est pas favorable. Les écueils peuvent être divers: les personnes développant ne sont pas au fait des outils pour développer, les ressources matérielles ne sont pas présentes, …

Nous verrons dans cette thématique les outils de développement logiciel, leur mise en oeuvre dans des infrastructures techniques permettant leur adaptation aux projets de développement aux travers de solutions de virtualisation de machines et d'environnement de développement configurable.

L'approche par conteneur linux LXC, les possibilités des nouveaux noyaux linux, des conteneurs Docker, les plate-formes de développement en ligne (PAAS) et les plate-formes de déploiement en ligne des logiciels (SAAS).

Nous verrons différentes usines logicielles adaptées à différents environnements de recherche et comment grâce à ces solutions les personnes amenées à produire du code (ingénieurs, thésards, chercheurs de toute thématique scientifique) peuvent s'affranchir de la mise en place technique d'outils de génie logiciel adéquats leur permettant d'adopter de bonnes pratiques (gestion de version, urbanisation, capitalisation des développement, tests de non-régression, intégration continus, déploiement, …) pour pouvoir se focaliser et valoriser leurs applications et/ou leurs travaux de recherche.

Mots clés

usine logicielle, outil de production de code, virtualisation de l'environnement de développement, conteneurs linux

Présentations

une usine logicielle mêlant un workflow mercurial (jenkins+trac+googlecode+github+bitbucket) et jenkins (le tout avec un build automatisé par cmake et des outils de tests+qualité). saltstack et docker pour optimiser l'usine. pdf vidéo

Ateliers préparatoires

Ateliers

Groupes de travail