Ecole Informatique IN2P3

Slides:



Advertisements
Présentations similaires
Les outils d’intégration continue
Advertisements

Mission d’Animation du réseau Frédérique Chollet, Christian Helft Sources & Références : Réunion « Informatique IN2P »
Impact de la virtualisation sur le poste de travail, les serveurs, la salle machine et les programmes? Poste de travail? +Windows et Linux simultanés -Mémoire.
JPF 2008 Gestion distribué de version avec Mercurial Michael Scherer JPF 2008.
P RÉSENTATION STAGES 2009 (INRA) Développement des interfaces du projet VLE: GVLE & VLE-WEB Guillaume Ansel, Aurélie Blot, Carole Lemort, Cyril Marcq,
SPATIONAV – Réseau AIS Ministère de l'Écologie, de l'Énergie, du Développement durable et de l'Aménagement du territoire.
Outils et scénarios d’édition collaborative en Haute École Étienne Vandeput Projet HETICE © CRIFA - ULg.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
OpenArticles : Libérez votre savoir ! Mise en place d'un service libre et gratuit de dépôt et d'accès aux articles scientifiques David Larlet – Janvier.
L'Agilité du RAD Comment adapter le RAD à l'Agilité Licence Creative Common By SA Matthieu GIROUX - Membre de
Les profils du SEDA confection de profil avec Agape.
RMLL 2008 Isis-FISH/Gesi Benjamin Poussin Code Lutin
Logiciel Assistant Gestion d’Événement Rémi Papillie (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Refonte du portail eaufrance Présentation du cadre de référence pour avis GCIB – 14/10/2014 – Anne Macaire.
Test logiciel J.M. Vanel Sommaire Pourquoi tester? Catégories de tests Stratégies de test Pratique des test Caractéristiques des bons tests Gestions.
Les rôles de la MOA et de la MOE sur le Système d'Information
La gestion de versions de codes
Thomas Hofer Secure-it Valais - 17 février 2017 HES-SO Sierre
Conception de « progression »
LE POINT DE VUE D’UN PHARMACIEN HOSPITALIER PRATIQUANT LES VALIDATIONS
Usine de Développement.
Comment accroître le nombre de contributions externes ?
La Politique Qualité 1.
Le Cycle de vie d’un logiciel
Séminaire Novembre 2006 Zephir : Déploiement et supervision des serveurs Eole.
Processus de développement agile
AugerDb / SimDb Gestion des simulations Auger Java
MOT Éditeur de modèles de connaissances par objets typés
Intégration Continue et SQL
- PREPARATION ou SYNTHESE => garder la mention utile.
PPE – Contexte Service de consultation des stages de la section STS-SIO Exploité sur le serveur Intranet Barney depuis 2005 Utilisé par les professeurs.
Ghania HAMMICHE Mamadou Adama DIALLO
Virtualisation d’applications mobiles dans un réseau de Cloudlets
GENEVA SHOW CASE 28/04/15.
Offres Viveris Systèmes
INF362 : projet logiciel.
3 MOIS DE FORMATION 1 MOIS DE STAGE EN ENTREPRISE prÉsentation …
Présentation de la maquette du projet
La plateforme InteropSanté - GAZELLE
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
LES IDE DE CONCEPTION Myriam BAKAYOKO Manon RAJAONARIVELO Jeremy MICHEL André NOEL Guillaume GEBAVI Arthur AGERON Fabien SIMON - G6S2.
Un Projet IaaS ? Emmanuel Braux
Module M3202 Démarche d’amélioration
Mme Sarah Aouhassi Ingénieur d’Etat en Statistiques
Préparation et suivi des achats Chapitre 21
Développement d’applications interactives
CRM SALESFORCE – EVOLUTION DU MODULE DEVIS
Integrated Business intelligence
Projet d’Appui à la Gouvernance Economique (PAGE)
„La plate-forme EAI “ Initiation à WBI
5 Analyse avec Designer d'Oracle
Présentation des nouveaux programmes de Technologie Mai 2008
Base de donnée de support
Dossier SARL Verdier Application No 8
Serveurs d’applications
Bilan de projet pour [Nom du projet]
JDepend - Analyse de la qualité du code Java -
Terraform dans Azure Meetup 20/11/2018 DevCon #7 13/12/2018.
Réforme du Lycée
Enseignement de spécialité
Élaboration d’un manuel de scenarii
Design, innovation et créativité
Référentiel des activités professionnelles (RAP)
Point d’information RNT
Parcours vers l’adoption d’une méthode de prestation DevOps (Opérations de développement) Applications offertes sur le marché et applications de SPC.
Séance centre patronal Paudex
MOT Éditeur de modèles de connaissances par objets typés
CR-GR-HSE-414 Exigences HSE pour l’opération des pipelines
Deux nouveaux programmes en « Techniques de l’informatique »
Transcription de la présentation:

Ecole Informatique IN2P3 Les outils de mise en production du logiciel

Thématique: Les outils de mise en production du logiciel Cette école s'adresse à tout développeur ayant déjà parcouru tout le cycle de développement d'un logiciel et soucieux de distribuer son programme ou de le mettre en production sur un serveur

L’école Du 28 septembre au 2 octobre 2015, à Lyon La page INDICO : https://indico.in2p3.fr/event/11728/overview Toutes les docs, présentations, TPS sont dans : Data3\calcul\Ecole_IN2P3\Ecole_IN2P3_production_logiciel_sept2015 Une quarantaine de personnes (30 stagiaires) Beaucoup de TPs autour d’un seul code « fil rouge » (en java)

Points abordés Généralités sur le cycle de vie du logiciel et la qualité du code : Notion de dette technique Retour de la société Orange TP sur l’outil SonarCube (inspection de code, indicateurs) Importance des tests (unitaires, d’intégration) Exposé sur des travaux de recherche dans ce domaine au LRI démos en TPs La production collaborative du code TP avec git et gitlab (CC) Les workflows Importance des logs et de leur normalisation Présentation de l’infra de gestion des logs du CC TP Intégration continue impacts à la DSI de l’INRA TP sur l’outil Jenkins sur l’infra Cloud du CC Le packaging de l’application sous forme de container Présentation de Docker TP Docker

Evolution des pratiques Cycle de vie du logiciel : livraisons plus fréquentes, versions fonctionnelles mais incomplètes, prise en compte des retours des utilisateurs ( méthodologie agile )  automatiser pour fiabiliser et accélérer les livraisons  « Usine Logicielle » : ensemble d’outils pour le « déploiement continu » : build, tests, inspection du code, packaging, déploiement, doc, logs

Qualités d’un logiciel Les qualités : Capacité fonctionnelle Fiabilité Utilisabilité Rendement Maintenabilité (évolutivité) Portabilité Exploitabilité Mesure / garantie de qualité : IVVQ (Intégration, Vérification, Validation et Qualification)

Bonnes pratiques pour améliorer la qualité Conception Architecture Conventions de codage Traces, exceptions Tests unitaires, d’intégration, de performance Sécurité Revues

Mesure de la non qualité Dette technique : effort supplémentaire (en jour.homme) à faire dans le développement futur pour palier aux défauts de conception (== coût de remédiation). Analogie financière : rembourser sa dette évite de continuer à payer des intérêts. Dette naturelle ou intentionnelle Méthode pour l’évaluer : Squale "Software Quality Assessment based on Lifecycle Expectations" Implémentée dans l’outil SonarQube (ressource)

Logiciel libre permettant la mesure de la qualité du code source en continu. Support multi language ( 25+ ) Reporting de la qualité du code sur différents axes. Generation de différentes vues avec evolution temporelle et différentielle Analyses automatisés ( integration maven, ant … et serveurs d’integration (Jenkins…)) Intégration dans eclipse Intégration avec des outils externes ( JIRA, Mantis, LDAP … ) Extensible par plugins Implémentation de SQALE pour évaluer la dette technique. SQALE : Software Quality Assessment based on Lifecycle Expectations

Axes de la qualité du code Architecture & design Commentaires Duplication Sources Règles de codage Tests Unitaires Bugs Potentiels Complexité

Tableau de bord

Défauts

Site demo : http://nemo.sonarqube.org/ Règles Site demo : http://nemo.sonarqube.org/

Source code management SCM : Dépôts de code Gestion des versions Centralisé versus distribué … Git : TP avancés GitLab versus GitHub : « forges sociales » GitLab : instance au CC, CERN (et au LAPP…) Workflows (branches : features, releases, hotfix..., publication, merge request)

GitLab

GitLab : statistiques

GitLab : merge request

GitLab : nouveau projet

Les logs Quoi logger ? : tout ! (info, erreurs , exceptions...) Bonnes pratiques : Utilisation de librairies Format standard, exploitable (structuré) Niveau de sévérité adapté Messages explicites (usage : homme ou machine) Avec un id unique, des infos de contexte etc… Les logs doivent (aussi) servir aux exploitants

Gestion des logs au CC Collecte : syslogNG Moteur de requetes: Elasticsearch Portail : Kibana

Les tests Activité aujourd’hui incontournable pour la qualité du logiciel, promue par l’agilité : plus tôt on teste, plus on gagne de temps à la fin Non exhaustifs Différents types, approches complémentaires : Structurel (tests unitaires, d’intégration) : analyse du code source du logiciel, test des chemins, des instructions … Fonctionnel (boîte noire) : examine le comportement du logiciel et la conformité à la spécification, création de scénarios utilisateur Bonnes pratiques : Tests de non-régression Automatisation

Jenkins Intégration continue : Ensemble de pratiques utilisées en génie logiciel consistant à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l'application développée Jenkins est un outil libre d’intégration continue écrit en Java : Interfaçage avec VCS (CVS, SVN, GIT …) Exécution de projets basés sur Apache Ant et Maven et aussi des scripts en shell Unix ou batch Windows Build + tests multi-plateformes (Cloud) Contrôle de la qualité du code (+ Sonarqube)

Intégration continue

Dashboard Jenkins

Jenkins : exemple de build

Jenkins : historique des builds

Jenkins : machines virtuelles

Jenkins : machines Cloud pour build

Logiciel libre qui automatise le déploiement d'applications dans des conteneurs logiciels. Ecrit en GO Permet de créer et gérer des containers ( vm light ) Empaquète une application et ses dépendances dans un conteneur virtuel Les conteneurs sont isolés les uns des autres Access root Repository de Dockers Très bonnes performances cpu / mémoire Déploiement docker en quelques millisecondes et kb

Dockers Virtual Machines Containers

A suivre … Actions coordonnées dans l’équipe des développeurs Mise en place d’outils (au LAPP / au CC) ? Git / gitlab SonarQube Jenkins ….