Drupal CDN Integration

Printer-friendly versionPrinter-friendly version

session details: Drupal CDN Integration

note: speaker is currently developing a Drupal module and synchronization daemon as his masters thesis.

  • page rendering performance is included in page loading performance
  • why does it matter? because users care! Google found another 500ms caused 20% fewer searches!
  • important to Drupal because it powers big, popular sites and is used by many sites around the world
  • speeding up Drupal would speed up the Internet itself
  • 80%+ of load time is static components -- don't require cookies, etc.
  • A CDN is a collection of servers in multiple locations serving static content
    • geographical spread
    • can be populated by pull: virtually no setup, but also no flexibility, redundant traffic
    • can be populated by push: more setup, but more flexible, no redundant traffic, lock-in to a particular CDN
  • The CDN Effect: YSlow penalizes you two letter grades if it thinks you don't have a CDN, even if there is no performance problem
  • Episodes is a Javascript tool to measure page loading sequence -- plug-in for Firebug, Drupal module available next week!
  • how to integrate Drupal with a CDN?
    • change all calls to base_path() function
    • Simple CDN module offers some limited improvement
    • CDN integration module -- not scalable yet!
    • CDN integration will be improved in coming months with push capabilities
    • daemon must be extensible, robust & scalable
  • Future goals
    • transparency (transfer protocol irrelevant)
    • mixing CDNs with static file servers
    • processing before sync: image optimization, transcoding media files
    • detect new files instantly!
    • daemon could also be used as a massive back-up tool, transcoding server, tool for creating one's own CDN from shared servers