enib cours c.a.i. web - séance #6 : autour de la webapp
DESCRIPTION
TRANSCRIPT
![Page 1: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/1.jpg)
Conception d'Applications Interactives :
Applications Web et JEESéance #6
Autour de la webapp
![Page 2: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/2.jpg)
Besoin d'un modèle d'infrastructure
Industrialisation
![Page 3: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/3.jpg)
Besoin d'un modèle d'infrastructure
Si mon oncle me demande de lui faire un CMS pour son association, quel outil je choisis ?
● Hébergement mutualisé
● Infrastructure WAMP/LAMP○ Linux/Windows – Apache – MySQL – PHP
● Joomla○ Gratuit○ Facile à installer et configurer○ Prise en main rapide ○ Des multiples options de personnalisation ○ Thèmes ○ Add-ons
![Page 4: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/4.jpg)
Besoin d'un modèle d'infrastructure
Si mon client bancaire me demande un CMS pour un petit projet, quel outil je dois employer ?
● Ca depend !○ Des normes internes du client○ Le niveau de risque du projet○ Les contraintes d'infrastructure
● Souvent une solution progicielle, comme Jalios JCMS pour le CMS○ Payant○ Processus d'installation complexe○ Courbe d'apprentissage pour la prise en main○ Personnalisation complexe○ Peu d'addons et des thèmes○ Customisation à prévoir
![Page 5: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/5.jpg)
Besoin d'un modèle d'infrastructure
Pourquoi choisir donc Jalios JCMS et non Joomla ?
Industrialisation
On ne choisit pas un outil pour un groupe bancaire comme on choisit un outil pour une association
![Page 6: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/6.jpg)
Industrialisation
Dans le monde réel il n'y a pas que les arguments techniques
○ Choix technologiques pragmatiques○ Capitalisation et mutualisation
■ Des infrastructures■ Des licences■ Des coût d'intégration■ Du savoir faire
○ Maîtrise du SI○ Gestion des risques
![Page 7: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/7.jpg)
Industrialisation
● Infrastructures○ Machines○ Systèmes d'exploitation○ Logiciels
■ Serveurs■ Bases de Données
○ Disques■ Stockage■ Sauvegardes
○ Réseau■ Routage■ ACL
○ Traffic
![Page 8: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/8.jpg)
Industrialisation
● Qualité de service○ Charge
■ Load-balancing■ Scalabilité
○ Temps de réponse○ PRA /PCA
● Sécurité○ Maîtrise technologique du socle d'infrastructure○ Expertise sur le modèle applicatif
![Page 9: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/9.jpg)
Industrialisation
● Exploitation / Devops○ Equipes de pilotage
■ Besoin d'outils de monitoring et surveillance■ Besoin de consignes d'exploitation■ Besoin de procédures uniformisés
○ Suivi d'exploitation■ Equipes de support niveau 2■ Besoin d'uniformité du parc applicatif■ Besoin de maîtriser la plateforme
○ Support niveau 3 ■ Experts techniques internes ou externes■ Besoin d'outils de diagnostique■ Besoin de maîtriser la plateforme
![Page 10: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/10.jpg)
Industrialisation
● Gestion de crises○ Temps d'analyse○ Besoin d'expertise○ Remontée vers les développeurs
Il faut pouvoir résoudre une crise le plus rapidement possible et au moindre coût
![Page 11: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/11.jpg)
La forge logicielle
Des outils pour des développeurs
![Page 12: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/12.jpg)
Forge logicielle
En informatique, une forge désigne un système de gestion de développement collaboratif de logiciel.
Merci Wikipedia
● Objectifs :○ Amélioration de la qualité des logiciels○ Amélioration de la traçabilité
du developpement à la production○ Garantir la pérennité○ Amélioration de la productivité des développements
« Fournir un outillage et des processus en cohérence avec ces problématiques »
![Page 13: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/13.jpg)
C'est quoi donc cette forge ?
Un ensemble d'outils et de pratiques mis en cohérence afind'assurer l'industrialisation de la pratique logicielle
● Un socle technique et l'outillage qui va avec● Des processus et bonnes pratiques● Des outils associés à la pratique logicielle et aux
processus● Un cadre facilitant l'industrialisation
![Page 14: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/14.jpg)
Socle Applicatif
Structuration des architectures applicatives autour d'éléments logiciels maîtrisés qui fournit le cadre de démarrage des
développements logiciels
● Type de technologie (Java, PHP, Python...)● Type de serveur (Tomcat, Jetty, Play...)● Type d'architecture (Synchrone/asynchrone,
Frontend/Backend...)● Bibliothèques communes (Apache Commons, Guava...)● Composants aditionnels (Memcached,
BDDs)
![Page 15: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/15.jpg)
Modèle Applicatif
Définition des architectures applicatives type, selon le type de besoin auquel elles répondent, pour le développement des applications.
● Type de framework (GWT, Spring, Play...)● Normes d'utilisation (Asynchronisme, equilibrage de
charge, stateless...)● Charte graphique et ergonomique
![Page 16: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/16.jpg)
Environnement de build
Un moteur de production est un logiciel dont la fonction principale consiste à automatiser (ordonnancer et piloter)
l'ensemble des actions (préprocessing, compilation, éditions des liens, etc.) contribuant, à partir de données
sources, à la production d'un ensemble logiciel opérationnel.
● Une alternative complète... et complexe : ○ Apache Maven
● Une alternative plus simple... mais moins puissante :○ Apache Ant
● Des nouveaux venus : Sbt, Gradle...
![Page 17: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/17.jpg)
Intégration continue
Processus d'automatisation des tâches récurrentes liées aux développements logiciels
● Lancement automatisé des constructions en lien avec le SCM
● Exécution des tests● Déploiement du livrable● Reporting sur les étapes ci-dessus
● Outil le plus utilisé : Jenkins
![Page 18: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/18.jpg)
SCM
Référentiel unique des sources des applicationspermettant de suivre et d'identifier les différentes versions
des applications et les différents intervenants
● Gestion de version centralisée (CVS, SVN)○ Un seul dépôt des versions qui fait référence
● Gestion de versions décentralisée (Git, Mercurial)○ Le développeur travail dans son propre dépôt○ Les dépôts sont synchronisés ensuite
![Page 19: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/19.jpg)
SCM
● Avantages des gestions de versions décentralisées ○ Performance (opérations faites en local)○ Ne pas dépendre d'une seule machine
(point de défaillance)○ Pouvoir travailler sans connexion○ Travailler sur un projet sans nécessiter les
permissions ○ Le travail privé reste dans le depôt local
● Désavantages ○ Le clonage initial est plus lent (tout est copié)○ Pas de système de lock
![Page 20: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/20.jpg)
Référentiel de bibliothèques
Outil de stockage et de gestion des dépendances entre les composants logiciels mis en oeuvre dans les projets
● Le type d'outil dépend de l'outil choisi pour le build○ Maven fait au même temps la construction et le
référentiel de bibliothèques○ Avec Ant il faut utiliser Ivy pour la récuperation des
bibliothèques○ Sbt utilise Ivy en interne
![Page 21: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/21.jpg)
Qualimétrie
C'est une pratique automatisée ou non visant à évaluer la qualité du code selon des critères fixés
● Détecter au plus tôt les bugs● Uniformiser les pratiques de codages● Améliorer la maintenabilité● Eduquer aux bonnes pratiques
● Outils les plus employés : FindBugs, PMD, Sonar
Le coût de correction d'une erreur croît exponentiellement avec le temps...
![Page 22: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/22.jpg)
Espace de communication
Un ensemble de média d'échanges d'informations visant à faciliter l'accès à la connaissance ou
le référencement des informations
● Des solutions multiples : blogs, listes de courrier, twitter...
● Une solution à privilegier : wiki○ Documentation collaborative
![Page 23: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/23.jpg)
Tracker
Permet d'identifier et de tracer les demandes d'évolutions et la remontée d'incident, ainsi quele suivi de leurs prises en compte dans le temps
● Identifier de manière unique une évolution/incident/anomalie
● Proposer un workflow pour le cycle de vie d'une évolution/incident
● Mettre en relation les différents acteurs
![Page 24: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/24.jpg)
Le mythe de la techno unique
Ou le syndrome du marteau
![Page 25: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/25.jpg)
Si le seul outil que vous avez est un marteau, vous tendez à voir tout problème comme un clou
● Pretendre d'avoir une technologie de référence à utiliser pour tous les projets
● Approche très reductrice, on adapte le projet à l'outil et non l'outil au projet
● Approche dangereuse, elle nuit à l'innovation et sclerose le SI
Le syndrome du marteau
![Page 26: Enib cours c.a.i. web - séance #6 : autour de la webapp](https://reader035.vdocument.in/reader035/viewer/2022062510/549f960fac795942768b4a04/html5/thumbnails/26.jpg)
Mais l'industrialisation alors...
Il faut choisir le bon outil pour chaque problème
● Parmi une panoplie d'outils qui ont été industrialisés● Ca demande plus d'effort :
○ Veille technologique○ Remise en question○ Industrialisation○ Formation des équipes
● Mais le résultat est à la hauteur○ Productivité○ Évolutivité○ Motivation
● Le bon ingénieur sait être disruptif