Drupal Frontend Performance & Scalability
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Drupal Frontend Performance & Scalability DrupalCamp Ohio 2012 - - PowerPoint PPT Presentation
Drupal Frontend Performance & Scalability DrupalCamp Ohio 2012 Christefano Reyes christo@larks.la, @christefano @christefano / @LarksLA / @DowntownDrupal / @Droplabs Drupal Frontend Performance & Scalability Who's Your Presenter?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Christefano Reyes
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Exaltation of Larks
Christefano Reyes
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Exaltation of Larks
Christefano Reyes
Downtown Los Angeles Drupal
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Exaltation of Larks
Droplabs
Christefano Reyes
Downtown Los Angeles Drupal
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Faster Websites → Faster Users → More Usage
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Faster Websites → Faster Users → More Usage
○ Speed (Especially Slowness) Affects Brand Identity
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Faster Websites → Faster Users → More Usage
○ Speed (Especially Slowness) Affects Brand Identity ○ Delays Move Websites Out Of the User's Control
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Faster Websites → Faster Users → More Usage
○ Speed (Especially Slowness) Affects Brand Identity ○ Delays Move Websites Out Of the User's Control ○ Design for Human Need, Not Various Technologies
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Backend Performance: Type of Hosting
Types of Hardware
Multiple Servers and DBs DB Storage Engines Networked Storage
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Backend Performance: Type of Hosting
Types of Hardware
Multiple Servers and DBs DB Storage Engines Networked Storage Frontend Performance:
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Backend Performance: Type of Hosting
Types of Hardware
Multiple Servers and DBs DB Storage Engines Networked Storage Frontend Performance:
(In other words, most frontend performance is experienced in the browser!)
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
What Does a Web Page Contain?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
What Does a Web Page Contain?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
In Which Order Do the Contents of a Web Page Load?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
In Which Order Do the Contents of a Web Page Load?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
In Which Order Do the Contents of a Web Page Load?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
In Which Order Do the Contents of a Web Page Load?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
In Which Order Do the Contents of a Web Page Load?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
In Which Order Do the Contents of a Web Page Load?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
So, What's Doing What?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
So, What's Doing What?
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
○ http://ex.tl/ZNi
○ http://ex.tl/Zxt
○ http://ex.tl/ZNU
○ http://ex.tl/ZN3
○ http://ex.tl/ZNZ
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
○ Many Images in One File ○ Shift Into View With background-position ○ Be Careful When Using Both Vertical and Horizontal Sprites
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
○ Akamai ○ CDNLayer ○ Amazon CloudFront ○ Rackspace Cloud Files ○ SimpleCDN
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
○ Goes for Both Browsers and Reverse Proxies ○ Browsers and Proxies Check When Content is Fresh
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
○ Always Compression (and Aggregate) Your CSS & JS! ○ Always Use Advanced Aggregator (AKA advagg) in Drupal 6!
○ Makes Files Smaller ○ Combines Many Files Into One ○ Extends Browser Cache Times
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
○ Speedy Module and UglifyJS (Drupal 7) ○ Advanced Aggregator Module (Drupal 6)
○ HTML is Fragile and Constantly Changing ○ Minify Just the Content (Not the Page) ○ Look Out for Conditional Tags ○ Other Resources: Tidy, Twig's spaceless tag, etc.
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Requests Per Hostname In Parallel
○ Chrome, Firefox, Opera & Safari: 6
○ IE7: 2 ○ IE8: 6 ○ IE9: 8
Solution ○ Reduce Your DNS Lookups! ○ HTTP 2.0 is coming…
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Domains
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
The Past
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
The Past
The Present
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
The Past
The Present
The Future
○ Google SPDY ○ Microsoft HTTP Speed+Mobility
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Domains
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
Domains
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
○ http://ex.tl/ZNi
○ http://ex.tl/ZNw
○ http://ex.tl/ZNU
○ http://ex.tl/ZN3
○ http://ex.tl/ZNh
○ http://ex.tl/ZNZ
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
○ http://ex.tl/ZN5
○ http://ex.tl/ZNq
○ http://ex.tl/ZNU
○ http://ex.tl/ZNT
○ http://ex.tl/ZNS
○ http://ex.tl/ZNh
○ http://ex.tl/ZNy
○ http://ex.tl/ZNC
○ http://ex.tl/ZNk
○ http://ex.tl/ZNJ
○ http://ex.tl/ZGv
○ http://ex.tl/ZN4
@christefano / @LarksLA / @DowntownDrupal / @Droplabs
○ http://ex.tl/ZNZ
○ http://ex.tl/ZN9
○ http://ex.tl/ZNo
@christefano / @LarksLA / @DowntownDrupal / @Droplabs