Erik Webb (@erikwebb)
Planning for Performance
About Erik
•  Technical Team Lead
•  Focus on Performance,
Infrastructure, and
Scalability
•  Joined Acquia in early
2010
...
https://portland2013.drupal.org/node/2208
Lessons we won't cover here...
CDNs
Minification
Far-future
expiration
Cache
purging
Client-side
rendering
Profiling
Lessons we will cover here...
•  Don't rely on intuition: Learn how to
measure, assess, and respond based on
real data.
• ...
This is about planning!
Why Can't We Just Use X…?
•  Deadlines and delivery don't often come
with a second chance.
•  Tools solve problems you kno...
Use Cases
Setting Goals
Page delivery (TTFB)
 Page render
User type
 Page type
 Median
 Maximum
 Median
 Maximum
Anonymous
<Aggregat...
Make Your Marketing Team
Happy!
Effectiveness
•  Cardinality
•  Granularity
•  Cache time vs. action
•  At what cost?
Now for an example!
Plan with Wireframes
•  Cardinality
•  Granularity
•  Cache time vs. action
•  At what cost?
Per user
No caching
Global
Time: 1 hour
Global
Action: New
"frontpage" content
Per user
No caching
Per user group
Time: 15...
Will some content
ever be private?
Can this be
delivered by an
external system?
Will requirements
for "My Content"
change?
New tech solves tech problems, not project
problems.
Client Monitoring
Monitoring
Application Monitoring
Request Profiling
XHProf
Metrics/Instrumentation
Graphite
Catch It Early
•  Develop with data on par with production
•  Ensure diagnostic tools are available
locally for devs
•  Ho...
You know what they say about
assumptions...
•  NEVER assume a warm cache unless
your deployment makes that always true.
• ...
Questions?


@erikwebb
Planning for Performance: Examples with Drupal
Planning for Performance: Examples with Drupal
Planning for Performance: Examples with Drupal
Planning for Performance: Examples with Drupal
Upcoming SlideShare
Loading in …5
×

Planning for Performance: Examples with Drupal

426 views
373 views

Published on

Presented at the Great Wide Open 2014 conference in Atlanta, GA

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
426
On SlideShare
0
From Embeds
0
Number of Embeds
42
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Planning for Performance: Examples with Drupal

  1. 1. Erik Webb (@erikwebb) Planning for Performance
  2. 2. About Erik •  Technical Team Lead •  Focus on Performance, Infrastructure, and Scalability •  Joined Acquia in early 2010 •  7+ years with Drupal •  12+ years with LAMP
  3. 3. https://portland2013.drupal.org/node/2208
  4. 4. Lessons we won't cover here... CDNs Minification Far-future expiration Cache purging Client-side rendering Profiling
  5. 5. Lessons we will cover here... •  Don't rely on intuition: Learn how to measure, assess, and respond based on real data. •  Tools only solve problems you know about. •  By the time you're "tuning," it may be too late.
  6. 6. This is about planning!
  7. 7. Why Can't We Just Use X…? •  Deadlines and delivery don't often come with a second chance. •  Tools solve problems you know about. •  By the time you're "tuning," it may be too late.
  8. 8. Use Cases
  9. 9. Setting Goals Page delivery (TTFB) Page render User type Page type Median Maximum Median Maximum Anonymous <Aggregate> Homepage User profile Article page Static page Authenticated <Aggregate> Homepage User login My profile Post content Logout
  10. 10. Make Your Marketing Team Happy!
  11. 11. Effectiveness •  Cardinality •  Granularity •  Cache time vs. action •  At what cost?
  12. 12. Now for an example!
  13. 13. Plan with Wireframes •  Cardinality •  Granularity •  Cache time vs. action •  At what cost?
  14. 14. Per user No caching Global Time: 1 hour Global Action: New "frontpage" content Per user No caching Per user group Time: 15 minutes
  15. 15. Will some content ever be private? Can this be delivered by an external system? Will requirements for "My Content" change?
  16. 16. New tech solves tech problems, not project problems.
  17. 17. Client Monitoring Monitoring Application Monitoring Request Profiling XHProf Metrics/Instrumentation Graphite
  18. 18. Catch It Early •  Develop with data on par with production •  Ensure diagnostic tools are available locally for devs •  Hold devs accountable post-deploy •  Don't chase trends
  19. 19. You know what they say about assumptions... •  NEVER assume a warm cache unless your deployment makes that always true. •  NEVER assume your caching layer is persistent (even when it is). •  NEVER assume performance will be solid because of "good architecture." •  NEVER assume all features can be implemented in a performant way.*
  20. 20. Questions? 
 @erikwebb

×