SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Conception d'Applications
Interactives :
Applications Web et JEE
Séance #6
Autour de la webapp
Besoin d'un modèle
d'infrastructure
Industrialisation
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
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
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
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
Industrialisation
● Infrastructures
○ Machines
○ Systèmes d'exploitation
○ Logiciels
■ Serveurs
■ Bases de Données
○ Disques
■ Stockage
■ Sauvegardes
○ Réseau
■ Routage
■ ACL
○ Traffic
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
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
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
La forge logicielle
Des outils pour des développeurs
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 »
C'est quoi donc cette forge ?
Un ensemble d'outils et de pratiques mis en cohérence afin
d'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
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)
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
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...
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
SCM
Référentiel unique des sources des applications
permettant 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
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
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
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...
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
Tracker
Permet d'identifier et de tracer les demandes
d'évolutions et la remontée d'incident, ainsi que
le 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
Le mythe de la techno unique
Ou le syndrome du marteau
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
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

Contenu connexe

En vedette

Centre N A Rive – Page 14 – Centre d'alphabétisation et d'insertion sociale
Centre N A Rive – Page 14 – Centre d'alphabétisation et d'insertion socialeCentre N A Rive – Page 14 – Centre d'alphabétisation et d'insertion sociale
Centre N A Rive – Page 14 – Centre d'alphabétisation et d'insertion socialeVéroushka Eugène
 
Les "5 à 7" en vidéo
Les "5 à 7" en vidéoLes "5 à 7" en vidéo
Les "5 à 7" en vidéoADBS
 
La marseillaise
La marseillaiseLa marseillaise
La marseillaiseBartok79
 
Some Questions about Culture
Some Questions about CultureSome Questions about Culture
Some Questions about CultureMariangeles Ortiz
 
Le Belge est attaché à l’Etat social
Le Belge est attaché à l’Etat socialLe Belge est attaché à l’Etat social
Le Belge est attaché à l’Etat socialGil Durand
 
Usap reconstruction phase 1
Usap reconstruction phase 1Usap reconstruction phase 1
Usap reconstruction phase 1Marc De Jongy
 
Arrivée à Madurai - Tamil Nadu - GeTS Holidays
Arrivée à Madurai -  Tamil Nadu - GeTS HolidaysArrivée à Madurai -  Tamil Nadu - GeTS Holidays
Arrivée à Madurai - Tamil Nadu - GeTS HolidaysGeTS Holidays
 
Altics - Benchmark
Altics - BenchmarkAltics - Benchmark
Altics - BenchmarkALTICS
 
Dossier de presse - Nightingale, court métrage d'Emile Bertherat
Dossier de presse - Nightingale, court métrage d'Emile BertheratDossier de presse - Nightingale, court métrage d'Emile Bertherat
Dossier de presse - Nightingale, court métrage d'Emile BertheratFelix Boiteux
 
L'ONU propose de taxer la malbouffe
L'ONU propose de taxer la malbouffeL'ONU propose de taxer la malbouffe
L'ONU propose de taxer la malbouffeGil Durand
 
Rapport annuel de_la_bceao_2013
Rapport annuel de_la_bceao_2013Rapport annuel de_la_bceao_2013
Rapport annuel de_la_bceao_2013Mamadou Bass
 
Présentation formation dtn 12 03-15
Présentation formation dtn 12 03-15Présentation formation dtn 12 03-15
Présentation formation dtn 12 03-15Lahcene12
 
Plaquette finaxim daf leader français du temps partagé
Plaquette finaxim daf leader français du temps partagéPlaquette finaxim daf leader français du temps partagé
Plaquette finaxim daf leader français du temps partagéJean-Pierre Marduel
 
22. conversatorio fbm
22. conversatorio fbm22. conversatorio fbm
22. conversatorio fbmRafael Ospina
 

En vedette (20)

Centre N A Rive – Page 14 – Centre d'alphabétisation et d'insertion sociale
Centre N A Rive – Page 14 – Centre d'alphabétisation et d'insertion socialeCentre N A Rive – Page 14 – Centre d'alphabétisation et d'insertion sociale
Centre N A Rive – Page 14 – Centre d'alphabétisation et d'insertion sociale
 
Les "5 à 7" en vidéo
Les "5 à 7" en vidéoLes "5 à 7" en vidéo
Les "5 à 7" en vidéo
 
10razones
10razones10razones
10razones
 
La Cappadocia
La  Cappadocia La  Cappadocia
La Cappadocia
 
Séance 2
Séance 2Séance 2
Séance 2
 
La marseillaise
La marseillaiseLa marseillaise
La marseillaise
 
Some Questions about Culture
Some Questions about CultureSome Questions about Culture
Some Questions about Culture
 
Primer Encuentro
Primer EncuentroPrimer Encuentro
Primer Encuentro
 
Avisos Parroquiales Oct. 16 16
Avisos Parroquiales Oct. 16 16Avisos Parroquiales Oct. 16 16
Avisos Parroquiales Oct. 16 16
 
Le Belge est attaché à l’Etat social
Le Belge est attaché à l’Etat socialLe Belge est attaché à l’Etat social
Le Belge est attaché à l’Etat social
 
Usap reconstruction phase 1
Usap reconstruction phase 1Usap reconstruction phase 1
Usap reconstruction phase 1
 
Sistemas Operativos Libres
Sistemas Operativos LibresSistemas Operativos Libres
Sistemas Operativos Libres
 
Arrivée à Madurai - Tamil Nadu - GeTS Holidays
Arrivée à Madurai -  Tamil Nadu - GeTS HolidaysArrivée à Madurai -  Tamil Nadu - GeTS Holidays
Arrivée à Madurai - Tamil Nadu - GeTS Holidays
 
Altics - Benchmark
Altics - BenchmarkAltics - Benchmark
Altics - Benchmark
 
Dossier de presse - Nightingale, court métrage d'Emile Bertherat
Dossier de presse - Nightingale, court métrage d'Emile BertheratDossier de presse - Nightingale, court métrage d'Emile Bertherat
Dossier de presse - Nightingale, court métrage d'Emile Bertherat
 
L'ONU propose de taxer la malbouffe
L'ONU propose de taxer la malbouffeL'ONU propose de taxer la malbouffe
L'ONU propose de taxer la malbouffe
 
Rapport annuel de_la_bceao_2013
Rapport annuel de_la_bceao_2013Rapport annuel de_la_bceao_2013
Rapport annuel de_la_bceao_2013
 
Présentation formation dtn 12 03-15
Présentation formation dtn 12 03-15Présentation formation dtn 12 03-15
Présentation formation dtn 12 03-15
 
Plaquette finaxim daf leader français du temps partagé
Plaquette finaxim daf leader français du temps partagéPlaquette finaxim daf leader français du temps partagé
Plaquette finaxim daf leader français du temps partagé
 
22. conversatorio fbm
22. conversatorio fbm22. conversatorio fbm
22. conversatorio fbm
 

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

qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015Julien Vq
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coin
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coinSolution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coin
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coinAnne Nicolas
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetFrédéric Vandenbriele
 
Méthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketMéthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketmichael_bailly
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesEric SIBER
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
Saas Libre
Saas LibreSaas Libre
Saas Libregrolland
 
RA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptxRA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptxtestuser715939
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPNicolas Perriault
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !Lucian Precup
 
Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Hidora
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011 ALTER WAY
 

Similaire à Enib cours c.a.i. web - séance #6 : autour de la webapp (20)

Les tests de securite devops
Les tests de securite devopsLes tests de securite devops
Les tests de securite devops
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coin
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coinSolution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coin
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coin
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
 
Méthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketMéthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to market
 
Sos ikm-6 juin2008
Sos ikm-6 juin2008Sos ikm-6 juin2008
Sos ikm-6 juin2008
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiques
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
Saas Libre
Saas LibreSaas Libre
Saas Libre
 
RA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptxRA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptx
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XP
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
 
Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Solutions Linux 2010
Solutions Linux 2010Solutions Linux 2010
Solutions Linux 2010
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
 

Plus de Horacio Gonzalez

Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27Horacio Gonzalez
 
But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...Horacio Gonzalez
 
Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
 Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27 Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27Horacio Gonzalez
 
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...Horacio Gonzalez
 
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSHoracio Gonzalez
 
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09Horacio Gonzalez
 
Mixing Web Components - Best of Web Paris - 2016 06-09
Mixing Web Components - Best of Web Paris - 2016 06-09Mixing Web Components - Best of Web Paris - 2016 06-09
Mixing Web Components - Best of Web Paris - 2016 06-09Horacio Gonzalez
 
Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20Horacio Gonzalez
 
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24 Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24 Horacio Gonzalez
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptHoracio Gonzalez
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...Horacio Gonzalez
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...Horacio Gonzalez
 
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQLENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQLHoracio Gonzalez
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSHoracio Gonzalez
 
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQLENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQLHoracio Gonzalez
 
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptHoracio Gonzalez
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...Horacio Gonzalez
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSHoracio Gonzalez
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...Horacio Gonzalez
 
Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18Horacio Gonzalez
 

Plus de Horacio Gonzalez (20)

Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
 
But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...
 
Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
 Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27 Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
 
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...
 
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
 
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
 
Mixing Web Components - Best of Web Paris - 2016 06-09
Mixing Web Components - Best of Web Paris - 2016 06-09Mixing Web Components - Best of Web Paris - 2016 06-09
Mixing Web Components - Best of Web Paris - 2016 06-09
 
Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20
 
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24 Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
 
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQLENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
 
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQLENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
 
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
 
Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18
 

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

  • 1. Conception d'Applications Interactives : Applications Web et JEE Séance #6 Autour de la webapp
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. Industrialisation ● Infrastructures ○ Machines ○ Systèmes d'exploitation ○ Logiciels ■ Serveurs ■ Bases de Données ○ Disques ■ Stockage ■ Sauvegardes ○ Réseau ■ Routage ■ ACL ○ Traffic
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. La forge logicielle Des outils pour des développeurs
  • 12. 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 »
  • 13. C'est quoi donc cette forge ? Un ensemble d'outils et de pratiques mis en cohérence afin d'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
  • 14. 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)
  • 15. 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
  • 16. 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...
  • 17. 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
  • 18. SCM Référentiel unique des sources des applications permettant 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
  • 19. 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
  • 20. 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
  • 21. 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...
  • 22. 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
  • 23. Tracker Permet d'identifier et de tracer les demandes d'évolutions et la remontée d'incident, ainsi que le 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
  • 24. Le mythe de la techno unique Ou le syndrome du marteau
  • 25. 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
  • 26. 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