A Perfect Launch, 
Every Time 
DrupalCamp LA 2014
What is a perfect launch? 
• Schedule - On Time 
• Cost - On Budget 
• Scope - On Plan
Why should you care?
A Perfect Launch Recipe 
Launch Team 
• Onboarding 
Launch Check 
• Best Practices 
Load Test 
• Performance Tuning
Launch Team 
Onboarding
How we prepare for launch 
Goal: Get rid of all the “uh-oh” moments 
Method: Launch Team 
Stakeholders: 
• Project Manager - scheduling, best practices 
• Developer - platform knowledge, integration 
• Sys Admin - responsibilities, delegation 
• Business owner - flawless launch
Have a system and tools 
Specify common workflow requirements 
• Repeatable tasks, delegatable 
Project management - Wrike, JIRA, Redmine, Trello 
Orientation logistics 
• Scheduling - calendar, deadlines 
• Real-time communication 
• Phone, Video Conference, GoToMeeting, IRC 
• Training - documentation, Slides, Videos
Mapping the terrain 
Scoping of responsibilities 
• Reduce confusion, set stage 
Channels of communication 
• Define emergency procedures 
• Issue tracking as primary inbox 
Staying in touch 
• Available, open, and regular 
• Proactive
DrupalCamp LA 2014 - A Perfect Launch, Every Time
Launch Check 
Best Practices
What is Site Audit? 
Drupal 7 static analysis 
• https://drupal.org/project/site_audit 
Best practices 
Actionable report 
Vendor agnostic 
• Optional Pantheon specific recommendations
What can an audit analyze? 
• Drupal caching settings 
• Codebase and file size 
• Database structure 
• Modules, including duplicate / missing 
• Non-standard code structures 
• Views caching 
• Watchdog logs
DrupalCamp LA 2014 - A Perfect Launch, Every Time
Drupal caching settings
Drupal cron
Drupal’s database
Extensions (modules & themes)
Views
Watchdog
Test Configuration 
Simple Drupal 7 site 
Apache Bench 
• 10,000 requests to home page (5 concurrent) 
Warmed cache, cleared watchdog 
Comparison 
• Bad config, 1 PHP notice and warning in theme 
• Good config, no PHP notices or warnings
Result? Doubled performance. 
Performance Comparison Bad Config Good Config 
Load Time (min) 20:52 10:25 
Requests per second 7.98 15.99 
Time per request (ms) 626.192 312.780
Good configuration matters.
Load Testing 
Performance Tuning
Why load test? 
Validate response times under peak load 
Smoke - operations under normal load 
Stress - behavior past peak load 
• Spike - short bursts 
Capacity - plan for growth
Who should execute load tests? 
Developers execute 
Involve stakeholders
Tools for load testing 
DIY and simple 
• Apache Bench - http://httpd.apache.org/docs/2.2/ 
programs/ab.html 
Complex / dynamic 
• Apache JMeter - https://jmeter.apache.org/ 
• Load Impact - https://loadimpact.com/ 
• Load Storm - http://loadstorm.com/
When should I load test? 
Baseline 
Tools 
• Xdebug - http://xdebug.org/ 
• Webgrind - https://github.com/jokkedk/webgrind 
• Devel - https://drupal.org/project/devel 
• Syslog 
• Watchdog 
• New Relic - http://newrelic.com/ 
Incrementally during development
Where do I perform load tests? 
Live environment 
• Bandwidth 
Resource limitations 
SaaS load testing solutions
What to expect during & after 
• Benchmark often 
• Datapoints 
• Aggregate 
• Be reasonable 
• Numbers should dictate expectations 
• Back-end 
• Google Analytics
Caching 
Opcode Cache 
• APC, Zend Opcache, eAccelerator 
Backends 
• Memcached, Redis, MongoDB, file system, APC 
Front-end caching 
• Varnish, Squid, reverse-proxy CDNs
Redis: Engage!
Anonymous page caching: Disabled!
Testing Varnish with cURL
DrupalCamp LA 2014 - A Perfect Launch, Every Time
PHP Slow Log
Nginx error log
MySQL slow log 
# Time: 130320 7:30:26 
# User@Host: db_user[db_database] @ localhost [] 
# Query_time: 4.545309 Lock_time: 0.000069 Rows_sent: 219 
Rows_examined: 254 
SET timestamp=1363779026; 
SELECT option_name, option_value FROM wp_options 
WHERE autoload = 'yes';
Pay attention to watchdog 
6652 11/Oct 15:05 warning php Warning: Cannot modify header 
information - headers already sent by (output started at /srv/ 
www/code/includes/common.inc:2700) in drupal_goto() (line 
! 
6643 11/Oct 14:21 notice php Notice: Trying to get property of 
non-object in cap_ui_preprocess_page() (line 27 of /srv/www/code/ 
sites/all/themes/cap_ui/template.php). 
! 
6595 11/Oct 13:00 notice php Notice: Unknown: Can not 
authenticate to IMAP server: [AUTHENTICATIONFAILED] Invalid 
credentials (Failure) (errflg=2) in main() (line of ).
Good load test
Bad load test
Interpreting results 
Hard numbers 
Business impact
A Perfect Launch, Every Time
Thank you! Questions? 
@SuzanneAldrich 
@GetPantheon 
irc.freenode.net #pantheon 
getpantheon.com

More Related Content

PPTX
Top 10 Application Problems
PPTX
Benchmarking NGINX for Accuracy and Results
PPT
Make Drupal Run Fast - increase page load speed
PPTX
NGINX High-performance Caching
PDF
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
PPTX
Stress Test Drupal on Amazon EC2 vs. RackSpace cloud
PPT
Configuring Apache Servers for Better Web Perormance
PPTX
Doc or Die
Top 10 Application Problems
Benchmarking NGINX for Accuracy and Results
Make Drupal Run Fast - increase page load speed
NGINX High-performance Caching
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
Stress Test Drupal on Amazon EC2 vs. RackSpace cloud
Configuring Apache Servers for Better Web Perormance
Doc or Die

What's hot (20)

PDF
HTTP cache @ PUG Rome 03-29-2011
PDF
Webinar slides: MySQL & MariaDB load balancing with ProxySQL & ClusterControl...
PDF
Speed Matters
PDF
Lcu14 Lightning Talk- NGINX
PDF
Startup DevOps - Jon Milsom Pitchero - Leeds DevOps - August 2014
PPTX
Technical guidance in SaaS Startups
PPTX
Improving Drupal Performances
PPTX
Reverse proxy & web cache with NGINX, HAProxy and Varnish
PDF
Pitchero - Increasing agility through DevOps - Leeds DevOps November 2016
PPT
PPTX
Optimizing performance
PDF
KoprowskiT_SQLSaturdayManchester_2AMaDisasterJustbegan
PDF
Moving faster with CI/CD: Best DevOps practices and lessons learnt
PPTX
Breaking the Speed Limit: Faster Websites Win
PDF
Integrated Cache on Netscaler
PPTX
High Availability Content Caching with NGINX
PPTX
BTV PHP - Building Fast Websites
ODP
The secret life of a dispatcher (Adobe CQ AEM)
PPTX
Delivering High-Availability Web Services with NGINX Plus on AWS
PDF
Caching with Memcached and APC
HTTP cache @ PUG Rome 03-29-2011
Webinar slides: MySQL & MariaDB load balancing with ProxySQL & ClusterControl...
Speed Matters
Lcu14 Lightning Talk- NGINX
Startup DevOps - Jon Milsom Pitchero - Leeds DevOps - August 2014
Technical guidance in SaaS Startups
Improving Drupal Performances
Reverse proxy & web cache with NGINX, HAProxy and Varnish
Pitchero - Increasing agility through DevOps - Leeds DevOps November 2016
Optimizing performance
KoprowskiT_SQLSaturdayManchester_2AMaDisasterJustbegan
Moving faster with CI/CD: Best DevOps practices and lessons learnt
Breaking the Speed Limit: Faster Websites Win
Integrated Cache on Netscaler
High Availability Content Caching with NGINX
BTV PHP - Building Fast Websites
The secret life of a dispatcher (Adobe CQ AEM)
Delivering High-Availability Web Services with NGINX Plus on AWS
Caching with Memcached and APC
Ad

Similar to DrupalCamp LA 2014 - A Perfect Launch, Every Time (20)

PDF
DrupalCon 2014: A Perfect Launch, Every Time
PDF
Stanford DrupalCamp 2014 - A Perfect Launch, Every Time
PDF
MidCamp 2014 - A Perfect Launch, Every Time
PDF
SANDcamp 2014 - A Perfect Launch, Every Time
PDF
DrupalSouth 2015 - Performance: Not an Afterthought
PDF
Drupal Performance Audit and Optimization
PDF
Drupal 7 performance and optimization
PPTX
Drupal 8 Lessons From the Field: Part 3 - The Drupal Backend
PPTX
Drupal performance optimization Best Practices
ODP
The Ultimate Drupal Launch Checklist
PDF
High Performance Drupal
PPTX
Drupal commerce performance profiling and tunning using loadstorm experiments...
PDF
Drupal Performance : DrupalCamp North
PDF
DrupalCon Austin: Planning for Performance
PDF
Beat the devil: towards a Drupal performance benchmark
PDF
High Performance Drupal Fast And Scalable Designs 1st Edition Sheltren
PDF
Performance and optimization CakeFest 2014
PDF
Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...
PPTX
Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...
PDF
Django production
DrupalCon 2014: A Perfect Launch, Every Time
Stanford DrupalCamp 2014 - A Perfect Launch, Every Time
MidCamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every Time
DrupalSouth 2015 - Performance: Not an Afterthought
Drupal Performance Audit and Optimization
Drupal 7 performance and optimization
Drupal 8 Lessons From the Field: Part 3 - The Drupal Backend
Drupal performance optimization Best Practices
The Ultimate Drupal Launch Checklist
High Performance Drupal
Drupal commerce performance profiling and tunning using loadstorm experiments...
Drupal Performance : DrupalCamp North
DrupalCon Austin: Planning for Performance
Beat the devil: towards a Drupal performance benchmark
High Performance Drupal Fast And Scalable Designs 1st Edition Sheltren
Performance and optimization CakeFest 2014
Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...
Foreo Drives Millions of Dollars of Revenue During the Holiday Seasons with T...
Django production
Ad

Recently uploaded (20)

PDF
Computer Networking, Internet, Casting in Network
PDF
Top 8 Trusted Sources to Buy Verified Cash App Accounts.pdf
PDF
Paper The World Game (s) Great Redesign.pdf
DOCX
Memecoinist Update: Best Meme Coins 2025, Trump Meme Coin Predictions, and th...
PPTX
1402_iCSC_-_RESTful_Web_APIs_--_Josef_Hammer.pptx
PDF
Buy Cash App Verified Accounts Instantly – Secure Crypto Deal.pdf
PPTX
Reading as a good Form of Recreation
PDF
Course Overview and Agenda cloud security
PDF
Containerization lab dddddddddddddddmanual.pdf
PDF
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
PDF
The Evolution of Traditional to New Media .pdf
PPTX
Cyber Hygine IN organizations in MSME or
PPTX
The-Importance-of-School-Sanitation.pptx
PPTX
MY PRESENTATION66666666666666666666.pptx
PDF
KEY COB2 UNIT 1: The Business of businessĐH KInh tế TP.HCM
PDF
Slides: PDF The World Game (s) Eco Economic Epochs.pdf
PDF
Lean-Manufacturing-Tools-Techniques-and-How-To-Use-Them.pdf
PPTX
在线订购名古屋艺术大学毕业证, buy NUA diploma学历认证失败怎么办
PDF
BIOCHEM CH2 OVERVIEW OF MICROBIOLOGY.pdf
PDF
simpleintnettestmetiaerl for the simple testint
Computer Networking, Internet, Casting in Network
Top 8 Trusted Sources to Buy Verified Cash App Accounts.pdf
Paper The World Game (s) Great Redesign.pdf
Memecoinist Update: Best Meme Coins 2025, Trump Meme Coin Predictions, and th...
1402_iCSC_-_RESTful_Web_APIs_--_Josef_Hammer.pptx
Buy Cash App Verified Accounts Instantly – Secure Crypto Deal.pdf
Reading as a good Form of Recreation
Course Overview and Agenda cloud security
Containerization lab dddddddddddddddmanual.pdf
SlidesGDGoCxRAIS about Google Dialogflow and NotebookLM.pdf
The Evolution of Traditional to New Media .pdf
Cyber Hygine IN organizations in MSME or
The-Importance-of-School-Sanitation.pptx
MY PRESENTATION66666666666666666666.pptx
KEY COB2 UNIT 1: The Business of businessĐH KInh tế TP.HCM
Slides: PDF The World Game (s) Eco Economic Epochs.pdf
Lean-Manufacturing-Tools-Techniques-and-How-To-Use-Them.pdf
在线订购名古屋艺术大学毕业证, buy NUA diploma学历认证失败怎么办
BIOCHEM CH2 OVERVIEW OF MICROBIOLOGY.pdf
simpleintnettestmetiaerl for the simple testint

DrupalCamp LA 2014 - A Perfect Launch, Every Time

  • 1. A Perfect Launch, Every Time DrupalCamp LA 2014
  • 2. What is a perfect launch? • Schedule - On Time • Cost - On Budget • Scope - On Plan
  • 4. A Perfect Launch Recipe Launch Team • Onboarding Launch Check • Best Practices Load Test • Performance Tuning
  • 6. How we prepare for launch Goal: Get rid of all the “uh-oh” moments Method: Launch Team Stakeholders: • Project Manager - scheduling, best practices • Developer - platform knowledge, integration • Sys Admin - responsibilities, delegation • Business owner - flawless launch
  • 7. Have a system and tools Specify common workflow requirements • Repeatable tasks, delegatable Project management - Wrike, JIRA, Redmine, Trello Orientation logistics • Scheduling - calendar, deadlines • Real-time communication • Phone, Video Conference, GoToMeeting, IRC • Training - documentation, Slides, Videos
  • 8. Mapping the terrain Scoping of responsibilities • Reduce confusion, set stage Channels of communication • Define emergency procedures • Issue tracking as primary inbox Staying in touch • Available, open, and regular • Proactive
  • 10. Launch Check Best Practices
  • 11. What is Site Audit? Drupal 7 static analysis • https://drupal.org/project/site_audit Best practices Actionable report Vendor agnostic • Optional Pantheon specific recommendations
  • 12. What can an audit analyze? • Drupal caching settings • Codebase and file size • Database structure • Modules, including duplicate / missing • Non-standard code structures • Views caching • Watchdog logs
  • 18. Views
  • 20. Test Configuration Simple Drupal 7 site Apache Bench • 10,000 requests to home page (5 concurrent) Warmed cache, cleared watchdog Comparison • Bad config, 1 PHP notice and warning in theme • Good config, no PHP notices or warnings
  • 21. Result? Doubled performance. Performance Comparison Bad Config Good Config Load Time (min) 20:52 10:25 Requests per second 7.98 15.99 Time per request (ms) 626.192 312.780
  • 24. Why load test? Validate response times under peak load Smoke - operations under normal load Stress - behavior past peak load • Spike - short bursts Capacity - plan for growth
  • 25. Who should execute load tests? Developers execute Involve stakeholders
  • 26. Tools for load testing DIY and simple • Apache Bench - http://httpd.apache.org/docs/2.2/ programs/ab.html Complex / dynamic • Apache JMeter - https://jmeter.apache.org/ • Load Impact - https://loadimpact.com/ • Load Storm - http://loadstorm.com/
  • 27. When should I load test? Baseline Tools • Xdebug - http://xdebug.org/ • Webgrind - https://github.com/jokkedk/webgrind • Devel - https://drupal.org/project/devel • Syslog • Watchdog • New Relic - http://newrelic.com/ Incrementally during development
  • 28. Where do I perform load tests? Live environment • Bandwidth Resource limitations SaaS load testing solutions
  • 29. What to expect during & after • Benchmark often • Datapoints • Aggregate • Be reasonable • Numbers should dictate expectations • Back-end • Google Analytics
  • 30. Caching Opcode Cache • APC, Zend Opcache, eAccelerator Backends • Memcached, Redis, MongoDB, file system, APC Front-end caching • Varnish, Squid, reverse-proxy CDNs
  • 37. MySQL slow log # Time: 130320 7:30:26 # User@Host: db_user[db_database] @ localhost [] # Query_time: 4.545309 Lock_time: 0.000069 Rows_sent: 219 Rows_examined: 254 SET timestamp=1363779026; SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
  • 38. Pay attention to watchdog 6652 11/Oct 15:05 warning php Warning: Cannot modify header information - headers already sent by (output started at /srv/ www/code/includes/common.inc:2700) in drupal_goto() (line ! 6643 11/Oct 14:21 notice php Notice: Trying to get property of non-object in cap_ui_preprocess_page() (line 27 of /srv/www/code/ sites/all/themes/cap_ui/template.php). ! 6595 11/Oct 13:00 notice php Notice: Unknown: Can not authenticate to IMAP server: [AUTHENTICATIONFAILED] Invalid credentials (Failure) (errflg=2) in main() (line of ).
  • 41. Interpreting results Hard numbers Business impact
  • 42. A Perfect Launch, Every Time
  • 43. Thank you! Questions? @SuzanneAldrich @GetPantheon irc.freenode.net #pantheon getpantheon.com