Stanford DrupalCamp 2014 - A Perfect Launch, Every Time
-
Upload
suzanne-aldrich -
Category
Internet
-
view
506 -
download
0
description
Transcript of Stanford DrupalCamp 2014 - A Perfect Launch, Every Time
![Page 1: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/1.jpg)
A Perfect Launch, Every Time
Stanford DrupalCamp 2014
![Page 2: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/2.jpg)
What is a perfect launch?• Schedule - On Time • Cost - On Budget • Scope - On Plan
![Page 3: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/3.jpg)
Why should you care?
![Page 4: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/4.jpg)
A Perfect Launch RecipeLaunch Team
• Onboarding Launch Check
• Best Practices Load Test
• Performance Tuning
![Page 5: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/5.jpg)
Launch TeamOnboarding
![Page 6: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/6.jpg)
How we prepare for launchGoal: 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
![Page 7: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/7.jpg)
Have a system and toolsSpecify common workflow requirements
• Repeatable tasks, delegatable Project management - Wrike, JIRA, Redmine Orientation logistics
• Scheduling - calendar, deadlines • Real-time communication
• Phone, Video Conference, GoToMeeting, IRC • Training - documentation, Slides, Videos
![Page 8: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/8.jpg)
Mapping the terrainScoping 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
![Page 9: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/9.jpg)
![Page 10: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/10.jpg)
Launch CheckBest Practices
![Page 11: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/11.jpg)
What is Site Audit?Drupal 7 static analysis
• https://drupal.org/project/site_audit Best practices Actionable report Vendor agnostic
• Optional Pantheon specific recommendations
![Page 12: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/12.jpg)
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
![Page 13: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/13.jpg)
![Page 14: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/14.jpg)
Drupal caching settings
![Page 15: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/15.jpg)
Drupal cron
![Page 16: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/16.jpg)
Drupal’s database
![Page 17: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/17.jpg)
Extensions (modules & themes)
![Page 18: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/18.jpg)
Views
![Page 19: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/19.jpg)
Watchdog
![Page 20: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/20.jpg)
Test ConfigurationSimple 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
![Page 21: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/21.jpg)
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
![Page 22: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/22.jpg)
Good configuration matters.
![Page 23: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/23.jpg)
Load TestingPerformance Tuning
![Page 24: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/24.jpg)
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
![Page 25: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/25.jpg)
Who should execute load tests?Developers execute Involve stakeholders
![Page 26: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/26.jpg)
Tools for load testingDIY 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/
![Page 27: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/27.jpg)
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
![Page 28: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/28.jpg)
Where do I perform load tests?Live environment
• Bandwidth Resource limitations SaaS load testing solutions
![Page 29: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/29.jpg)
What to expect during & after• Benchmark often
• Datapoints • Aggregate
• Be reasonable • Numbers should dictate expectations • Back-end
• Google Analytics
![Page 30: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/30.jpg)
CachingOpcode Cache
• APC, Zend Opcache, eAccelerator Backends
• Memcached, Redis, MongoDB, file system, APC Front-end caching
• Varnish, Squid, reverse-proxy CDNs
![Page 31: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/31.jpg)
Redis: Engage!
![Page 32: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/32.jpg)
Anonymous page caching: Disabled!
![Page 33: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/33.jpg)
Testing Varnish with cURL
![Page 34: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/34.jpg)
![Page 35: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/35.jpg)
PHP Slow Log
![Page 36: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/36.jpg)
Nginx error log
![Page 37: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/37.jpg)
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';
![Page 38: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/38.jpg)
Pay attention to watchdog6652 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 ).
![Page 39: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/39.jpg)
Good load test
![Page 40: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/40.jpg)
Bad load test
![Page 41: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/41.jpg)
Interpreting resultsHard numbers Business impact
![Page 42: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/42.jpg)
A Perfect Launch, Every Time
![Page 43: Stanford DrupalCamp 2014 - A Perfect Launch, Every Time](https://reader036.fdocuments.net/reader036/viewer/2022081403/554f9322b4c905435d8b51ad/html5/thumbnails/43.jpg)
Thank you! Questions?@getpantheon
irc.freenode.net #pantheon getpantheon.com