SlideShare une entreprise Scribd logo
11
Tél : +33 (0)1 58 56 10 00
Fax : +33 (0)1 58 56 10 01
www.octo.com© OCTO 2014
50, avenue des Champs-Elysées
75008 Paris - FRANCE
Université de la
Performance
22
Tél : +33 (0)1 58 56 10 00
Fax : +33 (0)1 58 56 10 01
www.octo.com© OCTO 2014
50, avenue des Champs-Elysées
75008 Paris - FRANCE
Agenda
33
44
Applicatif Système
55
66
Développement Production
77
Méthodologie
88
DÉMO
99
Pause
2x10 minutes
1010
Tél : +33 (0)1 58 56 10 00
Fax : +33 (0)1 58 56 10 01
www.octo.com© OCTO 2014
50, avenue des Champs-Elysées
75008 Paris - FRANCE
Présentation de
l’équipe
1111
Architecte Senior
Responsable pôle
performance
Responsable R&D
Membre fondateur du PerfUG
Marc Bojoly
1212
Architecte Senior
Référent technique pôle
performance
Responsable R&D
EasyMock lead developer
Objenesis lead developer
Membre fondateur du PerfUG
Henri Tremblay
1313
Architecte Senior
Pôle Devops
Expert optimisation système
Co-organisateur du concours
de performance Billion-user
challenge en 2011
Intervenant PerfUG
Ludovic Piot
1414
Architecte
Expert Infra & Devops
Responsable de l’infrastructure
OCTO
Commiter :
Master-chef
Master-cap
Mikaël Robert
1515
Les performances d’un
système sont une
spécification
fonctionnelle implicite
du système
Notre vision ?
Source : www.arthursclipart.org
1616
La mesure de performance
doit être au cœur du
processus de
développement
informatique
Notre vision ?
Source : Les géants du Web
1717
Nous voulons des systèmes
performants
Notre vision ?
Source : Les géants du Web
1818
La démarche de test que nous utilisons
TESTS DE CHARGE
Mesurer
Optimiser
TESTS DE PERFORMANCE
UNITAIRE
1919
La démarche de test que nous utilisons
TESTS DE CHARGE
TESTS DE PERFORMANCE
UNITAIRE
Mesurer
Optimiser
Mise en place
des mesures
et scénarios
Exécution des
scénarios
• Simulation
• Correction
• Mesure
Optimisation
Estimation des
gains potentiels
• Sur un poste de
développement
• Validation des
hypothèses
• Tuning des « hot
spots »
• Environnements de
production
• Scénarios
représentatifs
• Jeux de données
• Cible à atteindre
2020
Définition du plan et des
cas de test
Plan de test Cas de test
Création des scénarii et
des scripts de tests
Enregistrement des
métriques
Consolidation des
métriques et édition
d’un rapport de test
Analyse du rapport de
test et émission des
préconisations Rapport d’analyse
Métriques
Rapport de test
Contrôleur
Scripts de test Scénarii de test
Capture des
métriques
Application cible
Injecteurs
Données de test
Création des paliers
de données
Exécution : simulation
d’utilisateurs
Méthodologie d’un test de charge
1 1
2
3
3
3
4
5
2121
Les outils utilisés aujourd’hui
Identifier les ressources en quantité limitante
Identifier les impacts sur les différentes machines lorsque
l’application est distribuée
Corréler l’évolution des temps de réponse et les
consommations de ressources sur les différentes
machines
Enregistrer et rejouer de manière fidèle un ensemble
d’actions utilisateurs.
Variabiliser ces actions utilisateurs pour être représentatif
de l’usage réel
Simuler un grand nombre d’utilisateurs
Migrer les données depuis la production mais il faut
souvent l’anonymiser.
Générer un jeux de données mais il doit être représentatif
Rétablir le jeux de données dans son état initial une fois le
tir effectué
GÉNÉRER LES DONNÉES
TESTER EN CHARGE
MONITORER LA CONSOMMATION DE
RESSOURCES
2222
Les outils en général
Identifier les ressources en quantité limitante
Identifier les impacts sur les différentes machines lorsque
l’application est distribuée
Corréler l’évolution des temps de réponse et les
consommations de ressources sur les différentes
machines
Enregistrer et rejouer de manière fidèle un ensemble
d’actions utilisateurs.
Variabiliser ces actions utilisateurs pour être représentatif
de l’usage réel
Simuler un grand nombre d’utilisateurs
Migrer les données depuis la production mais il faut
souvent l’anonymiser.
Générer un jeux de données mais il doit être représentatif
Rétablir le jeux de données dans son état initial une fois le
tir effectué
GÉNÉRER LES DONNÉES
TESTER EN CHARGE
MONITORER LA CONSOMMATION DE
RESSOURCES
2323
Notre fil rouge : Happy Store
Navigateur Tomcat PgSQL
Une application comme on en
rencontre souvent, pas très loin de
l’état de l’art.. Sauf pour les
performances !
2424
Architecture
APPLICATION SERVER
DATABASE SERVER
JVM
PostgreSQL
Tomcat
2525
Acheter des produits
http://localhost:8080/happystore/transaction?
countryCode=FRA&productId=1234&storeId=1234
http://localhost:8080/happystore/transaction?
countryCode=FRA&productId=1234&storeId=1234&txId=1
2626
Finaliser sa commande
http://localhost:8080/happystore/total?
txId=1
Total
2727
Calcul de l’inventaire sur un magasin
Inventory
http://localhost:8080/happystore/inventory?
storeId=1234
2828
Calcul du chiffre d’affaire par groupe de produits
Turnover
(group by+order
by)
http://localhost:8080/happystore/turnover?
groupId=1
2929
LES DIFFÉRENTS TYPES DE TEST
•Objectif : mesurer la performance unitaire
•Ex : le use case de souscription est testé pour 1 utilisateur et, pour chaque
étape du use case, on mesure le temps passé dans les différents
composants de l’application
Test de
performance
unitaire
•Objectif : mesurer la tenue en charge de l’application sur la population
cible
•Ex : on simule l’utilisation de l’application par 200 utilisateurs en parallèle
pendant 2h
Test de
charge
•Objectif : déterminer les limites de l’application
•Ex : on augmente le nombre d’utilisateurs en parallèle sur l’application
jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus
acceptables
Test de
rupture
•Objectif : déterminer la capacité de l’application à fonctionner sur une
période étendue
•Ex : on simule l’utilisation de l’application pendant 48h, avec une charge
constante et égale à la charge moyenne
Test de
vieillissement
3030
DÉMO
Exécution test unitaire
3131
LES DIFFÉRENTS TYPES DE TEST
•Objectif : mesurer la performance unitaire
•Ex : le use case de souscription est testé pour 1 utilisateur et, pour chaque
étape du use case, on mesure le temps passé dans les différents
composants de l’application
Test de
performance
unitaire
•Objectif : mesurer la tenue en charge de l’application sur la population
cible
•Ex : on simule l’utilisation de l’application par 200 utilisateurs en parallèle
pendant 2h
Test de
charge
•Objectif : déterminer les limites de l’application
•Ex : on augmente le nombre d’utilisateurs en parallèle sur l’application
jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus
acceptables
Test de
rupture
•Objectif : déterminer la capacité de l’application à fonctionner sur une
période étendue
•Ex : on simule l’utilisation de l’application pendant 48h, avec une charge
constante et égale à la charge moyenne
Test de
vieillissement
3232
Cible de performance
Cible : 100 utilisateurs concurrents
Volumétrie de la base de données : 19,5 millions de lignes
3333
DÉMO
Remplissage des données
3434
Architecture
LOCAL SERVER APPLICATION SERVER
DATABASE SERVER
Gatling
PostgreSQL
JVM
Tomcat
3535
DÉMO
Exécution test de charge
3636
Premature optimization is
the root of all evil - Donald
Knuth
3737
Il voulait dire ça:
// Do not use the for(Object o : list)
// because I think it is probably
// slower than doing this… Probably…
for(int i = 0; i < list.size(); i++) {
Object o = list.get(i);
…
}
Stop guessing dam it!!!
3838
Code
Mesure
OptimiseLà où
c’est
important
3939
PROD
Archi
Dev
Perf
4040
PROD
Archi
Dev
Perf
1. Conception
des tests
2. Automatisation
des tests
3. Développement
logiciel
4. Exécution auto-
matique des tests
#1 #2 #3
4141
Archi
Dev
Perf
PROD
DélaiMEP À L’ARRACHE
1. Conception
des tests
2. Automatisation
des tests
3. Développement
logiciel
4. Exécution auto-
matique des tests
#1 #2 #3
4242
1. Conception
des tests
2. Automatisation
des tests
3. Développement
logiciel
4. Exécution auto-
matique des tests
#1 #2 #3
PROD
Archi
Dev
Tests de charge en continue
4343
Intégrer les tests de performances au cycle de
développement?
Hyperviseur
Jenkins
AppServer
Chef
DbServer
Chef
1
3
2
Créer environnement
Tir de performance
Destruction environnement
4444
Jenkins
Deploiement d’environnement automatisé : exemple avec Chef & Capistrano
Git
Nexus
Capistrano
Node
Chef
Hyperviseur
API hyperviseur
Node
Chef
Node
Chef
Dép. app.
2
1
1
3
• Capistrano demande VM à l’hyperviseur
• Installation OS par PXE ou clone
2 • Création & mise à disposition VMs
• SSH ouvert, IP temporaire
3
• Scripts de démarrage (maison, cloud-init…)
• Personnalisation VM, IP, Reseau etc
• Installation Chef
4
4
4
• Capistrano lance Chef sur Node
• Chef récupère les cookbooks via Git
• Installation packages et configurations
5
5
5
• Capistrano lance déploiement application
• Exécute sur machine téléchargement application
• Déploie application
• Administrateur
lance job
0
4545
DÉMO
Automatisation des tests
4646
LES DIFFÉRENTS TYPES DE TEST
•Objectif : mesurer la performance unitaire
•Ex : le use case de souscription est testé pour 1 utilisateur et, pour chaque
étape du use case, on mesure le temps passé dans les différents
composants de l’application
Test de
performance
unitaire
•Objectif : mesurer la tenue en charge de l’application sur la population
cible
•Ex : on simule l’utilisation de l’application par 200 utilisateurs en parallèle
pendant 2h
Test de
charge
•Objectif : déterminer les limites de l’application
•Ex : on augmente le nombre d’utilisateurs en parallèle sur l’application
jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus
acceptables
Test de
rupture
•Objectif : déterminer la capacité de l’application à fonctionner sur une
période étendue
•Ex : on simule l’utilisation de l’application pendant 48h, avec une charge
constante et égale à la charge moyenne
Test de
vieillissement
4747
DÉMO
Test de rupture
4848
Architecture
TOOL SERVER APPLICATION SERVER
DATABASE SERVER
CI STACK
GRAPHITE STACK
Jenkins Gatling
Maven
Graphite
Collectd
Carbon
Git
Collectd
Whisper
PostgreSQL
JVM
Tomcat
4949
DÉMO
Metrics
5050
Un exemple d’outil d’APM du marché : AppDynamics
5151
DÉMO
Tuning
5252
LES DIFFÉRENTS TYPES DE TEST
•Objectif : mesurer la performance unitaire
•Ex : le use case de souscription est testé pour 1 utilisateur et, pour chaque
étape du use case, on mesure le temps passé dans les différents
composants de l’application
Test de
performance
unitaire
•Objectif : mesurer la tenue en charge de l’application sur la population
cible
•Ex : on simule l’utilisation de l’application par 200 utilisateurs en parallèle
pendant 2h
Test de
charge
•Objectif : déterminer les limites de l’application
•Ex : on augmente le nombre d’utilisateurs en parallèle sur l’application
jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus
acceptables
Test de
rupture
•Objectif : déterminer la capacité de l’application à fonctionner sur une
période étendue
•Ex : on simule l’utilisation de l’application pendant 48h, avec une charge
constante et égale à la charge moyenne
Test de
vieillissement
5353
DÉMO
Test d’endurance
5454
Préparer les jeux de données Benerator
Exécuter une mesure unitaire Chrome developer tools
Identifier un problème d’index jstack, explan plan
Exécuter des tests de charge Gatling
Automatisation des tests de charge Jenkins, Capistrano, Chef
Problème de contention VisualVM, jstack
Mise en place du monitoring Metrics, collectd et Graphite
Tuning système Bonnie++
Identifier une fuite mémoire VisualVM
Résumé de la journée
5555
Exemple de benchmark:
http://blog.octo.com/lart-du-benchmark/
Conférence sur l’industrialisation (USI 2013):
https://www.youtube.com/watch?v=BXO3LYQ9Vic
Tests de performance SQLFire:
http://blog.octo.com/en/sqlfire-from-the-trenches/
Cet après-midi:
13h30: Hackergarten EasyMock
17h10: Microbenchmarking with JMH
Liens utiles
http://brownbaglunch
.fr
5656
Retrouvez nous la semaine prochaine
http://perfug.github.io
/
Prochain épisode: Jeudi 24
avril
Performance Hadoop temps
réel
Sofian Djamaa (Criteo)
Sessions précédentes
sur le site
5757
5858
+Henri Tremblay
@henri_tremblay
htremblay@octo.com
+Marc Bojoly
@mbojoly
mbojoly@octo.com
+Mikael Robert
@mikaelrob
mrobert@octo.com
+Ludovic Piot
@lpiot
lpiot@octo.com

Contenu connexe

Tendances

Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
TelecomValley
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
LeClubQualiteLogicielle
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
Mohamed Akrouh
 
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
TelecomValley
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et Web
Christophe Rochefolle
 
Mémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline SimonMémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline Simon
Emeline Simon
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Emmanuel Hugonnet
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
Jean-Paul CARMONA
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
USTHB & DELTALOG
 
Les outils d’automatisation de tests (scripting) : Adoption et enjeux (comple...
Les outils d’automatisation de tests (scripting) : Adoption et enjeux (comple...Les outils d’automatisation de tests (scripting) : Adoption et enjeux (comple...
Les outils d’automatisation de tests (scripting) : Adoption et enjeux (comple...
AQT-presentations
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
Sylvain Leroy
 
Presentation tests d'acceptations automatisés sug v1.1
Presentation tests d'acceptations automatisés sug v1.1Presentation tests d'acceptations automatisés sug v1.1
Presentation tests d'acceptations automatisés sug v1.1
Jean-Emmanuel Houdu
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
LeClubQualiteLogicielle
 
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
cyrilpicat
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
Klee Group
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
Frédéric Sagez
 
20120612 02 - Automatisation des tests avec squash TA en environnement bancai...
20120612 02 - Automatisation des tests avec squash TA en environnement bancai...20120612 02 - Automatisation des tests avec squash TA en environnement bancai...
20120612 02 - Automatisation des tests avec squash TA en environnement bancai...
LeClubQualiteLogicielle
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
Cellenza
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
laurent_opnworks
 
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
LeClubQualiteLogicielle
 

Tendances (20)

Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
Tester en continu avec le Cloud - GACHE HUCKERT - AXA FRANCE - Soirée du Test...
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et Web
 
Mémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline SimonMémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline Simon
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
 
Les outils d’automatisation de tests (scripting) : Adoption et enjeux (comple...
Les outils d’automatisation de tests (scripting) : Adoption et enjeux (comple...Les outils d’automatisation de tests (scripting) : Adoption et enjeux (comple...
Les outils d’automatisation de tests (scripting) : Adoption et enjeux (comple...
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Presentation tests d'acceptations automatisés sug v1.1
Presentation tests d'acceptations automatisés sug v1.1Presentation tests d'acceptations automatisés sug v1.1
Presentation tests d'acceptations automatisés sug v1.1
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
 
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
 
20120612 02 - Automatisation des tests avec squash TA en environnement bancai...
20120612 02 - Automatisation des tests avec squash TA en environnement bancai...20120612 02 - Automatisation des tests avec squash TA en environnement bancai...
20120612 02 - Automatisation des tests avec squash TA en environnement bancai...
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
20120124 04 - Retour d'expérience sur la mise en oeuvre de Squash
 

En vedette

Performance and stability testing \w Gatling
Performance and stability testing \w GatlingPerformance and stability testing \w Gatling
Performance and stability testing \w Gatling
Dmitry Vrublevsky
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Benoît de CHATEAUVIEUX
 
Biblitecología en colombia presentación
Biblitecología en colombia presentaciónBiblitecología en colombia presentación
Biblitecología en colombia presentación
solanyi27
 
La montre à quartz
La montre à quartzLa montre à quartz
La montre à quartz
TeresaSousa
 
Cambios en el embarazo
Cambios en el embarazoCambios en el embarazo
Cambios en el embarazo
07021982
 
Présentation OCSInventory SolutionsLinux 2009
Présentation OCSInventory SolutionsLinux 2009Présentation OCSInventory SolutionsLinux 2009
Présentation OCSInventory SolutionsLinux 2009
Gonéri Le Bouder
 
Lignes Et Cables Electriques
Lignes Et Cables ElectriquesLignes Et Cables Electriques
Lignes Et Cables Electriques
Sais Abdelkrim
 
Presentacion cartel
Presentacion cartelPresentacion cartel
Presentacion cartel
mariannesbp
 
Pi estructures
Pi estructuresPi estructures
Pi estructures
pepporca
 
Carrefour numérique - Open data : quelles réalités aujourd'hui, quelles oppor...
Carrefour numérique - Open data : quelles réalités aujourd'hui, quelles oppor...Carrefour numérique - Open data : quelles réalités aujourd'hui, quelles oppor...
Carrefour numérique - Open data : quelles réalités aujourd'hui, quelles oppor...
Cap'Com
 
Futbol
FutbolFutbol
Futbol
Kathy Cerna
 
Robotica
RoboticaRobotica
Robotica
juan317
 
Presentaciones quimuica 1
Presentaciones quimuica 1Presentaciones quimuica 1
Presentaciones quimuica 1
JUANHERNANDEZDIAZ
 
1107ParentNotes
1107ParentNotes1107ParentNotes
1107ParentNotes
sherryhsu
 
P carlos garcia
P carlos garciaP carlos garcia
P carlos garcia
Irune Jimenez
 
Presentacion clase virtual
Presentacion clase virtualPresentacion clase virtual
Presentacion clase virtual
berenichg09
 
Sonido
SonidoSonido
Sonido
David Pelaez
 
Cofely Gdf Suez_Pierre Guyar_Optimisation de la consommation énergétique
Cofely Gdf Suez_Pierre Guyar_Optimisation de la consommation énergétiqueCofely Gdf Suez_Pierre Guyar_Optimisation de la consommation énergétique
Cofely Gdf Suez_Pierre Guyar_Optimisation de la consommation énergétique
Metro'num 2011
 
Presentacion ribesa
Presentacion ribesaPresentacion ribesa
Presentacion ribesa
Ricardo Benítez
 

En vedette (20)

Performance and stability testing \w Gatling
Performance and stability testing \w GatlingPerformance and stability testing \w Gatling
Performance and stability testing \w Gatling
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
 
Biblitecología en colombia presentación
Biblitecología en colombia presentaciónBiblitecología en colombia presentación
Biblitecología en colombia presentación
 
La montre à quartz
La montre à quartzLa montre à quartz
La montre à quartz
 
Cambios en el embarazo
Cambios en el embarazoCambios en el embarazo
Cambios en el embarazo
 
Présentation OCSInventory SolutionsLinux 2009
Présentation OCSInventory SolutionsLinux 2009Présentation OCSInventory SolutionsLinux 2009
Présentation OCSInventory SolutionsLinux 2009
 
Lignes Et Cables Electriques
Lignes Et Cables ElectriquesLignes Et Cables Electriques
Lignes Et Cables Electriques
 
Presentacion cartel
Presentacion cartelPresentacion cartel
Presentacion cartel
 
Pi estructures
Pi estructuresPi estructures
Pi estructures
 
Carrefour numérique - Open data : quelles réalités aujourd'hui, quelles oppor...
Carrefour numérique - Open data : quelles réalités aujourd'hui, quelles oppor...Carrefour numérique - Open data : quelles réalités aujourd'hui, quelles oppor...
Carrefour numérique - Open data : quelles réalités aujourd'hui, quelles oppor...
 
Futbol
FutbolFutbol
Futbol
 
Robotica
RoboticaRobotica
Robotica
 
Presentaciones quimuica 1
Presentaciones quimuica 1Presentaciones quimuica 1
Presentaciones quimuica 1
 
1107ParentNotes
1107ParentNotes1107ParentNotes
1107ParentNotes
 
P carlos garcia
P carlos garciaP carlos garcia
P carlos garcia
 
Japanquakefre
JapanquakefreJapanquakefre
Japanquakefre
 
Presentacion clase virtual
Presentacion clase virtualPresentacion clase virtual
Presentacion clase virtual
 
Sonido
SonidoSonido
Sonido
 
Cofely Gdf Suez_Pierre Guyar_Optimisation de la consommation énergétique
Cofely Gdf Suez_Pierre Guyar_Optimisation de la consommation énergétiqueCofely Gdf Suez_Pierre Guyar_Optimisation de la consommation énergétique
Cofely Gdf Suez_Pierre Guyar_Optimisation de la consommation énergétique
 
Presentacion ribesa
Presentacion ribesaPresentacion ribesa
Presentacion ribesa
 

Similaire à Perf university

Session #2 du workshop sur la performance en environnement de production
Session #2 du workshop sur la performance en environnement de productionSession #2 du workshop sur la performance en environnement de production
Session #2 du workshop sur la performance en environnement de production
DEFO KUATE Landry
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
Benoît de CHATEAUVIEUX
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
Oxalide
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
Ludovic Piot
 
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
Publicis Sapient Engineering
 
Architecture Plug-in en LabVIEW : de la conception à la réalisation
Architecture Plug-in en LabVIEW : de la conception à la réalisationArchitecture Plug-in en LabVIEW : de la conception à la réalisation
Architecture Plug-in en LabVIEW : de la conception à la réalisation
SAPHIR - Signal Physique & Instrumentation
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
Romain Cambien
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Agile Montréal
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Normandy JUG
 
Uni.sherbrooke 2015 créez la meilleur application grâce à gwt, gwtp et j...
Uni.sherbrooke 2015   créez la meilleur application grâce à gwt, gwtp et j...Uni.sherbrooke 2015   créez la meilleur application grâce à gwt, gwtp et j...
Uni.sherbrooke 2015 créez la meilleur application grâce à gwt, gwtp et j...
Arcbees
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
AZUG FR
 
Cerberus Testing
Cerberus TestingCerberus Testing
Cerberus Testing
CIVEL Benoit
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applications
Stephane Woillez
 
Développer ou debugger ?
Développer ou debugger ? Développer ou debugger ?
Développer ou debugger ?
Microsoft
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
Publicis Sapient Engineering
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
boulonvert
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
Guillaume MOCQUET
 
Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?
Victor Coustenoble
 
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterComment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
Guillaume Deshayes
 
Load test & performance profiling
Load test & performance profilingLoad test & performance profiling
Load test & performance profiling
MSDEVMTL
 

Similaire à Perf university (20)

Session #2 du workshop sur la performance en environnement de production
Session #2 du workshop sur la performance en environnement de productionSession #2 du workshop sur la performance en environnement de production
Session #2 du workshop sur la performance en environnement de production
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
 
Architecture Plug-in en LabVIEW : de la conception à la réalisation
Architecture Plug-in en LabVIEW : de la conception à la réalisationArchitecture Plug-in en LabVIEW : de la conception à la réalisation
Architecture Plug-in en LabVIEW : de la conception à la réalisation
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
Uni.sherbrooke 2015 créez la meilleur application grâce à gwt, gwtp et j...
Uni.sherbrooke 2015   créez la meilleur application grâce à gwt, gwtp et j...Uni.sherbrooke 2015   créez la meilleur application grâce à gwt, gwtp et j...
Uni.sherbrooke 2015 créez la meilleur application grâce à gwt, gwtp et j...
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
 
Cerberus Testing
Cerberus TestingCerberus Testing
Cerberus Testing
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applications
 
Développer ou debugger ?
Développer ou debugger ? Développer ou debugger ?
Développer ou debugger ?
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
 
Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?
 
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterComment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
 
Load test & performance profiling
Load test & performance profilingLoad test & performance profiling
Load test & performance profiling
 

Plus de Henri Tremblay

DevNexus 2020: Discover Modern Java
DevNexus 2020: Discover Modern JavaDevNexus 2020: Discover Modern Java
DevNexus 2020: Discover Modern Java
Henri Tremblay
 
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
Henri Tremblay
 
Confoo 2018: Être pragmatique
Confoo 2018: Être pragmatiqueConfoo 2018: Être pragmatique
Confoo 2018: Être pragmatique
Henri Tremblay
 
DevNexus 2018: Learn Java 8, lambdas and functional programming
DevNexus 2018: Learn Java 8, lambdas and functional programmingDevNexus 2018: Learn Java 8, lambdas and functional programming
DevNexus 2018: Learn Java 8, lambdas and functional programming
Henri Tremblay
 
Do you know your mock? - Madras JUG 20171028
Do you know your mock? - Madras JUG 20171028Do you know your mock? - Madras JUG 20171028
Do you know your mock? - Madras JUG 20171028
Henri Tremblay
 
Be Pragmatic - JavaOne 2017
Be Pragmatic - JavaOne 2017Be Pragmatic - JavaOne 2017
Be Pragmatic - JavaOne 2017
Henri Tremblay
 
Generics and Lambda survival guide - DevNexus 2017
Generics and Lambda survival guide - DevNexus 2017Generics and Lambda survival guide - DevNexus 2017
Generics and Lambda survival guide - DevNexus 2017
Henri Tremblay
 
JavaOne 2016 - Learn Lambda and functional programming
JavaOne 2016 - Learn Lambda and functional programmingJavaOne 2016 - Learn Lambda and functional programming
JavaOne 2016 - Learn Lambda and functional programming
Henri Tremblay
 
Java 8, lambdas, generics: How to survive? - NYC Java Meetup Group
Java 8, lambdas, generics: How to survive? - NYC Java Meetup GroupJava 8, lambdas, generics: How to survive? - NYC Java Meetup Group
Java 8, lambdas, generics: How to survive? - NYC Java Meetup Group
Henri Tremblay
 
Generics and Lambdas cocktail explained - Montreal JUG
Generics and Lambdas cocktail explained  - Montreal JUGGenerics and Lambdas cocktail explained  - Montreal JUG
Generics and Lambdas cocktail explained - Montreal JUG
Henri Tremblay
 
Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!
Henri Tremblay
 
Microbenchmarking with JMH
Microbenchmarking with JMHMicrobenchmarking with JMH
Microbenchmarking with JMH
Henri Tremblay
 
Lambdas and Generics (long version) - Bordeaux/Toulouse JUG
Lambdas and Generics (long version) - Bordeaux/Toulouse JUGLambdas and Generics (long version) - Bordeaux/Toulouse JUG
Lambdas and Generics (long version) - Bordeaux/Toulouse JUG
Henri Tremblay
 
Vivre en parallèle - Softshake 2013
Vivre en parallèle - Softshake 2013Vivre en parallèle - Softshake 2013
Vivre en parallèle - Softshake 2013
Henri Tremblay
 
Performance perpétuelle (Devopsdays Paris 2013)
Performance perpétuelle (Devopsdays Paris 2013)Performance perpétuelle (Devopsdays Paris 2013)
Performance perpétuelle (Devopsdays Paris 2013)
Henri Tremblay
 
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
Henri Tremblay
 

Plus de Henri Tremblay (16)

DevNexus 2020: Discover Modern Java
DevNexus 2020: Discover Modern JavaDevNexus 2020: Discover Modern Java
DevNexus 2020: Discover Modern Java
 
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
 
Confoo 2018: Être pragmatique
Confoo 2018: Être pragmatiqueConfoo 2018: Être pragmatique
Confoo 2018: Être pragmatique
 
DevNexus 2018: Learn Java 8, lambdas and functional programming
DevNexus 2018: Learn Java 8, lambdas and functional programmingDevNexus 2018: Learn Java 8, lambdas and functional programming
DevNexus 2018: Learn Java 8, lambdas and functional programming
 
Do you know your mock? - Madras JUG 20171028
Do you know your mock? - Madras JUG 20171028Do you know your mock? - Madras JUG 20171028
Do you know your mock? - Madras JUG 20171028
 
Be Pragmatic - JavaOne 2017
Be Pragmatic - JavaOne 2017Be Pragmatic - JavaOne 2017
Be Pragmatic - JavaOne 2017
 
Generics and Lambda survival guide - DevNexus 2017
Generics and Lambda survival guide - DevNexus 2017Generics and Lambda survival guide - DevNexus 2017
Generics and Lambda survival guide - DevNexus 2017
 
JavaOne 2016 - Learn Lambda and functional programming
JavaOne 2016 - Learn Lambda and functional programmingJavaOne 2016 - Learn Lambda and functional programming
JavaOne 2016 - Learn Lambda and functional programming
 
Java 8, lambdas, generics: How to survive? - NYC Java Meetup Group
Java 8, lambdas, generics: How to survive? - NYC Java Meetup GroupJava 8, lambdas, generics: How to survive? - NYC Java Meetup Group
Java 8, lambdas, generics: How to survive? - NYC Java Meetup Group
 
Generics and Lambdas cocktail explained - Montreal JUG
Generics and Lambdas cocktail explained  - Montreal JUGGenerics and Lambdas cocktail explained  - Montreal JUG
Generics and Lambdas cocktail explained - Montreal JUG
 
Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!Réactif, parallèle, asynchrone. Pourquoi!
Réactif, parallèle, asynchrone. Pourquoi!
 
Microbenchmarking with JMH
Microbenchmarking with JMHMicrobenchmarking with JMH
Microbenchmarking with JMH
 
Lambdas and Generics (long version) - Bordeaux/Toulouse JUG
Lambdas and Generics (long version) - Bordeaux/Toulouse JUGLambdas and Generics (long version) - Bordeaux/Toulouse JUG
Lambdas and Generics (long version) - Bordeaux/Toulouse JUG
 
Vivre en parallèle - Softshake 2013
Vivre en parallèle - Softshake 2013Vivre en parallèle - Softshake 2013
Vivre en parallèle - Softshake 2013
 
Performance perpétuelle (Devopsdays Paris 2013)
Performance perpétuelle (Devopsdays Paris 2013)Performance perpétuelle (Devopsdays Paris 2013)
Performance perpétuelle (Devopsdays Paris 2013)
 
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
DevoxxFR 2013: Lambda are coming. Meanwhile, are you sure we've mastered the ...
 

Dernier

cours-sur-les-stations-de-pompageen génie civil.pdf
cours-sur-les-stations-de-pompageen génie civil.pdfcours-sur-les-stations-de-pompageen génie civil.pdf
cours-sur-les-stations-de-pompageen génie civil.pdf
afigloria194
 
Shimla Girls call Service 000XX00000 Provide Best And Top Girl Service And No...
Shimla Girls call Service 000XX00000 Provide Best And Top Girl Service And No...Shimla Girls call Service 000XX00000 Provide Best And Top Girl Service And No...
Shimla Girls call Service 000XX00000 Provide Best And Top Girl Service And No...
manalishivani8
 
Webinaire BL 28_06_02_Consommation Energie.pdf
Webinaire BL 28_06_02_Consommation Energie.pdfWebinaire BL 28_06_02_Consommation Energie.pdf
Webinaire BL 28_06_02_Consommation Energie.pdf
Institut de l'Elevage - Idele
 
Présentation Mémoire Cybersecurity .pptx
Présentation Mémoire Cybersecurity .pptxPrésentation Mémoire Cybersecurity .pptx
Présentation Mémoire Cybersecurity .pptx
KODJO10
 
Webinaire BL 28_06_01_robots de traite.pdf
Webinaire BL 28_06_01_robots de traite.pdfWebinaire BL 28_06_01_robots de traite.pdf
Webinaire BL 28_06_01_robots de traite.pdf
Institut de l'Elevage - Idele
 
Webinaire BL 28_06_03_Transmissibilité.pdf
Webinaire BL 28_06_03_Transmissibilité.pdfWebinaire BL 28_06_03_Transmissibilité.pdf
Webinaire BL 28_06_03_Transmissibilité.pdf
Institut de l'Elevage - Idele
 

Dernier (6)

cours-sur-les-stations-de-pompageen génie civil.pdf
cours-sur-les-stations-de-pompageen génie civil.pdfcours-sur-les-stations-de-pompageen génie civil.pdf
cours-sur-les-stations-de-pompageen génie civil.pdf
 
Shimla Girls call Service 000XX00000 Provide Best And Top Girl Service And No...
Shimla Girls call Service 000XX00000 Provide Best And Top Girl Service And No...Shimla Girls call Service 000XX00000 Provide Best And Top Girl Service And No...
Shimla Girls call Service 000XX00000 Provide Best And Top Girl Service And No...
 
Webinaire BL 28_06_02_Consommation Energie.pdf
Webinaire BL 28_06_02_Consommation Energie.pdfWebinaire BL 28_06_02_Consommation Energie.pdf
Webinaire BL 28_06_02_Consommation Energie.pdf
 
Présentation Mémoire Cybersecurity .pptx
Présentation Mémoire Cybersecurity .pptxPrésentation Mémoire Cybersecurity .pptx
Présentation Mémoire Cybersecurity .pptx
 
Webinaire BL 28_06_01_robots de traite.pdf
Webinaire BL 28_06_01_robots de traite.pdfWebinaire BL 28_06_01_robots de traite.pdf
Webinaire BL 28_06_01_robots de traite.pdf
 
Webinaire BL 28_06_03_Transmissibilité.pdf
Webinaire BL 28_06_03_Transmissibilité.pdfWebinaire BL 28_06_03_Transmissibilité.pdf
Webinaire BL 28_06_03_Transmissibilité.pdf
 

Perf university

  • 1. 11 Tél : +33 (0)1 58 56 10 00 Fax : +33 (0)1 58 56 10 01 www.octo.com© OCTO 2014 50, avenue des Champs-Elysées 75008 Paris - FRANCE Université de la Performance
  • 2. 22 Tél : +33 (0)1 58 56 10 00 Fax : +33 (0)1 58 56 10 01 www.octo.com© OCTO 2014 50, avenue des Champs-Elysées 75008 Paris - FRANCE Agenda
  • 3. 33
  • 5. 55
  • 10. 1010 Tél : +33 (0)1 58 56 10 00 Fax : +33 (0)1 58 56 10 01 www.octo.com© OCTO 2014 50, avenue des Champs-Elysées 75008 Paris - FRANCE Présentation de l’équipe
  • 11. 1111 Architecte Senior Responsable pôle performance Responsable R&D Membre fondateur du PerfUG Marc Bojoly
  • 12. 1212 Architecte Senior Référent technique pôle performance Responsable R&D EasyMock lead developer Objenesis lead developer Membre fondateur du PerfUG Henri Tremblay
  • 13. 1313 Architecte Senior Pôle Devops Expert optimisation système Co-organisateur du concours de performance Billion-user challenge en 2011 Intervenant PerfUG Ludovic Piot
  • 14. 1414 Architecte Expert Infra & Devops Responsable de l’infrastructure OCTO Commiter : Master-chef Master-cap Mikaël Robert
  • 15. 1515 Les performances d’un système sont une spécification fonctionnelle implicite du système Notre vision ? Source : www.arthursclipart.org
  • 16. 1616 La mesure de performance doit être au cœur du processus de développement informatique Notre vision ? Source : Les géants du Web
  • 17. 1717 Nous voulons des systèmes performants Notre vision ? Source : Les géants du Web
  • 18. 1818 La démarche de test que nous utilisons TESTS DE CHARGE Mesurer Optimiser TESTS DE PERFORMANCE UNITAIRE
  • 19. 1919 La démarche de test que nous utilisons TESTS DE CHARGE TESTS DE PERFORMANCE UNITAIRE Mesurer Optimiser Mise en place des mesures et scénarios Exécution des scénarios • Simulation • Correction • Mesure Optimisation Estimation des gains potentiels • Sur un poste de développement • Validation des hypothèses • Tuning des « hot spots » • Environnements de production • Scénarios représentatifs • Jeux de données • Cible à atteindre
  • 20. 2020 Définition du plan et des cas de test Plan de test Cas de test Création des scénarii et des scripts de tests Enregistrement des métriques Consolidation des métriques et édition d’un rapport de test Analyse du rapport de test et émission des préconisations Rapport d’analyse Métriques Rapport de test Contrôleur Scripts de test Scénarii de test Capture des métriques Application cible Injecteurs Données de test Création des paliers de données Exécution : simulation d’utilisateurs Méthodologie d’un test de charge 1 1 2 3 3 3 4 5
  • 21. 2121 Les outils utilisés aujourd’hui Identifier les ressources en quantité limitante Identifier les impacts sur les différentes machines lorsque l’application est distribuée Corréler l’évolution des temps de réponse et les consommations de ressources sur les différentes machines Enregistrer et rejouer de manière fidèle un ensemble d’actions utilisateurs. Variabiliser ces actions utilisateurs pour être représentatif de l’usage réel Simuler un grand nombre d’utilisateurs Migrer les données depuis la production mais il faut souvent l’anonymiser. Générer un jeux de données mais il doit être représentatif Rétablir le jeux de données dans son état initial une fois le tir effectué GÉNÉRER LES DONNÉES TESTER EN CHARGE MONITORER LA CONSOMMATION DE RESSOURCES
  • 22. 2222 Les outils en général Identifier les ressources en quantité limitante Identifier les impacts sur les différentes machines lorsque l’application est distribuée Corréler l’évolution des temps de réponse et les consommations de ressources sur les différentes machines Enregistrer et rejouer de manière fidèle un ensemble d’actions utilisateurs. Variabiliser ces actions utilisateurs pour être représentatif de l’usage réel Simuler un grand nombre d’utilisateurs Migrer les données depuis la production mais il faut souvent l’anonymiser. Générer un jeux de données mais il doit être représentatif Rétablir le jeux de données dans son état initial une fois le tir effectué GÉNÉRER LES DONNÉES TESTER EN CHARGE MONITORER LA CONSOMMATION DE RESSOURCES
  • 23. 2323 Notre fil rouge : Happy Store Navigateur Tomcat PgSQL Une application comme on en rencontre souvent, pas très loin de l’état de l’art.. Sauf pour les performances !
  • 27. 2727 Calcul de l’inventaire sur un magasin Inventory http://localhost:8080/happystore/inventory? storeId=1234
  • 28. 2828 Calcul du chiffre d’affaire par groupe de produits Turnover (group by+order by) http://localhost:8080/happystore/turnover? groupId=1
  • 29. 2929 LES DIFFÉRENTS TYPES DE TEST •Objectif : mesurer la performance unitaire •Ex : le use case de souscription est testé pour 1 utilisateur et, pour chaque étape du use case, on mesure le temps passé dans les différents composants de l’application Test de performance unitaire •Objectif : mesurer la tenue en charge de l’application sur la population cible •Ex : on simule l’utilisation de l’application par 200 utilisateurs en parallèle pendant 2h Test de charge •Objectif : déterminer les limites de l’application •Ex : on augmente le nombre d’utilisateurs en parallèle sur l’application jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus acceptables Test de rupture •Objectif : déterminer la capacité de l’application à fonctionner sur une période étendue •Ex : on simule l’utilisation de l’application pendant 48h, avec une charge constante et égale à la charge moyenne Test de vieillissement
  • 31. 3131 LES DIFFÉRENTS TYPES DE TEST •Objectif : mesurer la performance unitaire •Ex : le use case de souscription est testé pour 1 utilisateur et, pour chaque étape du use case, on mesure le temps passé dans les différents composants de l’application Test de performance unitaire •Objectif : mesurer la tenue en charge de l’application sur la population cible •Ex : on simule l’utilisation de l’application par 200 utilisateurs en parallèle pendant 2h Test de charge •Objectif : déterminer les limites de l’application •Ex : on augmente le nombre d’utilisateurs en parallèle sur l’application jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus acceptables Test de rupture •Objectif : déterminer la capacité de l’application à fonctionner sur une période étendue •Ex : on simule l’utilisation de l’application pendant 48h, avec une charge constante et égale à la charge moyenne Test de vieillissement
  • 32. 3232 Cible de performance Cible : 100 utilisateurs concurrents Volumétrie de la base de données : 19,5 millions de lignes
  • 34. 3434 Architecture LOCAL SERVER APPLICATION SERVER DATABASE SERVER Gatling PostgreSQL JVM Tomcat
  • 36. 3636 Premature optimization is the root of all evil - Donald Knuth
  • 37. 3737 Il voulait dire ça: // Do not use the for(Object o : list) // because I think it is probably // slower than doing this… Probably… for(int i = 0; i < list.size(); i++) { Object o = list.get(i); … } Stop guessing dam it!!!
  • 40. 4040 PROD Archi Dev Perf 1. Conception des tests 2. Automatisation des tests 3. Développement logiciel 4. Exécution auto- matique des tests #1 #2 #3
  • 41. 4141 Archi Dev Perf PROD DélaiMEP À L’ARRACHE 1. Conception des tests 2. Automatisation des tests 3. Développement logiciel 4. Exécution auto- matique des tests #1 #2 #3
  • 42. 4242 1. Conception des tests 2. Automatisation des tests 3. Développement logiciel 4. Exécution auto- matique des tests #1 #2 #3 PROD Archi Dev Tests de charge en continue
  • 43. 4343 Intégrer les tests de performances au cycle de développement? Hyperviseur Jenkins AppServer Chef DbServer Chef 1 3 2 Créer environnement Tir de performance Destruction environnement
  • 44. 4444 Jenkins Deploiement d’environnement automatisé : exemple avec Chef & Capistrano Git Nexus Capistrano Node Chef Hyperviseur API hyperviseur Node Chef Node Chef Dép. app. 2 1 1 3 • Capistrano demande VM à l’hyperviseur • Installation OS par PXE ou clone 2 • Création & mise à disposition VMs • SSH ouvert, IP temporaire 3 • Scripts de démarrage (maison, cloud-init…) • Personnalisation VM, IP, Reseau etc • Installation Chef 4 4 4 • Capistrano lance Chef sur Node • Chef récupère les cookbooks via Git • Installation packages et configurations 5 5 5 • Capistrano lance déploiement application • Exécute sur machine téléchargement application • Déploie application • Administrateur lance job 0
  • 46. 4646 LES DIFFÉRENTS TYPES DE TEST •Objectif : mesurer la performance unitaire •Ex : le use case de souscription est testé pour 1 utilisateur et, pour chaque étape du use case, on mesure le temps passé dans les différents composants de l’application Test de performance unitaire •Objectif : mesurer la tenue en charge de l’application sur la population cible •Ex : on simule l’utilisation de l’application par 200 utilisateurs en parallèle pendant 2h Test de charge •Objectif : déterminer les limites de l’application •Ex : on augmente le nombre d’utilisateurs en parallèle sur l’application jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus acceptables Test de rupture •Objectif : déterminer la capacité de l’application à fonctionner sur une période étendue •Ex : on simule l’utilisation de l’application pendant 48h, avec une charge constante et égale à la charge moyenne Test de vieillissement
  • 48. 4848 Architecture TOOL SERVER APPLICATION SERVER DATABASE SERVER CI STACK GRAPHITE STACK Jenkins Gatling Maven Graphite Collectd Carbon Git Collectd Whisper PostgreSQL JVM Tomcat
  • 50. 5050 Un exemple d’outil d’APM du marché : AppDynamics
  • 52. 5252 LES DIFFÉRENTS TYPES DE TEST •Objectif : mesurer la performance unitaire •Ex : le use case de souscription est testé pour 1 utilisateur et, pour chaque étape du use case, on mesure le temps passé dans les différents composants de l’application Test de performance unitaire •Objectif : mesurer la tenue en charge de l’application sur la population cible •Ex : on simule l’utilisation de l’application par 200 utilisateurs en parallèle pendant 2h Test de charge •Objectif : déterminer les limites de l’application •Ex : on augmente le nombre d’utilisateurs en parallèle sur l’application jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus acceptables Test de rupture •Objectif : déterminer la capacité de l’application à fonctionner sur une période étendue •Ex : on simule l’utilisation de l’application pendant 48h, avec une charge constante et égale à la charge moyenne Test de vieillissement
  • 54. 5454 Préparer les jeux de données Benerator Exécuter une mesure unitaire Chrome developer tools Identifier un problème d’index jstack, explan plan Exécuter des tests de charge Gatling Automatisation des tests de charge Jenkins, Capistrano, Chef Problème de contention VisualVM, jstack Mise en place du monitoring Metrics, collectd et Graphite Tuning système Bonnie++ Identifier une fuite mémoire VisualVM Résumé de la journée
  • 55. 5555 Exemple de benchmark: http://blog.octo.com/lart-du-benchmark/ Conférence sur l’industrialisation (USI 2013): https://www.youtube.com/watch?v=BXO3LYQ9Vic Tests de performance SQLFire: http://blog.octo.com/en/sqlfire-from-the-trenches/ Cet après-midi: 13h30: Hackergarten EasyMock 17h10: Microbenchmarking with JMH Liens utiles http://brownbaglunch .fr
  • 56. 5656 Retrouvez nous la semaine prochaine http://perfug.github.io / Prochain épisode: Jeudi 24 avril Performance Hadoop temps réel Sofian Djamaa (Criteo) Sessions précédentes sur le site
  • 57. 5757
  • 58. 5858 +Henri Tremblay @henri_tremblay htremblay@octo.com +Marc Bojoly @mbojoly mbojoly@octo.com +Mikael Robert @mikaelrob mrobert@octo.com +Ludovic Piot @lpiot lpiot@octo.com

Notes de l'éditeur

  1. Tuning
  2. Suivide performance
  3. Méthodologie… parcequeil en fauttoujours un petit peu
  4. Recording GatlingExécution du test de chargeProblème du statfilter
  5. 02- L’optimisation prématurée est la source du mal (tout à commencé par ça)Henri:C’est là où tout à commencé. On l’apprend très tôt à l’école, ne pas optimisé prématurément, ça sert à rien et souvent c’est pire.Les problèmes c’est qu’en disant ça, Knuth pensait à ça
  6. 03- Code early optimisé pour rien (en fait c&apos;était pour ça)Henri:C’est-à-dire faire une niaiserie qui sert à rien, mélange le compilateur, complique le code et ne sert à rien du tout.Reprenons du début et voyons comment se déroule un projet
  7. 03- Code early optimisé pour rien (en fait c&apos;était pour ça)Henri:Là où il faut écouter Knuth, c’est qu’en pratique, on code, on mesure et on optimise là où c’est importantMais reprenons du début
  8. Test de rupture maisçaseraitbiend’avoir un peu de métriques en temps réelMetricsGraphite
  9. Testd’enduranceMemory leakTuning systèmeIdées:Saturation disqueBuffer TCPTuning paramètres filesystemNIOPool de connexions DBGros log en debugCalcul de la vitesse disque, optimisation
  10. Évidemment, on a un peu simplifier pour les besoins de la présentation. Ce qu’il faut retenir c’est que c’est tout à fait possible à mettre en place. Et en cas de besoin, Mikaël et moi sommes là pour vous aider.