Performance perpétuelle (Devopsdays Paris 2013)

  • 844 views
Uploaded on

Why and how to do performance testing inside your continuous delivery pipeline

Why and how to do performance testing inside your continuous delivery pipeline

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
844
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
2
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 01- Page titre (pourquoi il faut faire des tests au début)Henri: Je suis Henri Tremblay et j’ai avec moi Mikaël Robert.On va vous expliquer pourquoi il faut faire des tests de performance au début, pendant et pas juste à la fin des projets comme d’habitude. Tout ça de façon automatique.Traditionnellement, on le fait à la fin à cause de Donald Knuth
  • 02- Early optimisation is the root of all evil (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
  • 03- Code early optimisé pour rien (en fait c'é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
  • 03- Code early optimisé pour rien (en fait c'é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
  • 11- Un déploiement automatiqueMikaël:Pour créer votre environnement automatiquement vous avez pas mal de choix.En gros, vous utilisez votre cloud préféré, votre hyperviseur préféré et surtout vos outils de construction automatique d’environnement préférés
  • 12- Un VM des perfsMikaël:Par exemple, là on utilise chef pour créer un serveur tomcat dans lequel est déployé notre application et on lui met un front nginx pour être proche de notre conf de prod
  • 10- Un gatlingEnsuite, il vous faut un scénario représentatif, par exemple fait avec Gatling comme iciEt vous le lancez par maven avec le gatling-maven-plugin
  • 09- Un jenkinsMikaël:Vous mettez tout ça dans jenkins et ça vous donneUn jenkins qui - Crée un environnement de tests- Récupére les binaires pour les déployer sur l’environnement de tests- Lance les tests de charge avec le gatling-maven-plugin
  • 14- Des résultats vérifiésMikaël:Vous obtenez des rapports détaillésGatling permet même d’avoir des assertions sur les résultats. Donc si un matin un développeur fait une connerie et que soudain le 251ms se transforme
  • 15- Résultats mauvais (et hop, le prochain qui fait le con)Mikaël:En 1335ms… au lieu de le voir une semaine avant la prod, ça fait exploser votre build et ça rend Jenkins tout triste
  • Mikaël:C’est réparé sur le champ et Jenkins redevient de bonne humeur
  • 18- Plein d'argent à la finMikaël:Après vous faites comme vous voulez… soit vous préférez attendre la fin du projet pour réaliser que rien ne marche et finir en catastrophe
  • 18- Plein d'argent à la finHenri:Mais nous on préfère finir nos projets tranquillement et boire des pina colada dont je vous met ma recette personnelle ci-dessous
  • 20- Un takeaway d'outils utiles avec bien sûr OCTO qui peut vous aider :-)Henri:Sinon, c’était un peu dense tout ça, si vous avez besoin d’aide pour les détails, évidemment, OCTO peut vous aider avec plaisir
  • 20- Des questions?Henri:Avez-vous des questions?

Transcript

  • 1. 1© OCTO 2012© OCTO 2012Performance perpétuelleMesures et améliorations continues desperformancesMikaël RobertResponsable R&D Software Factory 2.0OCTO TechnologyHenri TremblayResponsable R&D PerformanceOCTO Technology
  • 2. 2© OCTO 2012Premature optimization isthe root of all evil - DonaldKnuth
  • 3. 3© OCTO 2012Il 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!!!
  • 4. 4© OCTO 2012CodeMesureOptimiseLà où c’estimportant
  • 5. 5© OCTO 2012PRODArchiDevPerf
  • 6. 6© OCTO 2012PRODArchiDevPerf
  • 7. 7© OCTO 2012ArchiDevPerfPRODDélai
  • 8. 8© OCTO 2012PRODArchiDevTests de charge encontinue
  • 9. 9© OCTO 2012
  • 10. 10© OCTO 2012
  • 11. 11© OCTO 2012include_recipe "tomcat"include_recipe "nginx"directory node.myapp.home doowner node.tomcat.userendtomcat_instance "myapp:tomcat" dowar_url node.myapp.urlwar_location node.myapp.locationend tomcat_myapp_http_port =tomcat_config("myapp:tomcat")[:connectors][:http][:port]nginx_add_default_location "myapp" docontent <<-EOFlocation #{node.myapp.location} {proxy_pass http://tomcat_myapp_upstream;break;}EOFupstream <<-EOFupstream tomcat_myapp_upstream {server 127.0.0.1:#{tomcat_myapp_http_port} fail_timeout=0;}EOFend
  • 12. 12© OCTO 2012<plugin><groupId>com.excilys.ebi.gatling</groupId><artifactId>gatling-maven-plugin</artifactId><version>1.4.6</version></plugin>
  • 13. 13© OCTO 2012VM PerfVM UDD
  • 14. 14© OCTO 2012assertThat(details("account").responseTime.mean.lessThan(1000))
  • 15. 15© OCTO 2012Simulation finished.account mean response time is less than 1000 : falseSimulation failed.Generating reports...Reports generated in 0s.[INFO] ----------------------------------------[INFO] BUILD FAILURE[INFO] ----------------------------------------[INFO] Total time: 32.411s[INFO] Finished at: Mon Apr 15 00:23:07 CEST 2013[INFO] Final Memory: 9M/120M[INFO] ----------------------------------------
  • 16. 16© OCTO 2012
  • 17. 17© OCTO 2012Après, vous faites commevous voulez.
  • 18. 18© OCTO 2012Mais nous on préfère les pinacolada.Recette:2oz amber rhum4oz pinapple juiceDash of coco syrupBlend with crush ice
  • 19. 19© OCTO 2012
  • 20. 20© OCTO 2012Questions ?