MidCamp 2014 - A Perfect Launch, Every Time

388 views

Published on

Launches are tough on a new developer. Everyone remembers the lump in their throats around launch time; the rush to finish content, make final theme tweaks, adjust for sudden browser weirdness. As momentum picks up, the odd change request always appears, databases are slingshot hither and yon, while everyone scrambles to resolve merge conflicts like a Tokyo train at rush hour.

We emerge scarred but smarter, intent on making the next launch less painful. But with different teams launching different sites, it can be hard to establish an iterative process. Especially as new work accumulates in the backlog, we reap what we sow in technical debt from rushed launches, quick & dirty choices made under the gun, and unimplemented ideas from retrospectives.

Pantheon, however, has the same Customer Success team launching several enterprise sites per week, while assisting hundreds of self serve customers when they need a hand. Because we need to work effectively, we have developed the tools and process to ensure:

* Great Site Performance - On Day One
* Less problems over the long run
* Clear Expectations from Informed Stakeholders

The session will cover other key areas:

1. Preparing For Launch for the PM, Stakeholder, Developer & Sys Admin
2. Auditing the Site for landmines, carniverous acid pool islands, and deadweight
3. Load Testing to obliterate surprises with actionable results

This session is Platform Agnostic; whether you use PAAS, shared hosting, or wield your own hardware, PMs, developers, and clients will leave with new tools in their belt to launch with less agita. We will share some of our challenges and how we overcame them, and hopefully hear from you about how you overcame yours!

Published in: Internet
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
388
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

MidCamp 2014 - A Perfect Launch, Every Time

  1. 1. A Perfect Launch, Every Time MidCamp 2014
  2. 2. What is a perfect launch? ● Schedule - On Time ● Cost - On Budget ● Scope - On Plan
  3. 3. A Perfect Launch Recipe ● Launch Team - Onboarding ● Launch Check - Best Practices ● Load Test - Performance Tuning
  4. 4. Launch Team Onboarding
  5. 5. How we prepare for launch ● Goal: Get rid of all the “uh-oh” moments ● Method: Set clients up for success ● Stakeholders: ○ Project Manager - scheduling, best practices ○ Developer - platform knowledge, integration ○ Sys Admin - responsibilities, delegation ○ Business owner - flawless launch
  6. 6. Have a system and tools ● Specify common workflow requirements ○ Repeatable tasks, delegatable ● Project management - Wrike, JIRA, etc. ● Orientation logistics ○ Scheduling - calendar, deadlines ○ Real-time communication ■ Phone, Video Conference, GoToMeeting, IRC ○ Training - documentation, Slides, Videos
  7. 7. 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
  8. 8. Launch Check Best Practices
  9. 9. What is Site Audit? ● Drupal 7 static analysis ○ https://drupal.org/project/site_audit ● Best practices ● Actionable report ● Vendor agnostic ○ Optional Pantheon specific recommendations
  10. 10. 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
  11. 11. Drupal caching settings
  12. 12. Drupal cron
  13. 13. Drupal’s database
  14. 14. Extensions (modules & themes)
  15. 15. Views
  16. 16. Watchdog
  17. 17. ● 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 Test Configuration
  18. 18. Result? Doubled performance. Bad config, errors ● 20 min, 52 sec ● Requests per second: 7.98 ● Time per request: 626.192 ms Good config, no errors ● 10 min, 25 sec ● Requests per second: 15.99 ● Time per request: 312.780 ms
  19. 19. Good configuration matters.
  20. 20. Load Testing Performance Tuning
  21. 21. 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
  22. 22. Who should execute load tests? ● Developers execute ● Involve stakeholders
  23. 23. Tools for load testing ● DIY and simple ○ Apache Bench ● Complex / dynamic ○ Apache JMeter ○ Load Impact ○ Load Storm
  24. 24. When should I load test? ● Before you write your first line of code! ○ Xdebug, Webgrind, Devel, Syslog, Watchdog, New Relic ● Incrementally during development ● Prior to launch
  25. 25. Where do I perform load tests? ● Live environment ○ Bandwidth ● Resource limitations ● SaaS
  26. 26. What to expect during & after ● Benchmark often (datapoints vs aggregate) ● Be reasonable ● Numbers should dictate expectations (back- end not just Google analytics)
  27. 27. Caching ● Opcode Cache ○ APC, Zend Opcache, eAccelerator ● Backends ○ Memcached, Redis, MongoDB, file system, APC ● Front-end caching ○ Varnish, Squid, reverse-proxy CDNs
  28. 28. Back-end caching Redis: Engage!
  29. 29. Front-end caching Anonymous page caching: Disabled!
  30. 30. Testing Varnish with cURL
  31. 31. PHP Slow Log
  32. 32. Nginx error log
  33. 33. MySQL slow log
  34. 34. Pay attention to watchdog
  35. 35. Good load test
  36. 36. Bad load test
  37. 37. Interpreting results ● Hard numbers ● Business impact
  38. 38. Own the results.
  39. 39. Thank you! Questions?

×