SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Click	
  to	
  edit	
  Master	
  /tle	
  style	
  
Pi2alls	
  in	
  Performance	
  Tes/ng	
  
June	
  2015	
  
Wouter	
  Soubry	
  
1	
  #AxxesCC	
  
Why	
  are	
  we	
  here?	
  
2	
  #AxxesCC	
  
3	
  
Load	
  Tes/ng	
  Failures	
  –	
  Taxonweb.be	
  
#AxxesCC	
  
4	
  
Load	
  Tes/ng	
  Failures	
  –	
  healthcare.gov	
  
#AxxesCC	
  
 Technical	
  point	
  of	
  view:	
  
 Single	
  user	
  performance	
  
Acceptable	
  slowdown	
  under	
  load/stress	
  
Not	
  only	
  websites!	
  
Every	
  project	
  should	
  consider	
  performance	
  
explicitly	
  
5	
  
What	
  is	
  (applica/on)	
  performance?	
  
#AxxesCC	
  
hWp://survey.neuronsparks.be	
  
	
  
hWp://splunk.neuronsparks.be/en-­‐US/app/search/speed_survey	
  	
  
6	
  
Experiment	
  
#AxxesCC	
  
 “The	
  site	
  needs	
  to	
  be	
  sufficiently	
  fast”	
  
 “Page	
  must	
  load	
  in	
  4s”	
  
 PDF	
  genera/on	
  should	
  not	
  take	
  >	
  30s	
  
 The	
  site	
  must	
  be	
  able	
  to	
  handle	
  1000	
  users	
  
Trading	
  system	
  must	
  be	
  able	
  to	
  do	
  1000	
  TPS	
  
7	
  
Performance	
  Requirements	
  
#AxxesCC	
  
Pi2all	
  1	
  
Wrong,	
  ambiguous	
  or	
  non-­‐existent	
  
performance	
  requirements	
  
8	
  #AxxesCC	
  
Specific:	
  200	
  concurrent	
  users,	
  scenario	
  
walkthrough,	
  4s	
  @	
  95	
  percen/le	
  response	
  all	
  
pages	
  upon	
  first	
  /me	
  visit,	
  pc	
  on	
  dsl	
  
Measurable:	
  at	
  the	
  client	
  side,	
  with	
  preload	
  
Achievable:	
  ‘heavy’	
  page	
  in	
  200ms?	
  
 Relevant	
  
Above	
  the	
  fold	
  load	
  /me	
  
 “Onload”	
  event	
  versus	
  speed	
  index	
  
 Time-­‐bound:	
  golive,	
  gradual	
  adop/on,	
  
campaign	
  start	
  
9	
  
“SMART”	
  Performance	
  Requirements	
  
#AxxesCC	
  
 Throughput,	
  load	
  envelope	
  
 Response	
  /me	
  
 User	
  behaviour	
  (think	
  /me,	
  flow)	
  
 Device,	
  connec/on	
  
 Context:	
  /cket	
  sale,	
  tax	
  deadline	
  
10	
  
Aspects	
  of	
  Performance	
  Reqs	
  
#AxxesCC	
  
Staging	
   Produc/on	
  
11	
  #AxxesCC	
  
Pi2all	
  2	
  
Linear	
  extrapola/on	
  
12	
  #AxxesCC	
  
Scalability	
  needs	
  to	
  be	
  built-­‐in	
  (and	
  tested)	
  
What	
  is	
  the	
  uncertainty	
  of	
  your	
  expected	
  
load?	
  
 Is	
  scalability	
  important?	
  How	
  fast	
  can	
  you	
  
provision?	
  
 Business	
  impact	
  of	
  out	
  of	
  spec	
  performance?	
  
	
  
13	
  
Avoiding	
  Surprises	
  
#AxxesCC	
  
14	
  
Invite	
  your	
  Friends?	
  
#AxxesCC	
  
15	
  
Tooling	
  
#AxxesCC	
  
16	
  
L’Embarras	
  du	
  Choix	
  
ApacheBench	
  
?#AxxesCC	
  
17	
  
Tooling:	
  Cost	
  /	
  ROI	
  
#AxxesCC	
  
/	
  
Pi2all	
  3	
  
A	
  fool	
  with	
  a	
  tool	
  is	
  s/ll	
  a	
  fool	
  
(Grady	
  Booch)	
  
18	
  #AxxesCC	
  
 Simple	
  >	
  complex	
  
 Understand	
  what	
  the	
  tool	
  is	
  doing	
  
What	
  do	
  the	
  metrics	
  mean	
  
What	
  is	
  measured	
  exactly	
  
 Tools	
  are	
  no	
  subs/tute	
  for	
  thinking,	
  but…	
  
Good	
  repor/ng	
  helps	
  
Intui/ve	
  interface++	
  
Find	
  similar	
  use	
  cases	
  –	
  how	
  did	
  they	
  do	
  it?	
  
19	
  
Choose	
  Your	
  Weapon	
  Wisely	
  
#AxxesCC	
  
 Simple	
  >	
  complex	
  
 Demo	
  with	
  ApacheBench	
  +	
  nmon	
  
20	
  
Choose	
  Your	
  Weapon	
  Wisely	
  
#AxxesCC	
  
21	
  
Load	
  Test	
  Recording	
  
#AxxesCC	
  
Proxy	
  
Interceptor	
  
JMeter	
  recording	
  demo	
  
Generate	
  load	
  
Measure	
  end-­‐user	
  perf	
  
 “RUM”/synthe/c	
  
 Transac/on	
  breakdown	
  
 Code-­‐level	
  profiling	
  
Infrastructure	
  monitoring	
  
 Business	
  analy/cs	
  
22	
  
Tool	
  Categories	
  
}	
  APM	
  
#AxxesCC	
  
SaaS	
  ‘cloud’	
  load	
  genera/on	
  
Blazemeter,	
  loadstorm,…	
  
 APM	
  suites	
  	
  
 New	
  Relic	
  
AppDynamics	
  
Dynatrace	
  
 …	
  
 Big	
  (machine)	
  data	
  
Splunk,	
  Loggly,	
  logentries,	
  Sumologic,	
  Logstash/elk	
  
 Monitoring	
  infrastructure	
  
23	
  
Tool	
  Convergence	
  
#AxxesCC	
  
 Domain	
  knowledge	
  
 System	
  administra/on	
  
 Networking	
  exper/se	
  
 Database	
  adminstra/on	
  
 Applica/on	
  stack	
  knowledge:	
  frameworks	
  
 Tools	
  knowledge	
  
 Performance	
  tes/ng	
  knowhow	
  
(+	
  some	
  sta/s/cs)	
  
24	
  
Needed	
  Skills	
  
#AxxesCC	
  
25	
  #AxxesCC	
  
Pi2all	
  4	
  
Not	
  leveraging	
  in-­‐house	
  exper/se	
  
26	
  #AxxesCC	
  
 Large	
  bank	
  online	
  security	
  overhaul	
  
 Compliance	
  log	
  subsystem	
  
27	
  
A	
  Tale	
  from	
  the	
  Trenches	
  
#AxxesCC	
  
Pi2all	
  5	
  
Premature	
  or	
  late	
  op/miza/on	
  
28	
  #AxxesCC	
  
End-­‐user	
  
performance	
  
sufficient?	
  
Transac/on	
  
drilldown	
  
Iden/fy	
  &	
  
eliminate	
  
boWleneck	
  
29	
  
Chasing	
  the	
  BoWleneck	
  
#AxxesCC	
  
 Week	
  before	
  golive	
  
 Performance	
  tes/ng	
  completed,	
  green	
  light	
  
Func/onal	
  freeze	
  
 Cri/cal	
  bugfixes	
  only	
  
Launch	
  goes	
  
30	
  
Recipe	
  for	
  Disaster	
  
#AxxesCC	
  
Pi2all	
  6	
  
No	
  con/nuous	
  profiling	
  
31	
  #AxxesCC	
  
Regression	
  tes/ng	
  performance	
  
 CI	
  tools:	
  Jenkins,	
  Atlassian	
  Bamboo,	
  TFS,	
  …	
  
 Webpagetest/sitespeed.io	
  
 Single-­‐user	
  performance	
  
 Performance	
  budget	
  
 Speed	
  index	
  
 Demo:	
  Jmeter/Jenkins	
  
32	
  #AxxesCC	
  
 Integra/on	
  environment	
  
Not	
  produc/on	
  representa/ve	
  
Regression	
  detec/on	
  
Rule	
  out	
  startup	
  effects	
  
Iden/fy	
  cri/cal	
  measurements	
  
 HTTP	
  APIs	
  
 DB	
  transac/ons	
  
 XML	
  processing	
  
33	
  
Jenkins	
  and	
  JMeter	
  
#AxxesCC	
  
Pi2all	
  7	
  
No	
  proper	
  configura/on	
  
management	
  
34	
  #AxxesCC	
  
Annota/on	
  overlays	
  on	
  metrics	
  
hWp://play.grafana.org/dashboard/db/annota/ons	
  	
  
What	
  to	
  annotate:	
  
Deploys	
  
Config	
  changes	
  
Anything	
  with	
  poten/al	
  performance	
  impact	
  
Newrelic	
  deployments	
  demo	
  
35	
  
What	
  introduced	
  the	
  problem?	
  
#AxxesCC	
  
 It’s	
  about	
  the	
  user.	
  The	
  User.	
  
 Tools:	
  use	
  what	
  you	
  know	
  best,	
  
simpler	
  =	
  beWer	
  
 Monitoring:	
  develop	
  a	
  (healthy)	
  data	
  addic/on	
  
Config	
  management	
  hygiene	
  
 Knowledge:	
  stand	
  on	
  the	
  shoulders	
  of	
  giants	
  
36	
  
Key	
  Takeaways	
  
#AxxesCC	
  
Thank	
  You	
  
	
  

Contenu connexe

Tendances

Tendances (20)

Managing Modules Without Going Crazy (NPW 2007)
Managing Modules Without Going Crazy (NPW 2007)Managing Modules Without Going Crazy (NPW 2007)
Managing Modules Without Going Crazy (NPW 2007)
 
Rare frontend testing
Rare frontend testingRare frontend testing
Rare frontend testing
 
PHP-VCR Lightningtalk
PHP-VCR LightningtalkPHP-VCR Lightningtalk
PHP-VCR Lightningtalk
 
PHP-VCR behat case study
PHP-VCR behat case studyPHP-VCR behat case study
PHP-VCR behat case study
 
Concurrent Rendering Adventures in React 18
Concurrent Rendering Adventures in React 18Concurrent Rendering Adventures in React 18
Concurrent Rendering Adventures in React 18
 
Springaopdecoded ajip
Springaopdecoded ajipSpringaopdecoded ajip
Springaopdecoded ajip
 
JSDC 2015 - TDD 的開發哲學,以 Node.js 為例
JSDC 2015 - TDD 的開發哲學,以 Node.js 為例JSDC 2015 - TDD 的開發哲學,以 Node.js 為例
JSDC 2015 - TDD 的開發哲學,以 Node.js 為例
 
Building high-performance web applications with Preact
Building high-performance web applications with PreactBuilding high-performance web applications with Preact
Building high-performance web applications with Preact
 
Pm2
Pm2Pm2
Pm2
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-Pipelines
 
Jenkins Pipelines Advanced
Jenkins Pipelines AdvancedJenkins Pipelines Advanced
Jenkins Pipelines Advanced
 
Jenkins Pipeline meets Oracle
Jenkins Pipeline meets OracleJenkins Pipeline meets Oracle
Jenkins Pipeline meets Oracle
 
Automate Thyself
Automate ThyselfAutomate Thyself
Automate Thyself
 
Selenium cloud
Selenium cloudSelenium cloud
Selenium cloud
 
Create, test, secure, repeat
Create, test, secure, repeatCreate, test, secure, repeat
Create, test, secure, repeat
 
End to-end testing from rookie to pro
End to-end testing  from rookie to proEnd to-end testing  from rookie to pro
End to-end testing from rookie to pro
 
Test driving QML
Test driving QMLTest driving QML
Test driving QML
 
AdminBits & codequack.com
AdminBits & codequack.comAdminBits & codequack.com
AdminBits & codequack.com
 
Full stack, Full run, Full test
Full stack, Full run, Full testFull stack, Full run, Full test
Full stack, Full run, Full test
 
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
Brief Intro to Phoenix - Elixir Meetup at BukaLapakBrief Intro to Phoenix - Elixir Meetup at BukaLapak
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
 

Similaire à Pitfalls in Performance Testing AxxesCC 06/2015

Ag02 agile practices - dnc14 handouts
Ag02   agile practices - dnc14 handoutsAg02   agile practices - dnc14 handouts
Ag02 agile practices - dnc14 handouts
DotNetCampus
 
Gatling - Bordeaux JUG
Gatling - Bordeaux JUGGatling - Bordeaux JUG
Gatling - Bordeaux JUG
slandelle
 
How TDD helps me design - A case study
How TDD helps me design - A case studyHow TDD helps me design - A case study
How TDD helps me design - A case study
Software Craftsmanship Alicante
 

Similaire à Pitfalls in Performance Testing AxxesCC 06/2015 (20)

Tales of modernizing trello's web stack
Tales of modernizing trello's web stackTales of modernizing trello's web stack
Tales of modernizing trello's web stack
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"
 
EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...
EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...
EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...
 
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
 
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingComparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
 
Code instrumentation
Code instrumentationCode instrumentation
Code instrumentation
 
Ag02 agile practices - dnc14 handouts
Ag02   agile practices - dnc14 handoutsAg02   agile practices - dnc14 handouts
Ag02 agile practices - dnc14 handouts
 
Gatling - Bordeaux JUG
Gatling - Bordeaux JUGGatling - Bordeaux JUG
Gatling - Bordeaux JUG
 
EVOLVE'16 | Maximize | Thanesh Sadachcharan | AEM 6.2 - What is in it for you?
EVOLVE'16 | Maximize | Thanesh Sadachcharan | AEM 6.2 - What is in it for you?EVOLVE'16 | Maximize | Thanesh Sadachcharan | AEM 6.2 - What is in it for you?
EVOLVE'16 | Maximize | Thanesh Sadachcharan | AEM 6.2 - What is in it for you?
 
Testing in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita GalkinTesting in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita Galkin
 
Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
 
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptxAnypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
 
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptxMuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
 
How TDD helps me design - A case study
How TDD helps me design - A case studyHow TDD helps me design - A case study
How TDD helps me design - A case study
 
How to deploy & optimize eZ Publish
How to deploy & optimize eZ PublishHow to deploy & optimize eZ Publish
How to deploy & optimize eZ Publish
 
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
 
London SF Developers: Custom Lightning Component Error Handling
London SF Developers: Custom Lightning Component Error HandlingLondon SF Developers: Custom Lightning Component Error Handling
London SF Developers: Custom Lightning Component Error Handling
 
DevOPs Transformation Workshop
DevOPs Transformation WorkshopDevOPs Transformation Workshop
DevOPs Transformation Workshop
 

Dernier

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Dernier (20)

Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Pitfalls in Performance Testing AxxesCC 06/2015

  • 1. Click  to  edit  Master  /tle  style   Pi2alls  in  Performance  Tes/ng   June  2015   Wouter  Soubry   1  #AxxesCC  
  • 2. Why  are  we  here?   2  #AxxesCC  
  • 3. 3   Load  Tes/ng  Failures  –  Taxonweb.be   #AxxesCC  
  • 4. 4   Load  Tes/ng  Failures  –  healthcare.gov   #AxxesCC  
  • 5.  Technical  point  of  view:    Single  user  performance   Acceptable  slowdown  under  load/stress   Not  only  websites!   Every  project  should  consider  performance   explicitly   5   What  is  (applica/on)  performance?   #AxxesCC  
  • 7.  “The  site  needs  to  be  sufficiently  fast”    “Page  must  load  in  4s”    PDF  genera/on  should  not  take  >  30s    The  site  must  be  able  to  handle  1000  users   Trading  system  must  be  able  to  do  1000  TPS   7   Performance  Requirements   #AxxesCC  
  • 8. Pi2all  1   Wrong,  ambiguous  or  non-­‐existent   performance  requirements   8  #AxxesCC  
  • 9. Specific:  200  concurrent  users,  scenario   walkthrough,  4s  @  95  percen/le  response  all   pages  upon  first  /me  visit,  pc  on  dsl   Measurable:  at  the  client  side,  with  preload   Achievable:  ‘heavy’  page  in  200ms?    Relevant   Above  the  fold  load  /me    “Onload”  event  versus  speed  index    Time-­‐bound:  golive,  gradual  adop/on,   campaign  start   9   “SMART”  Performance  Requirements   #AxxesCC  
  • 10.  Throughput,  load  envelope    Response  /me    User  behaviour  (think  /me,  flow)    Device,  connec/on    Context:  /cket  sale,  tax  deadline   10   Aspects  of  Performance  Reqs   #AxxesCC  
  • 11. Staging   Produc/on   11  #AxxesCC  
  • 12. Pi2all  2   Linear  extrapola/on   12  #AxxesCC  
  • 13. Scalability  needs  to  be  built-­‐in  (and  tested)   What  is  the  uncertainty  of  your  expected   load?    Is  scalability  important?  How  fast  can  you   provision?    Business  impact  of  out  of  spec  performance?     13   Avoiding  Surprises   #AxxesCC  
  • 14. 14   Invite  your  Friends?   #AxxesCC  
  • 16. 16   L’Embarras  du  Choix   ApacheBench   ?#AxxesCC  
  • 17. 17   Tooling:  Cost  /  ROI   #AxxesCC   /  
  • 18. Pi2all  3   A  fool  with  a  tool  is  s/ll  a  fool   (Grady  Booch)   18  #AxxesCC  
  • 19.  Simple  >  complex    Understand  what  the  tool  is  doing   What  do  the  metrics  mean   What  is  measured  exactly    Tools  are  no  subs/tute  for  thinking,  but…   Good  repor/ng  helps   Intui/ve  interface++   Find  similar  use  cases  –  how  did  they  do  it?   19   Choose  Your  Weapon  Wisely   #AxxesCC  
  • 20.  Simple  >  complex    Demo  with  ApacheBench  +  nmon   20   Choose  Your  Weapon  Wisely   #AxxesCC  
  • 21. 21   Load  Test  Recording   #AxxesCC   Proxy   Interceptor   JMeter  recording  demo  
  • 22. Generate  load   Measure  end-­‐user  perf    “RUM”/synthe/c    Transac/on  breakdown    Code-­‐level  profiling   Infrastructure  monitoring    Business  analy/cs   22   Tool  Categories   }  APM   #AxxesCC  
  • 23. SaaS  ‘cloud’  load  genera/on   Blazemeter,  loadstorm,…    APM  suites      New  Relic   AppDynamics   Dynatrace    …    Big  (machine)  data   Splunk,  Loggly,  logentries,  Sumologic,  Logstash/elk    Monitoring  infrastructure   23   Tool  Convergence   #AxxesCC  
  • 24.  Domain  knowledge    System  administra/on    Networking  exper/se    Database  adminstra/on    Applica/on  stack  knowledge:  frameworks    Tools  knowledge    Performance  tes/ng  knowhow   (+  some  sta/s/cs)   24   Needed  Skills   #AxxesCC  
  • 26. Pi2all  4   Not  leveraging  in-­‐house  exper/se   26  #AxxesCC  
  • 27.  Large  bank  online  security  overhaul    Compliance  log  subsystem   27   A  Tale  from  the  Trenches   #AxxesCC  
  • 28. Pi2all  5   Premature  or  late  op/miza/on   28  #AxxesCC  
  • 29. End-­‐user   performance   sufficient?   Transac/on   drilldown   Iden/fy  &   eliminate   boWleneck   29   Chasing  the  BoWleneck   #AxxesCC  
  • 30.  Week  before  golive    Performance  tes/ng  completed,  green  light   Func/onal  freeze    Cri/cal  bugfixes  only   Launch  goes   30   Recipe  for  Disaster   #AxxesCC  
  • 31. Pi2all  6   No  con/nuous  profiling   31  #AxxesCC  
  • 32. Regression  tes/ng  performance    CI  tools:  Jenkins,  Atlassian  Bamboo,  TFS,  …    Webpagetest/sitespeed.io    Single-­‐user  performance    Performance  budget    Speed  index    Demo:  Jmeter/Jenkins   32  #AxxesCC  
  • 33.  Integra/on  environment   Not  produc/on  representa/ve   Regression  detec/on   Rule  out  startup  effects   Iden/fy  cri/cal  measurements    HTTP  APIs    DB  transac/ons    XML  processing   33   Jenkins  and  JMeter   #AxxesCC  
  • 34. Pi2all  7   No  proper  configura/on   management   34  #AxxesCC  
  • 35. Annota/on  overlays  on  metrics   hWp://play.grafana.org/dashboard/db/annota/ons     What  to  annotate:   Deploys   Config  changes   Anything  with  poten/al  performance  impact   Newrelic  deployments  demo   35   What  introduced  the  problem?   #AxxesCC  
  • 36.  It’s  about  the  user.  The  User.    Tools:  use  what  you  know  best,   simpler  =  beWer    Monitoring:  develop  a  (healthy)  data  addic/on   Config  management  hygiene    Knowledge:  stand  on  the  shoulders  of  giants   36   Key  Takeaways   #AxxesCC   Thank  You