enib cours c.a.i. web - séance #6 : autour de la webapp

26
Conception d'Applications Interactives : Applications Web et JEE Séance #6 Autour de la webapp

Upload: horacio-gonzalez

Post on 26-Dec-2014

317 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Enib   cours c.a.i. web - séance #6 : autour de la webapp

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

Besoin d'un modèle d'infrastructure

Industrialisation

Page 3: Enib   cours c.a.i. web - séance #6 : autour de la webapp

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

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

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

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

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

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

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

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

La forge logicielle

Des outils pour des développeurs

Page 12: Enib   cours c.a.i. web - séance #6 : autour de la webapp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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