mise en production l’industrialisation de la usine ... · database scripting : initialisation db...
TRANSCRIPT
![Page 1: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/1.jpg)
Usine logicielle JavaL’industrialisation de la
mise en production
![Page 2: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/2.jpg)
Ippon Technologies © 2014
Licence
Cette formation vous est fournie sous licence Creative Commons AttributionNonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
Vous êtes libres de :
Copier, distribuer et communiquer le matériel par tous moyens et sous tous formats
Selon les conditions suivantes :
● Attribution : Vous devez créditer l'Oeuvre, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées à l'Oeuvre. Vous devez indiquer ces informations par tous les moyens possibles mais vous ne pouvez pas suggérer que l'Offrant vous soutient ou soutient la façon dont vous avez utilisé son Oeuvre.
● Pas d’Utilisation Commerciale : Vous n'êtes pas autoriser à faire un usage commercial de cette Oeuvre, tout ou partie du matériel la composant.
● Pas de modifications : Dans le cas où vous effectuez un remix, que vous transformez, ou créez à partir du matériel composant l'Oeuvre originale, vous n'êtes pas autorisé à distribuer ou mettre à disposition l'Oeuvre modifiée.
http://creativecommons.org/licenses/by-nc-nd/4.0/deed.fr
![Page 3: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/3.jpg)
Ippon Technologies © 2014
Ippon Formation en bref
Pourquoi Ippon Technologies publie ses supports de formation ?
Car Ippon participe à la communauté Java et Web et soutien le modèle open-source
Le support théorique représente 40% du temps de formation, l'intérêt est dans les Travaux Pratiques et l'expert Ippon qui assure le cours
![Page 4: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/4.jpg)
Ippon Technologies © 2014
Pour nous contacter
Pour nous contacter et participer à nos formations :● Technique : [email protected]● Commercial : [email protected]
Toutes les informations et les dates de formations sont sur notre site internet et notre blog:● http://www.ippon.fr/formation● http://blog.ippon.fr
![Page 5: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/5.jpg)
Ippon Technologies © 2014
Sommaire
● Introduction● Le déploiement logiciel
○ Approche naïve○ Problématiques
● Vers le déploiement continu○ Grands principes○ Solutions
● Le déploiement continu pas à pas○ IDE○ Versionnement & Gestion de configuration○ Build○ Intégration continue○ Tests & Qualité du code○ Bug tracking○ Outils de déploiement & de monitoring
![Page 6: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/6.jpg)
Ippon Technologies © 2014
Introduction
![Page 7: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/7.jpg)
Ippon Technologies © 2014
Changement vs Stabilité (1)
VS
![Page 8: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/8.jpg)
Ippon Technologies © 2014
Changement vs Stabilité (2)
VS
![Page 9: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/9.jpg)
Ippon Technologies © 2014
Time to market vs Opportunités
VS
![Page 10: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/10.jpg)
Ippon Technologies © 2014
Industrialisation du changement
VS
![Page 11: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/11.jpg)
Ippon Technologies © 2014
Mise en production naïveProblèmes courants rencontrésMise à jour des besoins
Le déploiement logiciel
![Page 12: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/12.jpg)
Ippon Technologies © 2014
Une mise en production standard
Développement
Compilation
Déploiement
Intégration
Validation / Recette manuelle
Mise en production
![Page 13: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/13.jpg)
Ippon Technologies © 2014
Problèmes fréquemment rencontrés
![Page 14: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/14.jpg)
Ippon Technologies © 2014
Développement
Mésinterprétation du cahier des chargesManque de configurationRessources locales incompatibles avec la productionBugs
![Page 15: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/15.jpg)
Ippon Technologies © 2014
Compilation
Quelles sources ?Quelles options de compilation ?Quelles dépendances de librairie ?Quelles versions ?Sur quelle plate-forme ?Qui est responsable ?
![Page 16: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/16.jpg)
Ippon Technologies © 2014
Déploiement
Arrêt du service ?Copie du binaire au bon endroit (bon tomcat)Viabilité du fichierTraçabilité du fichier mis à dispositionCommunication quand à la disponibilité du livrable
![Page 17: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/17.jpg)
Ippon Technologies © 2014
Deploiement - Anti-pattern
Un déploiement ? Quel déploiement ?
![Page 18: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/18.jpg)
Ippon Technologies © 2014
Intégration
Le livrable n’est pas suffisamment configurableLa configuration est mal faite
● Ressources inexistantes● Ressources incomplètes● Ressources pas à jour● Mauvaise plate-forme cible● Incompatibilités de version● Mise à jour des données manquante/incomplète
Elle nécessite une expertise techniqueElle est fastidieuse en cas de plate-forme fortement redondante
![Page 19: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/19.jpg)
Ippon Technologies © 2014
Anti-pattern d’intégration
Documentation fastidieuseAller-retours Dev-IntegrationModification de dernière minuteÉléments de cluster hétérogènesRelease de plus de quelques minutes
![Page 20: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/20.jpg)
Ippon Technologies © 2014
Recette
Test volatiles● non fiables● non reproductibles● incomplets
Tâches rébarbatives, manuelles, hautement sujettes à l’erreurEffet boite noire
![Page 21: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/21.jpg)
Ippon Technologies © 2014
Anti-pattern de recette
Tests manuels
![Page 22: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/22.jpg)
Ippon Technologies © 2014
Mise en production
Temps d’indisponibilitéComportement de l’application en condition réelleMulti-utilisateur
● Confidentialité des données● Concurrence
Tenue en chargeRetour en arrière
![Page 23: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/23.jpg)
Ippon Technologies © 2014
Mise en production - Anti-pattern
Temps d’indisponibilité excessifIssue imprévisible
![Page 24: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/24.jpg)
Ippon Technologies © 2014
Besoins mis à jour
![Page 25: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/25.jpg)
Ippon Technologies © 2014
Émergence de nouveaux besoins
Une mise en production rapide, sans risque
Visibilité des livrables : quoi, quand, oùVisibilité de la disponibilité/performance
Une mise en production doit devenir un processus automatisé, rapide, répétable et répété fréquemment, maîtrisé, prévisible, facilement inversable
![Page 26: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/26.jpg)
Ippon Technologies © 2014
Émergence de nouveaux besoins
Identification du livrable● Versionnement systématique
Build automatique
Validation / Non régression systématique● Tests unitaires automatisés● Tests d’intégration automatisés● Tests fonctionnels automatisés● Tests d’exploration
![Page 27: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/27.jpg)
Ippon Technologies © 2014
Émergence de nouveaux besoins
Communication● Centralisation des demandes d’amélioration /
correction● Statut des releases disponibles, des déploiements
effectués● Documentation type wiki
![Page 28: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/28.jpg)
Ippon Technologies © 2014
Émergence de nouveaux besoins
Qualité
Tests d’acceptanceTests de chargeMétriques
Automatisation du déploiement...
![Page 29: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/29.jpg)
Ippon Technologies © 2014
Vers le déploiement continu
![Page 30: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/30.jpg)
Ippon Technologies © 2014
Principes du déploiement continu
![Page 31: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/31.jpg)
Ippon Technologies © 2014
Grands principes
Processus fiable et répétable● Automatisation systématique● Versionnement systématique
3 grandes étapes : provisionner, installer, configurer
![Page 32: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/32.jpg)
Ippon Technologies © 2014
Grands principes
Affronter les tâches pénibles
![Page 33: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/33.jpg)
Ippon Technologies © 2014
Grands principes
“Bring Quality In”
![Page 34: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/34.jpg)
Ippon Technologies © 2014
Grands principes
Fait = Démontré à l’utilisateur
![Page 35: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/35.jpg)
Ippon Technologies © 2014
Grands principes
Responsabiliser toute l’équipe
![Page 36: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/36.jpg)
Ippon Technologies © 2014
Grands principes
Amélioration Continue
![Page 37: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/37.jpg)
Ippon Technologies © 2014
Le déploiement continu pas à pas
![Page 38: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/38.jpg)
Ippon Technologies © 2014
Solutions
Vers l’industrialisation logicielle● Outillage● Culture
![Page 39: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/39.jpg)
Ippon Technologies © 2014
Le déploiement continu pas à pas
Environnement de Développement IntégréVersionnementGestion de configurationBuild toolsIntégration continueTests de non régressionBug TrackingOutils de déploiementOutils de monitoring
![Page 40: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/40.jpg)
Ippon Technologies © 2014
IDEEnvironnement de
Développement Intégré
![Page 41: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/41.jpg)
Ippon Technologies © 2014
IDE - généralités
Les caractéristiques d’un logiciel robuste :● Code lisible● Couverture de tests automatique raisonnable● Architecture saine● Outils de debugging performants● Culture d’ingénierie qui valorise le refactoring
![Page 42: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/42.jpg)
Ippon Technologies © 2014
IDE - code lisible
Formateur de codeApplication de convention de codageDétection de redondance de code
![Page 43: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/43.jpg)
Ippon Technologies © 2014
IDE - tests
Création simplifiée de testsLancement et résultat des testsOutil de visualisation de couverture de tests
![Page 44: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/44.jpg)
Ippon Technologies © 2014
IDE - debugging
Debug en localDebug à distanceModification à chaud du code
![Page 45: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/45.jpg)
Ippon Technologies © 2014
IDE - refactoring
Identification systématique des références(code et commentaire)
Plugin de détection de code à factoriser/améliorer(PMD, Checkstyle)
![Page 46: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/46.jpg)
Ippon Technologies © 2014
IDE - interaction
SCM (Source Code Management)Gestion des dépendancesOutil de bug-trackingServeur web, avec accès en mode debugBase de données
![Page 47: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/47.jpg)
Ippon Technologies © 2014
IDE - offre
Intellij IDEAEclipseNetbeans
![Page 48: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/48.jpg)
Ippon Technologies © 2014
IDE - Netbeans 1/2
SimpleRobusteLié à OracleFonctionne mieux avec Maven* et GlassFish
![Page 49: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/49.jpg)
Ippon Technologies © 2014
IDE - Netbeans 2/2
+ Support des bases de données+ Support web (HTML, CSS, Javascript, PHP)+ Support de technologies avancées (JavaFX, Java 3D…)- Plugins moins nombreux- En retard sur les nouveaux langages- Utilisation de Maven quasi-obligatoire
![Page 50: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/50.jpg)
Ippon Technologies © 2014
IDE - Eclipse 1/2
Le plus répanduCommunauté / contributeurs importantsNombreux pluginsCouvre toutes les technologiesMulti-lingue
![Page 51: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/51.jpg)
Ippon Technologies © 2014
IDE - Eclipse 2/2
+ Versatile+ Nombre impressionnant d’extensions disponibles+ Compilation incrémentale+ Visualisation instantanée des erreurs+ Gestion des projets+ Hautement configurable- Configuration spécifique- Lourdeur- Instabilité
![Page 52: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/52.jpg)
Ippon Technologies © 2014
IDE - Intellij IDEA 1/2
StabilitéRichesse du support “out-of-the-box”Nombreux pluginsSupport natif d’UMLIntelligence contextuelle
![Page 53: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/53.jpg)
Ippon Technologies © 2014
IDE - Intellij IDEA 2/2
+ Recherche et Navigation+ Aide contextuelle pertinente+ Support de Maven+ Support d’Android+ Import de projets avancé+ Support enrichi des tests unitaires et de la couverture+ Debugging avancé de technologies phares- N’affiche pas les erreurs des fichiers clos- Ergonomie spécifique- Payant en version commerciale
![Page 54: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/54.jpg)
Ippon Technologies © 2014
IDE
TP Eclipse/IDEA/Netbeans
![Page 55: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/55.jpg)
Ippon Technologies © 2014
SCMGestion de Code Source
![Page 56: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/56.jpg)
Ippon Technologies © 2014
SCM
Stockage commun des ressources● code● configuration applicative● librairies● configuration serveur● scripts● schéma de la base de données● … tout ce qui est utile à un déploiement
![Page 57: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/57.jpg)
Ippon Technologies © 2014
SCM - Services
CentraliseVersionneRésout les conflits
Permet le catalogage (tagging)
![Page 58: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/58.jpg)
Ippon Technologies © 2014
SCM - Fonctionnalités
Commit/CheckoutBranching/MergingDiff current/tag/branch
Intégrité des données
![Page 59: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/59.jpg)
Ippon Technologies © 2014
SCM - Usage
Branching / merging ; deux approches :● branche systématique● tout sur le trunk
![Page 60: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/60.jpg)
Ippon Technologies © 2014
SCM - Usage
![Page 61: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/61.jpg)
Ippon Technologies © 2014
SCM - Solutions
CVSSVNGit
![Page 62: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/62.jpg)
Ippon Technologies © 2014
VersionnerGérer les dépendancesGérer la configuration systèmeGérer les environnements
Gestion de configuration
![Page 63: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/63.jpg)
Ippon Technologies © 2014
Gestion de conf - Versionner
Aussi important que les sources
VersionnerVersionner toutÊtre à jour
Messages explicites
![Page 64: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/64.jpg)
Ippon Technologies © 2014
Gestion de conf - Dépendances
Dépendances externesComposants logiciels
![Page 65: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/65.jpg)
Ippon Technologies © 2014
Gestion de conf - Flexibilité
Configuration et flexibilité● Coût de développement● Coût opérationnel● Risques induits
![Page 66: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/66.jpg)
Ippon Technologies © 2014
Gestion de conf - Typologie
Type de configuration● build● packaging● deployment● startup/runtime
![Page 67: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/67.jpg)
Ippon Technologies © 2014
Gestion de Configuration Applicative
Configuration Applicative● Ajout d’un nouvel environnement● Nouvelle version de l’application● Upgrade de release● Relocalisation d’un serveur● Le cas des VMsValidation de configuration● Isolation● Tests
![Page 68: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/68.jpg)
Ippon Technologies © 2014
Gestion de conf - Principes
Principes● Timing d’introduction des features● Stockage des Variables et valeurs de configuration● Automatisation de la configuration d’un environnement● Catalogue des valeurs de configuration● Nommage explicite● Modularité et encapsulation● DRY principle● Minimalisme● KISS principle● Tester la configuration
![Page 69: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/69.jpg)
Ippon Technologies © 2014
Gestion de conf - Environnement
Configuration environnement < Configuration application
Outils de gestion de configurationGestion du changement
![Page 70: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/70.jpg)
Ippon Technologies © 2014
Gestion de conf - Données
Données et application diffèrent en 2 points● volume● cycle de vie
![Page 71: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/71.jpg)
Ippon Technologies © 2014
Gestion de conf - Données
Préserver les données entre 2 release● Database scripting● Modification incrémentaleContrainte supplémentaire● Rolling back Database et Zero downtime Release
![Page 72: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/72.jpg)
Ippon Technologies © 2014
Gestion de conf - Données
Database scripting :● Initialisation DB : script, versionnement● Chaque Migration : script, versionnementButs :● Construire n’importe quelle version de la base● formaliser la dépendance de version {base:application}● Intégration au process de déploiement continu
![Page 73: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/73.jpg)
Ippon Technologies © 2014
Gestion de conf - Données
Script d’initialisation● Création de la structure● Création des instances● Création des schémas● Alimenter les données de référencePour la release de projet simple, le process suivant peut suffir :● Suppression de la base N-1● Création de la base N● Alimentation en donnéeProjet plus complexe : Changement incrémentale
![Page 74: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/74.jpg)
Ippon Technologies © 2014
Gestion de conf - Données
Migration IncrémentaleQu’est-ce :Roll-forward et Roll-backComment :Versionner la baseSQLUtilisation d’outil Flyway, Liquibase…Attention aux migrations dont le rollback est impossible
![Page 75: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/75.jpg)
Ippon Technologies © 2014
Migration IncrémentaleLe cas des Migrations destructrices● Copier le contenu de tables sous un autre nom versionné● Backup/Restore
![Page 76: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/76.jpg)
Ippon Technologies © 2014
Gestion de conf - données
Rolling back and zero downtime release● Cacher les transactions et permettre leur rejeu● Déploiement Blue-Green (prod-backup)
○ Backup Blue et restore sur Green○ Migrate Blue○ Rollback nécessaire : switch sur Green
● Découpler déploiement applicatif et migration de base○ Faire en sorte que chaque version applicative fonctionne avec la
version N et N+1 de la base de données
![Page 77: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/77.jpg)
Ippon Technologies © 2014
Build Tools
![Page 78: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/78.jpg)
Ippon Technologies © 2014
Build Tools
Un build doit être :Indépendant de la plate-formeReproductibleAutomatisableConfigurable
Gérer les dépendancesSe connecter au SCM
![Page 79: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/79.jpg)
Ippon Technologies © 2014
Build Tools - L’offre
Apache AntApache MavenGradle
![Page 80: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/80.jpg)
Ippon Technologies © 2014
Build Tools - Ant
“Modern build Tool”... qui date de 2000Implémentation Java unifiant des commandes hétérogènes dans des environnements diversUne sorte de “make”, sans la complexité d’usage
Flexible, adaptable, extensibleAbsence de contrainteInteraction avec un gestionnaire de dépendances
![Page 81: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/81.jpg)
Ippon Technologies © 2014
Ant - Cibles et points d’extension
Create Directory Layout
Ready to compile
Generate source
Compile
depends
extension-of
depends
![Page 82: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/82.jpg)
Ippon Technologies © 2014
Build Tools - Maven
Description du build du projet (POM)Description des dépendances du projetConventions par l’exceptionCycle de vie prédéfiniGestion de dépendances mutualisée (dépôt local/public)Nombreux plugins (appelés mojos pour Maven), que l’on peut développer soi-même
![Page 83: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/83.jpg)
Ippon Technologies © 2014
Maven lifecycle
Validate
Compile
Test
Package
Install
Verify
Integration-test
![Page 84: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/84.jpg)
Ippon Technologies © 2014
Maven Profiles
Séparer les tests
Surcharger la configuration par environnement
![Page 85: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/85.jpg)
Ippon Technologies © 2014
Maven profiles - séparation des tests
Product
Integration Tests
Functionnal Tests
Parent Project
…<modules> <product></modules><profiles> <profile id=”full-test”> <modules> <module>integration-tests</module> <module>functional-tests</module> </modules> </profile></profiles><profiles> <profile id=”integration-test”> <modules> <module>integration-tests</module> </modules> </profile></profiles>...
![Page 86: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/86.jpg)
Ippon Technologies © 2014
Maven profiles
TP - Surcharge de configuration
![Page 87: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/87.jpg)
Ippon Technologies © 2014
Build Tools - Gradle
Le meilleur de Ant et MavenDSL (Domain-Specific Langage)DAG (Directed Acyclic Graph)Conçu pour les projets très vastesBuild incrémentalGoogle Android OS
![Page 88: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/88.jpg)
Ippon Technologies © 2014
Gradle lifecycle
<inclure un cycle de vie du build gradle>
![Page 89: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/89.jpg)
Ippon Technologies © 2014
Build Tools
TP - Intégration de Maven dans Jenkins
![Page 90: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/90.jpg)
Ippon Technologies © 2014
Intégration Continue
![Page 91: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/91.jpg)
Ippon Technologies © 2014
Commit Stage
Pipeline de déploiement
Code analysisBuild
Configuration Managment
SCM Intégration Continue
Automatic QA Test
Exploratory QA Test
Capacity / Load Test
UAT / Demo Production
IDE
Unit Test Test coverage
Artifact
![Page 92: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/92.jpg)
Ippon Technologies © 2014
Intégration Continue - Tests
Tests unitairesTests d’intégrationTests fonctionnelsTests d’exploration
![Page 93: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/93.jpg)
Ippon Technologies © 2014
Test unitaire
Tester des algorithmes isolésValider les règles de gestion unitairesPrévenir les risques de régressionCode testable = Code mieux pensé
![Page 94: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/94.jpg)
Ippon Technologies © 2014
Test unitaire - Solutions
JUnit + Mockito ou EasyMockSpock + Groovy
DEMO
![Page 95: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/95.jpg)
Ippon Technologies © 2014
Intégration Continue
TP - Tests sous Jenkins
![Page 96: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/96.jpg)
Ippon Technologies © 2014
Test d’intégration
Vérifier le chargement du contexte du cadre applicatif (Spring, Java EE, etc.)Repenser son cloisonnement par technologieMettre à l’épreuve les transactions
![Page 97: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/97.jpg)
Ippon Technologies © 2014
Test d’intégration - Solutions
Spring TestContext FrameworkArquillian
DEMO
![Page 98: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/98.jpg)
Ippon Technologies © 2014
Test d’intégration - Solutions
Spring TestContext Framework@RunWith(SpringJUnit4ClassRunner.class)// specifies the Spring configuration to load for this test fixture@ContextConfiguration("daos.xml")public final class HibernateTitleDaoTests {
// this instance will be dependency injected by name
@Resource private HibernateTitleDao titleDao; public void testLoadTitle() throws Exception { Title title = this.titleDao.loadTitle(new Long(10)); assertNotNull(title); }}
![Page 99: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/99.jpg)
Ippon Technologies © 2014
Test d’intégration - Solutions
Test 1
Test 2
Test Suite 1
Test 1
Test 2
Test Suite 2
chargement du contexte
suppression du contexte
chargement du contexte
suppression du contexte
![Page 100: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/100.jpg)
Ippon Technologies © 2014
Test d’intégration - Solutions
Spring TestContext Framework - astuces● Charger des contextes allégés● @DirtiesContext● @IfProfileValue
![Page 101: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/101.jpg)
Ippon Technologies © 2014
Test d’intégration - Solutions
Arquillian● Conteneur sur mesure● ShrinkWrap : artifact sur mesure
![Page 102: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/102.jpg)
Ippon Technologies © 2014
Test fonctionnel
Jouer des scénarios completsTester l’IHM au travers de laquelle on atteint toutes les couches applicativesValider les règles de gestion non unitairesNon régression
![Page 103: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/103.jpg)
Ippon Technologies © 2014
Test fonctionnel - Solution
Selenium 2 (webdriver, HQ et IDE)
DEMO
![Page 104: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/104.jpg)
Ippon Technologies © 2014
Tests fonctionnels
TP - Selenium 2
![Page 105: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/105.jpg)
Ippon Technologies © 2014
TestsAller plus loin
![Page 106: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/106.jpg)
Ippon Technologies © 2014
Tests - Non régression
Pierre angulaire de la confiance qualitéCouvre toute l’applicationSystématisationMaintenance
![Page 107: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/107.jpg)
Ippon Technologies © 2014
Tests - Load Test
Teste l’application déployéeSimule la charge attendue par l’applicationLes statistiques de performance comme outils de non-régression
![Page 108: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/108.jpg)
Ippon Technologies © 2014
Tests - Stress Test
Teste l’application déployéeAugmente la charge pour identifier les limites
![Page 109: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/109.jpg)
Ippon Technologies © 2014
Tests - Couverture de code
Indice quant à la quantité de code testé100% n’est pas un objectifFavoriser le code sensible
![Page 110: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/110.jpg)
Ippon Technologies © 2014
Couverture de code - Solution
Emma -> JacocoCoberturaClover Cobertura
![Page 111: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/111.jpg)
Ippon Technologies © 2014
Qualité
![Page 112: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/112.jpg)
Ippon Technologies © 2014
Qualité du code
Homogénéiser le code
Les sept péchés capitaux du développement :● Duplication● Convention d’écriture● Manque de couverture● Bugs potentiels courants● Complexité● Documentation● Conception
![Page 113: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/113.jpg)
Ippon Technologies © 2014
Qualité du code - Concepts
Analyse statique du codeAnalyse DynamiqueProfilersMemory ToolsMonitoring Tools
![Page 114: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/114.jpg)
Ippon Technologies © 2014
Qualité du code - Précautions
Faux PositifsAdaptation au projetRègles personnellesLegacy projects
![Page 115: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/115.jpg)
Ippon Technologies © 2014
Qualité du code - Solutions
FindBugsPMDCheckStyle et JalopyCoveritySonarQube
![Page 116: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/116.jpg)
Ippon Technologies © 2014
Qualité du code - Recommandations
Les premières analyses ne seront pas pertinentesL’analyse statique seule est insuffisanteAutomatiser l’analyse de code (et l'exécuter souvent)Communiquer sur la qualitéÉviter l’excès de zèleAdapter l’analyse à chaque projetNe pas oublier les priorités
![Page 117: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/117.jpg)
Ippon Technologies © 2014
Qualité du code
TP Sonar
![Page 118: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/118.jpg)
Ippon Technologies © 2014
Bug Tracking
![Page 119: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/119.jpg)
Ippon Technologies © 2014
Bug Tracking
Disposer de métriques sur les problèmes découvertsCommuniquer sur la documentation projet
![Page 120: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/120.jpg)
Ippon Technologies © 2014
Bug Tracking - besoins
Classer les ticketsGérer les utilisateurs et leurs droitsDistinguer les projets/releasesÊtre connecté au SCMFaciliter la communicationConstituer un tableau de bord
![Page 121: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/121.jpg)
Ippon Technologies © 2014
Bug Tracking - cycle de vie
NEW
ASSIGNED
VERIFIEDREOPEN
CLOSED
RESOLVED
FIXEDDUPLICATEWONT FIXWORK FOR MEINVALIDREMINDLATER
![Page 122: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/122.jpg)
Ippon Technologies © 2014
Bug Tracking - Livraison
![Page 123: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/123.jpg)
Ippon Technologies © 2014
Bug Tracking - Solutions
BugZillaJiraMantisRedmineTrac (+ Agilo)
![Page 124: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/124.jpg)
Ippon Technologies © 2014
Déploiement
![Page 125: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/125.jpg)
Ippon Technologies © 2014
Déploiement - Scripting
One script to rule them allUn script principal pour tous les environnements
![Page 126: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/126.jpg)
Ippon Technologies © 2014
Déploiement - Le choix des armes
Utiliser la bonne technologie de déploiementUtiliser des outils de packaging éprouvés
![Page 127: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/127.jpg)
Ippon Technologies © 2014
Déploiement - objectif et méthode
Mise à niveau ou Installation complèteDéploiement = processus idempotentÉvolution incrémentale
![Page 128: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/128.jpg)
Ippon Technologies © 2014
Déploiement à grande echelle
![Page 129: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/129.jpg)
Ippon Technologies © 2014
Déploiement à grande échelle
![Page 130: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/130.jpg)
Ippon Technologies © 2014
Déploiement - astuces
Automatisation● Chemins relatifs● Éliminer les étapes manuelles
![Page 131: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/131.jpg)
Ippon Technologies © 2014
Déploiement - astuces
Versionning● Marquer les binaires avec la version SCM● Ne pas commiter les binaires : Nexus, Archiva
![Page 132: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/132.jpg)
Ippon Technologies © 2014
Déploiement - astuces
Tests● Test failed != Build Failed● Smoke tests
![Page 133: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/133.jpg)
Ippon Technologies © 2014
Deploiement - Puppet
Logiciel d’automatisation qui définit et vérifie l’état d’une infrastructure tout au long du cycle de développement● Définir l’état attendu d’un serveur● Classes, module● Piocher dans l’existant
![Page 134: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/134.jpg)
Ippon Technologies © 2014
Déploiement - Puppet
● Fonctionne en Client/Serveur● Chaque serveur de l’infrastructure est un client (puppet
agent)● Le serveur puppet (puppet master) héberge les modules● Les modules sont rendu paramétrable pour s’ajuster
sur chaque client● Chaque client possède les modules qui le concerne ● A chaque run puppet, un différentiel est établi entre la
configuration définie sur le master et ce que rapporte les agents.
![Page 135: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/135.jpg)
Ippon Technologies © 2014
![Page 136: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/136.jpg)
Ippon Technologies © 2014
Déploiement - Puppet
TP Puppet : Configurer Apache
![Page 137: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/137.jpg)
Ippon Technologies © 2014
Monitoring
![Page 138: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/138.jpg)
Ippon Technologies © 2014
Superviser quoi ?
Les temps d’exécution...● de service● de service distantL’occupation mémoireLes ressources partagées● pool de threads● pool de connexions● DLQ et queue sevrée/surchargéeLes succès/échecs
![Page 139: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/139.jpg)
Ippon Technologies © 2014
Monitoring Java
Logs internes● choisir le niveau et le support (fichiers séparés, voire en
base de données)Standard JMX● exposition de propriétés du SI● de nombreuses API phares le mettent en oeuvre nativementSurveillance de la JVM● analyse des performances et de l’occupation mémoire
![Page 140: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/140.jpg)
Ippon Technologies © 2014
Exploiter le monitoring
● Rendu graphique des métriques, dashboard(ex: Graphite)
● Seuils d’alerte sur des métriques réseau, souvent à l’aide d’agents(ex: Zabbix)
● Analyse temps réel de la JVM et suivi fin en cas de dépassement des moyennes constatées(ex: AppDynamics)
● Exploitation de logs(ex: splunk, cacti, loggly, logstash, kibana, nagios…)
![Page 141: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/141.jpg)
Ippon Technologies © 2014
Monitoring
Sur mesureDiagnostic temps réelAlerte
![Page 142: mise en production L’industrialisation de la Usine ... · Database scripting : Initialisation DB : script, versionnement Chaque Migration : script, versionnement Buts : Construire](https://reader035.vdocument.in/reader035/viewer/2022070714/5ed705ae62136e72fb7bafec/html5/thumbnails/142.jpg)
Ippon Technologies © 2014
Monitoring
TP Instrumentation et exploitation