Usine Logicielle - Intégration Continue (3 jours)

Usine Logicielle - Intégration Continue

Objectifs

Les projets informatiques, en plus d'être soumis à toujours plus de critères de qualité - en particulier pour les applications en ligne ou distribuées - subissent un rythme de livraison qui s'accélère régulièrement. Nouvelles méthodes de gestion, équipes changeantes ou morcelées… Les applications qui s'en sortent le mieux dans la durée sont celles qui s'appuient sur un socle d'outils et culturel solide. Cette formation fait le tour de la question du développement logiciel afin d'en identifier les écueils et les dangers. Elle se propose également de décrire et de donner à tester les solutions les plus performantes du marché, du développement à la supervision, en passant par la mise en production et les tests. A l'issue de cette formation, le stagiaire maîtrisera tous les enjeux d'une usine logicielle efficace et saura comment mettre en oeuvre progressivement chacune des solutions disponibles, voire d'en inventer de nouvelles !

Contenu de la formation

Le déploiement logiciel
  • Approche naïve étape par étape Problèmes courants rencontrés, anti-patterns
  • Identification des limites de cette approche et mise à jour des besoins
Vers le déploiement continu
Grands principes
  • Automatisation
  • Versionnement
  • Changements culturels
Solutions
  • Outillage
  • Culture
Le déploiement continu pas à pas
Environnement de développement intégré
  • Fonctionnalités attendues
  • Comparatif des solutions principales : IDE, Eclipse Netbeans
Versionnement des sources
  • Fonctionnalités attendues
  • Présentation CVS, SVN, Git
Gestion de configuration
  • Versionner
  • Gérer les dépendances
  • Gérer la configuration système
  • Gérer les environnements
Build
  • Fonctionnalités attendues
  • Présentation des solutions majeurs : Ant, Maven, Gradle
Intégration continue
  • Pipeline de déploiement
  • Tests unitaires (JUnit+mockito…)
  • Tests d'intégrations (Spring TestContext Framework, Arquillian)
  • Tests fonctionnels (Selenium 2)
Tests, aller plus loin
  • Non regression
  • Load Test
  • Stress Test
  • Couverture de code : Emma, Jacoco, Cobertura, Clover
Qualité du code
  • Les 7 péchés capitaux du développeur
  • Les différents types d'outils
  • Solutions existantes : FindBugs, PMD, Checkstyle, Coverity, SonarQube
Bug tracking
  • Fonctionnalités attendues
  • Principes
  • Présentations des solutions du marché : Jira, Mantis, BugZilla, Trac+Agilo, Redmine
Outils de déploiement
  • Principes à respecter
  • Le cas des déploiements à grande échelle
  • Astuces
Outils de monitoring
    • Que monitorer ?
    • Le monitoring Java : Logs, JMX, JVM
    • Exploitation : Graphite, Zabbix, AppDynamics, Logstash...
    • Conclusion
 

Support de formation