SlideShare a Scribd company logo
Drupal CDN integration: easier, more flexible and faster!

     Wim Leers ~ http://wimleers.com/

     Drupal.org, IRC, Twitter, LinkedIn: wimleers




Thursday, March 5, 2009
Overview




Thursday, March 5, 2009
Overview
     • Page loading performance

         • Why does it matter?

         • What is it?

         • Why is it important to Drupal?




Thursday, March 5, 2009
Overview
     • Page loading performance

         • Why does it matter?

         • What is it?

         • Why is it important to Drupal?

     • Key Properties of a CDN




Thursday, March 5, 2009
Overview
     • Page loading performance

         • Why does it matter?

         • What is it?

         • Why is it important to Drupal?

     • Key Properties of a CDN

     • The CDN Effect

         • YSlow

         • Episodes




Thursday, March 5, 2009
Overview
     • Page loading performance

         • Why does it matter?

         • What is it?

         • Why is it important to Drupal?

     • Key Properties of a CDN

     • The CDN Effect

         • YSlow

         • Episodes

     • Drupal + CDN (where we are)

         • Basic Drupal core patch

         • Simple CDN module

         • CDN integration module

Thursday, March 5, 2009
Overview
     • Page loading performance             • Bachelor thesis

         • Why does it matter?                 • What exactly?

         • What is it?                         • Daemon requirements

         • Why is it important to Drupal?      • Collaborating companies

     • Key Properties of a CDN

     • The CDN Effect

         • YSlow

         • Episodes

     • Drupal + CDN (where we are)

         • Basic Drupal core patch

         • Simple CDN module

         • CDN integration module

Thursday, March 5, 2009
Overview
     • Page loading performance             • Bachelor thesis

         • Why does it matter?                 • What exactly?

         • What is it?                         • Daemon requirements

         • Why is it important to Drupal?      • Collaborating companies

     • Key Properties of a CDN              • The Future (where we will be in 3-4 months)

                                               • Goals
     • The CDN Effect

                                               • Sample scenario 1
         • YSlow

                                               • Sample scenario 2
         • Episodes

                                               • Sample scenario 3
     • Drupal + CDN (where we are)

                                               • Other use cases
         • Basic Drupal core patch

                                               • What else?
         • Simple CDN module

         • CDN integration module

Thursday, March 5, 2009
Overview
     • Page loading performance             • Bachelor thesis

         • Why does it matter?                 • What exactly?

         • What is it?                         • Daemon requirements

         • Why is it important to Drupal?      • Collaborating companies

     • Key Properties of a CDN              • The Future (where we will be in 3-4 months)

                                               • Goals
     • The CDN Effect

                                               • Sample scenario 1
         • YSlow

                                               • Sample scenario 2
         • Episodes

                                               • Sample scenario 3
     • Drupal + CDN (where we are)

                                               • Other use cases
         • Basic Drupal core patch

                                               • What else?
         • Simple CDN module

                                            • Questions?
         • CDN integration module

Thursday, March 5, 2009
Terminology: page loading performance




Thursday, March 5, 2009
Terminology: page loading performance


        page rendering performance
        the time the server needs to render
        a web page




Thursday, March 5, 2009
Terminology: page loading performance


        page rendering performance
                                              back-   front-
        the time the server needs to render
                                               end     end
        a web page




Thursday, March 5, 2009
Terminology: page loading performance


        page rendering performance
                                               back-   front-
        the time the server needs to render
                                                end     end
        a web page

        is included in

        page loading performance
        the time it takes to load a web page
        and all its components




Thursday, March 5, 2009
Terminology: page loading performance


        page rendering performance
                                               back-   front-
        the time the server needs to render
                                                end     end
        a web page

        is included in

        page loading performance
                                               back-   front-
        the time it takes to load a web page
                                                end     end
        and all its components




Thursday, March 5, 2009
Why does it matter?




     source: http://www.slideshare.net/stubbornella/designing-fast-websites-presentation

Thursday, March 5, 2009
Why does it matter?

     • Users care about performance!

          • Amazon: 100 ms of extra load time caused a 1% drop in sales

          • Google: 500 ms of extra load time caused 20% fewer searches




     source: http://www.slideshare.net/stubbornella/designing-fast-websites-presentation

Thursday, March 5, 2009
Why does it matter?

     • Users care about performance!

          • Amazon: 100 ms of extra load time caused a 1% drop in sales

          • Google: 500 ms of extra load time caused 20% fewer searches

     • Fast web sites are rewarded, slow web sites are punished




     source: http://www.slideshare.net/stubbornella/designing-fast-websites-presentation

Thursday, March 5, 2009
Why is it important to Drupal?




Thursday, March 5, 2009
Why is it important to Drupal?

     • Drupal’s numbers


         • Big, high-traffic web sites


         • Popular




Thursday, March 5, 2009
Why is it important to Drupal?

     • Drupal’s numbers


         • Big, high-traffic web sites


         • Popular


     • Drupal is international (i18n/L10n)




Thursday, March 5, 2009
Why is it important to Drupal?

     • Drupal’s numbers


         • Big, high-traffic web sites


         • Popular


     • Drupal is international (i18n/L10n)


     • The Drupal Experience: happier users & developers




Thursday, March 5, 2009
What is it?

                                               HTML   Components
     • End user response time


         • 10-20%: HTML
           (mix of back-end + front-end)
                                               90%
         • 80-90%: components
           (front-end only)


                                                         10%




       source: http://stevesouders.com/hpws/

Thursday, March 5, 2009
What is it?

                                               HTML   Components
     • End user response time


         • 10-20%: HTML
           (mix of back-end + front-end)
                                               90%
         • 80-90%: components
           (front-end only)


     • More effective to focus on front-end
                                                         10%
       performance!




       source: http://stevesouders.com/hpws/

Thursday, March 5, 2009
What is it?

                                               HTML   Components
     • End user response time


         • 10-20%: HTML
           (mix of back-end + front-end)
                                               90%
         • 80-90%: components
           (front-end only)


     • More effective to focus on front-end
                                                         10%
       performance!


         • CDNs have major impact



       source: http://stevesouders.com/hpws/

Thursday, March 5, 2009
Terminology: CDN




        A content delivery network (CDN) is a collection of web servers
        distributed across multiple locations to deliver content more
        efficiently to users. The server selected for delivering content to a
        specific user is typically based on a measure of network proximity.




       source: http://developer.yahoo.com/performance/rules.html#cdn

Thursday, March 5, 2009
Key Properties of a CDN




Thursday, March 5, 2009
Key Properties of a CDN

     • Geographical spread (PoPs)




Thursday, March 5, 2009
Key Properties of a CDN

     • Geographical spread (PoPs)


     • Populating: Pull versus Push

                                                      Pull
                                                                       F
                                      transfer
                                                  automatically       We
                                      protocol



                                       +         virtually no setup
                                                                      no



                                       –           no flexibility
                                                 redundant traffic


Thursday, March 5, 2009
Key Properties of a CDN

     • Geographical spread (PoPs)


     • Populating: Pull versus Push

                                           Pull                 Push
                                                            FTP, SFTP, rsync,
                           transfer
                                       automatically       WebDAV, Amazon S3
                           protocol
                                                                   …


                             +                                  flexibility
                                      virtually no setup
                                                           no redundant traffic



                             –          no flexibility
                                                                 setup
                                      redundant traffic


Thursday, March 5, 2009
Key Properties of a CDN

     • Geographical spread (PoPs)


     • Populating: Pull versus Push

                                           Pull                 Push
     • Lock-in

                                                            FTP, SFTP, rsync,
                           transfer
                                       automatically       WebDAV, Amazon S3
                           protocol
                                                                   …


                             +                                  flexibility
                                      virtually no setup
                                                           no redundant traffic



                             –          no flexibility
                                                                 setup
                                      redundant traffic


Thursday, March 5, 2009
The CDN Effect: YSlow




Thursday, March 5, 2009
The CDN Effect: YSlow




Thursday, March 5, 2009
The CDN Effect: YSlow




Thursday, March 5, 2009
The CDN Effect: YSlow




     • YSlow does not reflect real-world page loading performance!


Thursday, March 5, 2009
The CDN Effect: Episodes




Thursday, March 5, 2009
The CDN Effect: Episodes

     • JS code that measures episodes of
       a web page’s loading sequence




Thursday, March 5, 2009
The CDN Effect: Episodes

     • JS code that measures episodes of
       a web page’s loading sequence




Thursday, March 5, 2009
The CDN Effect: Episodes

     • JS code that measures episodes of
       a web page’s loading sequence




Thursday, March 5, 2009
The CDN Effect: Episodes

     • JS code that measures episodes of
       a web page’s loading sequence




Thursday, March 5, 2009
The CDN Effect: Episodes

     • JS code that measures episodes of
       a web page’s loading sequence




Thursday, March 5, 2009
The CDN Effect: Episodes

     • JS code that measures episodes of
       a web page’s loading sequence


     • Reflects real-world page loading
       performance!




Thursday, March 5, 2009
The CDN Effect: Episodes

     • JS code that measures episodes of   • Goal: industry standard!
       a web page’s loading sequence


     • Reflects real-world page loading
       performance!




Thursday, March 5, 2009
The CDN Effect: Episodes

     • JS code that measures episodes of   • Goal: industry standard!
       a web page’s loading sequence


     • Reflects real-world page loading     • Drupal module: available next week!
       performance!




Thursday, March 5, 2009
Drupal + CDN: Basic Drupal core patch

     http://tedserbinski.com/tags/drupal/getting-drupal-play-nice-with-your-cdn
     http://www.lullabot.com/articles/using-lighttpd-static-file-server




Thursday, March 5, 2009
Drupal + CDN: Basic Drupal core patch

     http://tedserbinski.com/tags/drupal/getting-drupal-play-nice-with-your-cdn
     http://www.lullabot.com/articles/using-lighttpd-static-file-server


     • Change all code that calls base_path():

         • common.inc

         • file.inc

         • theme.inc

         • page.tpl.php




Thursday, March 5, 2009
Drupal + CDN: Basic Drupal core patch

     http://tedserbinski.com/tags/drupal/getting-drupal-play-nice-with-your-cdn
     http://www.lullabot.com/articles/using-lighttpd-static-file-server


     • Change all code that calls base_path():

         • common.inc

         • file.inc

         • theme.inc

         • page.tpl.php


     • Cons


         • Very limited


Thursday, March 5, 2009
Drupal + CDN: Simple CDN module

     http://drupal.org/project/simplecdn




Thursday, March 5, 2009
Drupal + CDN: Simple CDN module

     http://drupal.org/project/simplecdn

     • simplecdn_rewrite_url($url, 'modulename')




Thursday, March 5, 2009
Drupal + CDN: Simple CDN module

     http://drupal.org/project/simplecdn

     • simplecdn_rewrite_url($url, 'modulename')


     • Cons


         • Very limited


         • Not Drupal core & more dependencies


         • Immature (released Feb 21, 2009), coding standards, no proper releases




Thursday, March 5, 2009
Drupal + CDN: CDN integration module

     http://drupal.org/project/cdn (by me)




Thursday, March 5, 2009
Drupal + CDN: CDN integration module

     http://drupal.org/project/cdn (by me)

     • Also includes a Drupal core patch




Thursday, March 5, 2009
Drupal + CDN: CDN integration module

     http://drupal.org/project/cdn (by me)

     • Also includes a Drupal core patch


     • Automatic synchronization via FTP




Thursday, March 5, 2009
Drupal + CDN: CDN integration module

     http://drupal.org/project/cdn (by me)

     • Also includes a Drupal core patch


     • Automatic synchronization via FTP


     • Cons


         • Still too limited (rsync, Amazon S3, image optimization …)


         • Drupal 5 only


         • Proof-of-concept: not scalable (cron and … serialized arrays!)


Thursday, March 5, 2009
Bachelor thesis


    “Improving Drupal’s page loading performance”


     • Promotor: Prof. dr. Wim Lamotte
     • Co-promotor: dr. Peter Quax
     • Mentors: Stijn Agten & Maarten Wijnants




Thursday, March 5, 2009
Bachelor thesis: What exactly?

     • Episodes.module


         • Basic reports (e.g. average page load time per browser)


     • CDN integration


         • Drupal core patch: unify file URL generation/alteration (sufficient for Pull CDNs)


         • Daemon for synchronization (Push CDNs)


         • Drupal module: administration & basic reports


     • JS at the bottom


Thursday, March 5, 2009
Bachelor thesis: Daemon requirements

     • Python


     • Full unit testing coverage


     • Very extensible


         • Plug-ins for transfer protocols


         • Plug-ins for processors


     • Very robust & scalable


         • Multi-threaded, must be able to handle any amount of files


Thursday, March 5, 2009
Bachelor thesis: Collaborating companies

                                          The following CDN companies
        The following companies will be
                                          will be providing their services
        evaluating the improvements to
                                          for free for testing purposes.
        Drupal or the daemon.




                                                A big thanks
                                               to all of them!
Thursday, March 5, 2009
The Future: Goals




Thursday, March 5, 2009
The Future: Goals

     • Transparency (transfer protocol irrelevant)




Thursday, March 5, 2009
The Future: Goals

     • Transparency (transfer protocol irrelevant)


     • Mixing CDNs and static file servers




Thursday, March 5, 2009
The Future: Goals

     • Transparency (transfer protocol irrelevant)


     • Mixing CDNs and static file servers


     • Processing before sync: image optimization, transcoding …




Thursday, March 5, 2009
The Future: Goals

     • Transparency (transfer protocol irrelevant)


     • Mixing CDNs and static file servers


     • Processing before sync: image optimization, transcoding …


     • Detect new files instantly (inotify/FSEvents/WMI)




Thursday, March 5, 2009
The Future: Goals

     • Transparency (transfer protocol irrelevant)


     • Mixing CDNs and static file servers


     • Processing before sync: image optimization, transcoding …


     • Detect new files instantly (inotify/FSEvents/WMI)


     … thanks to the daemon I’ll write.




Thursday, March 5, 2009
The Future: Sample scenario 1

     Company wants to switch from CDN provider A to provider B. A only supports
     FTP, B only supports SFTP.




Thursday, March 5, 2009
The Future: Sample scenario 1

     Company wants to switch from CDN provider A to provider B. A only supports
     FTP, B only supports SFTP.


     • Setup:


         • CDN A → CDN B


         • Daemon




Thursday, March 5, 2009
The Future: Sample scenario 1

     Company wants to switch from CDN provider A to provider B. A only supports
     FTP, B only supports SFTP.


     • Setup:


         • CDN A → CDN B


         • Daemon


     • Alternative: write a lot of code




Thursday, March 5, 2009
The Future: Sample scenario 1

     Company wants to switch from CDN provider A to provider B. A only supports
     FTP, B only supports SFTP.


     • Setup:


         • CDN A → CDN B


         • Daemon


     • Alternative: write a lot of code


     • Result: no switching cost → no lock-in!




Thursday, March 5, 2009
The Future: Sample scenario 2

     U.S. company expands to South-Korea




Thursday, March 5, 2009
The Future: Sample scenario 2

     U.S. company expands to South-Korea


     • Setup:


         • North-American CDN


         • Static file servers in South-Korea


         • Daemon + GeoIP API/Domain GeoLocalization module




Thursday, March 5, 2009
The Future: Sample scenario 2

     U.S. company expands to South-Korea


     • Setup:


         • North-American CDN


         • Static file servers in South-Korea


         • Daemon + GeoIP API/Domain GeoLocalization module


     • Alternative: global CDN




Thursday, March 5, 2009
The Future: Sample scenario 2

     U.S. company expands to South-Korea


     • Setup:


         • North-American CDN


         • Static file servers in South-Korea


         • Daemon + GeoIP API/Domain GeoLocalization module


     • Alternative: global CDN


     • Result: faster web site, same setup cost, lower maintenance cost


Thursday, March 5, 2009
The Future: Sample scenario 3

     U.S. company hosts an event in Washington D.C.




Thursday, March 5, 2009
The Future: Sample scenario 3

     U.S. company hosts an event in Washington D.C.


     • Setup:


         • North-American CDN


         • Static file servers in Washington D.C.


         • Daemon + GeoIP API/Domain GeoLocalization module




Thursday, March 5, 2009
The Future: Sample scenario 3

     U.S. company hosts an event in Washington D.C.


     • Setup:


         • North-American CDN


         • Static file servers in Washington D.C.


         • Daemon + GeoIP API/Domain GeoLocalization module


     • Alternative: a slower web site




Thursday, March 5, 2009
The Future: Sample scenario 3

     U.S. company hosts an event in Washington D.C.


     • Setup:


         • North-American CDN


         • Static file servers in Washington D.C.


         • Daemon + GeoIP API/Domain GeoLocalization module


     • Alternative: a slower web site


     • Result: faster web site, same setup cost, slightly higher maintenance cost


Thursday, March 5, 2009
The Future: Other use cases

     • Massive back-up tool


     • Transcoding server


     • Key component in creating your own CDN


     • Key component for a Dropbox-like tool




Thursday, March 5, 2009
The Future: What else?

                          What else do you need?

                             More use cases?

                               More ideas?

                                   …




                               Talk to me!


Thursday, March 5, 2009
Questions?



        Relevant links:

         • This presentation: http://wimleers.com/talk/drupalcon-dc-2009


         • Bachelor thesis: http://wimleers.com/tags/bachelor-thesis


         • Questions & feedback: http://wimleers.com/contact


         • Modules: http://drupal.org/project/cdn & http://drupal.org/project/episodes




Thursday, March 5, 2009

More Related Content

What's hot

Magento Performance Bootcamp
Magento Performance BootcampMagento Performance Bootcamp
Magento Performance Bootcamp
Jira ICT
 
Joomla! Performance on Steroids
Joomla! Performance on SteroidsJoomla! Performance on Steroids
Joomla! Performance on Steroids
SiteGround.com
 
Magento Optimization Whitepaper
Magento Optimization WhitepaperMagento Optimization Whitepaper
Magento Optimization Whitepaper
Vladyslav Solodovnyk
 
Web Performance: 3 Stages to Success
Web Performance: 3 Stages to SuccessWeb Performance: 3 Stages to Success
Web Performance: 3 Stages to Success
Austin Gil
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
Tammy Everts
 
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)
SOASTA
 
After YSlow "A"
After YSlow "A"After YSlow "A"
After YSlow "A"
Nicole Sullivan
 
Hands on performance testing and analysis with web pagetest
Hands on performance testing and analysis with web pagetestHands on performance testing and analysis with web pagetest
Hands on performance testing and analysis with web pagetest
Patrick Meenan
 
A Picture Costs A Thousand Words
A Picture Costs A Thousand WordsA Picture Costs A Thousand Words
A Picture Costs A Thousand Words
Guy Podjarny
 
Magento Performance Optimization 101
Magento Performance Optimization 101Magento Performance Optimization 101
Magento Performance Optimization 101
Angus Li
 
Drupal 6 Performance Tips
Drupal 6 Performance TipsDrupal 6 Performance Tips
Drupal 6 Performance Tips
Trevor James
 
Phpworld.2015 scaling magento
Phpworld.2015 scaling magentoPhpworld.2015 scaling magento
Phpworld.2015 scaling magento
Mathew Beane
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Teamstudio
 

What's hot (13)

Magento Performance Bootcamp
Magento Performance BootcampMagento Performance Bootcamp
Magento Performance Bootcamp
 
Joomla! Performance on Steroids
Joomla! Performance on SteroidsJoomla! Performance on Steroids
Joomla! Performance on Steroids
 
Magento Optimization Whitepaper
Magento Optimization WhitepaperMagento Optimization Whitepaper
Magento Optimization Whitepaper
 
Web Performance: 3 Stages to Success
Web Performance: 3 Stages to SuccessWeb Performance: 3 Stages to Success
Web Performance: 3 Stages to Success
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
 
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)
 
After YSlow "A"
After YSlow "A"After YSlow "A"
After YSlow "A"
 
Hands on performance testing and analysis with web pagetest
Hands on performance testing and analysis with web pagetestHands on performance testing and analysis with web pagetest
Hands on performance testing and analysis with web pagetest
 
A Picture Costs A Thousand Words
A Picture Costs A Thousand WordsA Picture Costs A Thousand Words
A Picture Costs A Thousand Words
 
Magento Performance Optimization 101
Magento Performance Optimization 101Magento Performance Optimization 101
Magento Performance Optimization 101
 
Drupal 6 Performance Tips
Drupal 6 Performance TipsDrupal 6 Performance Tips
Drupal 6 Performance Tips
 
Phpworld.2015 scaling magento
Phpworld.2015 scaling magentoPhpworld.2015 scaling magento
Phpworld.2015 scaling magento
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 

Similar to Drupal CDN integration: easier, more flexible and faster!

Web Performance Internals explained for Developers and other stake holders.
Web Performance Internals explained for Developers and other stake holders.Web Performance Internals explained for Developers and other stake holders.
Web Performance Internals explained for Developers and other stake holders.
Sreejesh Madonandy
 
Web components and Package managers
Web components and Package managersWeb components and Package managers
Web components and Package managers
btopro
 
Scalability vs. Performance
Scalability vs. PerformanceScalability vs. Performance
Scalability vs. Performance
SergeyChernyshev
 
Drupal
DrupalDrupal
The need for Speed: Advanced #webperf - SEOday 2018
The need for Speed: Advanced #webperf - SEOday 2018The need for Speed: Advanced #webperf - SEOday 2018
The need for Speed: Advanced #webperf - SEOday 2018
Bastian Grimm
 
Mongo Seattle - The Business of MongoDB
Mongo Seattle - The Business of MongoDBMongo Seattle - The Business of MongoDB
Mongo Seattle - The Business of MongoDB
Justin Smestad
 
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEAEdge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Akamai Technologies
 
Boosting your conversion rate through web performance improvements
Boosting your conversion rate through web performance improvementsBoosting your conversion rate through web performance improvements
Boosting your conversion rate through web performance improvements
Alyss Noland
 
SearchLeeds 2018 - Craig Campbell - How to fix the most common technical SEO ...
SearchLeeds 2018 - Craig Campbell - How to fix the most common technical SEO ...SearchLeeds 2018 - Craig Campbell - How to fix the most common technical SEO ...
SearchLeeds 2018 - Craig Campbell - How to fix the most common technical SEO ...
Branded3
 
Craig Campbell Search Leeds, Most Common SEO Technical Issues
Craig Campbell Search Leeds, Most Common SEO Technical IssuesCraig Campbell Search Leeds, Most Common SEO Technical Issues
Craig Campbell Search Leeds, Most Common SEO Technical Issues
Craig Campbell
 
Magento performancenbs
Magento performancenbsMagento performancenbs
Magento performancenbs
varien
 
Deploying and Scaling using AWS
Deploying and Scaling using AWSDeploying and Scaling using AWS
Deploying and Scaling using AWS
wr0ngway
 
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
SOASTA
 
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
George White
 
Make Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedMake Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speed
Promet Source
 
Optimizing Browser Rendering
Optimizing Browser RenderingOptimizing Browser Rendering
Optimizing Browser Rendering
michael.labriola
 
MeasureWorks - Why people hate to wait for your website to load (and how to f...
MeasureWorks - Why people hate to wait for your website to load (and how to f...MeasureWorks - Why people hate to wait for your website to load (and how to f...
MeasureWorks - Why people hate to wait for your website to load (and how to f...
MeasureWorks
 
Magee Dday2 Fixing App Performance Italiano
Magee Dday2 Fixing App Performance ItalianoMagee Dday2 Fixing App Performance Italiano
Magee Dday2 Fixing App Performance Italiano
Dominopoint - Italian Lotus User Group
 
Marrying CDNs with Front-End Optimization
Marrying CDNs with Front-End Optimization Marrying CDNs with Front-End Optimization
Marrying CDNs with Front-End Optimization
Strangeloop
 
Grunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationGrunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous Integration
David Amend
 

Similar to Drupal CDN integration: easier, more flexible and faster! (20)

Web Performance Internals explained for Developers and other stake holders.
Web Performance Internals explained for Developers and other stake holders.Web Performance Internals explained for Developers and other stake holders.
Web Performance Internals explained for Developers and other stake holders.
 
Web components and Package managers
Web components and Package managersWeb components and Package managers
Web components and Package managers
 
Scalability vs. Performance
Scalability vs. PerformanceScalability vs. Performance
Scalability vs. Performance
 
Drupal
DrupalDrupal
Drupal
 
The need for Speed: Advanced #webperf - SEOday 2018
The need for Speed: Advanced #webperf - SEOday 2018The need for Speed: Advanced #webperf - SEOday 2018
The need for Speed: Advanced #webperf - SEOday 2018
 
Mongo Seattle - The Business of MongoDB
Mongo Seattle - The Business of MongoDBMongo Seattle - The Business of MongoDB
Mongo Seattle - The Business of MongoDB
 
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEAEdge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
 
Boosting your conversion rate through web performance improvements
Boosting your conversion rate through web performance improvementsBoosting your conversion rate through web performance improvements
Boosting your conversion rate through web performance improvements
 
SearchLeeds 2018 - Craig Campbell - How to fix the most common technical SEO ...
SearchLeeds 2018 - Craig Campbell - How to fix the most common technical SEO ...SearchLeeds 2018 - Craig Campbell - How to fix the most common technical SEO ...
SearchLeeds 2018 - Craig Campbell - How to fix the most common technical SEO ...
 
Craig Campbell Search Leeds, Most Common SEO Technical Issues
Craig Campbell Search Leeds, Most Common SEO Technical IssuesCraig Campbell Search Leeds, Most Common SEO Technical Issues
Craig Campbell Search Leeds, Most Common SEO Technical Issues
 
Magento performancenbs
Magento performancenbsMagento performancenbs
Magento performancenbs
 
Deploying and Scaling using AWS
Deploying and Scaling using AWSDeploying and Scaling using AWS
Deploying and Scaling using AWS
 
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
 
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
 
Make Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedMake Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speed
 
Optimizing Browser Rendering
Optimizing Browser RenderingOptimizing Browser Rendering
Optimizing Browser Rendering
 
MeasureWorks - Why people hate to wait for your website to load (and how to f...
MeasureWorks - Why people hate to wait for your website to load (and how to f...MeasureWorks - Why people hate to wait for your website to load (and how to f...
MeasureWorks - Why people hate to wait for your website to load (and how to f...
 
Magee Dday2 Fixing App Performance Italiano
Magee Dday2 Fixing App Performance ItalianoMagee Dday2 Fixing App Performance Italiano
Magee Dday2 Fixing App Performance Italiano
 
Marrying CDNs with Front-End Optimization
Marrying CDNs with Front-End Optimization Marrying CDNs with Front-End Optimization
Marrying CDNs with Front-End Optimization
 
Grunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationGrunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous Integration
 

Recently uploaded

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 

Recently uploaded (20)

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 

Drupal CDN integration: easier, more flexible and faster!

  • 1. Drupal CDN integration: easier, more flexible and faster! Wim Leers ~ http://wimleers.com/ Drupal.org, IRC, Twitter, LinkedIn: wimleers Thursday, March 5, 2009
  • 3. Overview • Page loading performance • Why does it matter? • What is it? • Why is it important to Drupal? Thursday, March 5, 2009
  • 4. Overview • Page loading performance • Why does it matter? • What is it? • Why is it important to Drupal? • Key Properties of a CDN Thursday, March 5, 2009
  • 5. Overview • Page loading performance • Why does it matter? • What is it? • Why is it important to Drupal? • Key Properties of a CDN • The CDN Effect • YSlow • Episodes Thursday, March 5, 2009
  • 6. Overview • Page loading performance • Why does it matter? • What is it? • Why is it important to Drupal? • Key Properties of a CDN • The CDN Effect • YSlow • Episodes • Drupal + CDN (where we are) • Basic Drupal core patch • Simple CDN module • CDN integration module Thursday, March 5, 2009
  • 7. Overview • Page loading performance • Bachelor thesis • Why does it matter? • What exactly? • What is it? • Daemon requirements • Why is it important to Drupal? • Collaborating companies • Key Properties of a CDN • The CDN Effect • YSlow • Episodes • Drupal + CDN (where we are) • Basic Drupal core patch • Simple CDN module • CDN integration module Thursday, March 5, 2009
  • 8. Overview • Page loading performance • Bachelor thesis • Why does it matter? • What exactly? • What is it? • Daemon requirements • Why is it important to Drupal? • Collaborating companies • Key Properties of a CDN • The Future (where we will be in 3-4 months) • Goals • The CDN Effect • Sample scenario 1 • YSlow • Sample scenario 2 • Episodes • Sample scenario 3 • Drupal + CDN (where we are) • Other use cases • Basic Drupal core patch • What else? • Simple CDN module • CDN integration module Thursday, March 5, 2009
  • 9. Overview • Page loading performance • Bachelor thesis • Why does it matter? • What exactly? • What is it? • Daemon requirements • Why is it important to Drupal? • Collaborating companies • Key Properties of a CDN • The Future (where we will be in 3-4 months) • Goals • The CDN Effect • Sample scenario 1 • YSlow • Sample scenario 2 • Episodes • Sample scenario 3 • Drupal + CDN (where we are) • Other use cases • Basic Drupal core patch • What else? • Simple CDN module • Questions? • CDN integration module Thursday, March 5, 2009
  • 10. Terminology: page loading performance Thursday, March 5, 2009
  • 11. Terminology: page loading performance page rendering performance the time the server needs to render a web page Thursday, March 5, 2009
  • 12. Terminology: page loading performance page rendering performance back- front- the time the server needs to render end end a web page Thursday, March 5, 2009
  • 13. Terminology: page loading performance page rendering performance back- front- the time the server needs to render end end a web page is included in page loading performance the time it takes to load a web page and all its components Thursday, March 5, 2009
  • 14. Terminology: page loading performance page rendering performance back- front- the time the server needs to render end end a web page is included in page loading performance back- front- the time it takes to load a web page end end and all its components Thursday, March 5, 2009
  • 15. Why does it matter? source: http://www.slideshare.net/stubbornella/designing-fast-websites-presentation Thursday, March 5, 2009
  • 16. Why does it matter? • Users care about performance! • Amazon: 100 ms of extra load time caused a 1% drop in sales • Google: 500 ms of extra load time caused 20% fewer searches source: http://www.slideshare.net/stubbornella/designing-fast-websites-presentation Thursday, March 5, 2009
  • 17. Why does it matter? • Users care about performance! • Amazon: 100 ms of extra load time caused a 1% drop in sales • Google: 500 ms of extra load time caused 20% fewer searches • Fast web sites are rewarded, slow web sites are punished source: http://www.slideshare.net/stubbornella/designing-fast-websites-presentation Thursday, March 5, 2009
  • 18. Why is it important to Drupal? Thursday, March 5, 2009
  • 19. Why is it important to Drupal? • Drupal’s numbers • Big, high-traffic web sites • Popular Thursday, March 5, 2009
  • 20. Why is it important to Drupal? • Drupal’s numbers • Big, high-traffic web sites • Popular • Drupal is international (i18n/L10n) Thursday, March 5, 2009
  • 21. Why is it important to Drupal? • Drupal’s numbers • Big, high-traffic web sites • Popular • Drupal is international (i18n/L10n) • The Drupal Experience: happier users & developers Thursday, March 5, 2009
  • 22. What is it? HTML Components • End user response time • 10-20%: HTML (mix of back-end + front-end) 90% • 80-90%: components (front-end only) 10% source: http://stevesouders.com/hpws/ Thursday, March 5, 2009
  • 23. What is it? HTML Components • End user response time • 10-20%: HTML (mix of back-end + front-end) 90% • 80-90%: components (front-end only) • More effective to focus on front-end 10% performance! source: http://stevesouders.com/hpws/ Thursday, March 5, 2009
  • 24. What is it? HTML Components • End user response time • 10-20%: HTML (mix of back-end + front-end) 90% • 80-90%: components (front-end only) • More effective to focus on front-end 10% performance! • CDNs have major impact source: http://stevesouders.com/hpws/ Thursday, March 5, 2009
  • 25. Terminology: CDN A content delivery network (CDN) is a collection of web servers distributed across multiple locations to deliver content more efficiently to users. The server selected for delivering content to a specific user is typically based on a measure of network proximity. source: http://developer.yahoo.com/performance/rules.html#cdn Thursday, March 5, 2009
  • 26. Key Properties of a CDN Thursday, March 5, 2009
  • 27. Key Properties of a CDN • Geographical spread (PoPs) Thursday, March 5, 2009
  • 28. Key Properties of a CDN • Geographical spread (PoPs) • Populating: Pull versus Push Pull F transfer automatically We protocol + virtually no setup no – no flexibility redundant traffic Thursday, March 5, 2009
  • 29. Key Properties of a CDN • Geographical spread (PoPs) • Populating: Pull versus Push Pull Push FTP, SFTP, rsync, transfer automatically WebDAV, Amazon S3 protocol … + flexibility virtually no setup no redundant traffic – no flexibility setup redundant traffic Thursday, March 5, 2009
  • 30. Key Properties of a CDN • Geographical spread (PoPs) • Populating: Pull versus Push Pull Push • Lock-in FTP, SFTP, rsync, transfer automatically WebDAV, Amazon S3 protocol … + flexibility virtually no setup no redundant traffic – no flexibility setup redundant traffic Thursday, March 5, 2009
  • 31. The CDN Effect: YSlow Thursday, March 5, 2009
  • 32. The CDN Effect: YSlow Thursday, March 5, 2009
  • 33. The CDN Effect: YSlow Thursday, March 5, 2009
  • 34. The CDN Effect: YSlow • YSlow does not reflect real-world page loading performance! Thursday, March 5, 2009
  • 35. The CDN Effect: Episodes Thursday, March 5, 2009
  • 36. The CDN Effect: Episodes • JS code that measures episodes of a web page’s loading sequence Thursday, March 5, 2009
  • 37. The CDN Effect: Episodes • JS code that measures episodes of a web page’s loading sequence Thursday, March 5, 2009
  • 38. The CDN Effect: Episodes • JS code that measures episodes of a web page’s loading sequence Thursday, March 5, 2009
  • 39. The CDN Effect: Episodes • JS code that measures episodes of a web page’s loading sequence Thursday, March 5, 2009
  • 40. The CDN Effect: Episodes • JS code that measures episodes of a web page’s loading sequence Thursday, March 5, 2009
  • 41. The CDN Effect: Episodes • JS code that measures episodes of a web page’s loading sequence • Reflects real-world page loading performance! Thursday, March 5, 2009
  • 42. The CDN Effect: Episodes • JS code that measures episodes of • Goal: industry standard! a web page’s loading sequence • Reflects real-world page loading performance! Thursday, March 5, 2009
  • 43. The CDN Effect: Episodes • JS code that measures episodes of • Goal: industry standard! a web page’s loading sequence • Reflects real-world page loading • Drupal module: available next week! performance! Thursday, March 5, 2009
  • 44. Drupal + CDN: Basic Drupal core patch http://tedserbinski.com/tags/drupal/getting-drupal-play-nice-with-your-cdn http://www.lullabot.com/articles/using-lighttpd-static-file-server Thursday, March 5, 2009
  • 45. Drupal + CDN: Basic Drupal core patch http://tedserbinski.com/tags/drupal/getting-drupal-play-nice-with-your-cdn http://www.lullabot.com/articles/using-lighttpd-static-file-server • Change all code that calls base_path(): • common.inc • file.inc • theme.inc • page.tpl.php Thursday, March 5, 2009
  • 46. Drupal + CDN: Basic Drupal core patch http://tedserbinski.com/tags/drupal/getting-drupal-play-nice-with-your-cdn http://www.lullabot.com/articles/using-lighttpd-static-file-server • Change all code that calls base_path(): • common.inc • file.inc • theme.inc • page.tpl.php • Cons • Very limited Thursday, March 5, 2009
  • 47. Drupal + CDN: Simple CDN module http://drupal.org/project/simplecdn Thursday, March 5, 2009
  • 48. Drupal + CDN: Simple CDN module http://drupal.org/project/simplecdn • simplecdn_rewrite_url($url, 'modulename') Thursday, March 5, 2009
  • 49. Drupal + CDN: Simple CDN module http://drupal.org/project/simplecdn • simplecdn_rewrite_url($url, 'modulename') • Cons • Very limited • Not Drupal core & more dependencies • Immature (released Feb 21, 2009), coding standards, no proper releases Thursday, March 5, 2009
  • 50. Drupal + CDN: CDN integration module http://drupal.org/project/cdn (by me) Thursday, March 5, 2009
  • 51. Drupal + CDN: CDN integration module http://drupal.org/project/cdn (by me) • Also includes a Drupal core patch Thursday, March 5, 2009
  • 52. Drupal + CDN: CDN integration module http://drupal.org/project/cdn (by me) • Also includes a Drupal core patch • Automatic synchronization via FTP Thursday, March 5, 2009
  • 53. Drupal + CDN: CDN integration module http://drupal.org/project/cdn (by me) • Also includes a Drupal core patch • Automatic synchronization via FTP • Cons • Still too limited (rsync, Amazon S3, image optimization …) • Drupal 5 only • Proof-of-concept: not scalable (cron and … serialized arrays!) Thursday, March 5, 2009
  • 54. Bachelor thesis “Improving Drupal’s page loading performance” • Promotor: Prof. dr. Wim Lamotte • Co-promotor: dr. Peter Quax • Mentors: Stijn Agten & Maarten Wijnants Thursday, March 5, 2009
  • 55. Bachelor thesis: What exactly? • Episodes.module • Basic reports (e.g. average page load time per browser) • CDN integration • Drupal core patch: unify file URL generation/alteration (sufficient for Pull CDNs) • Daemon for synchronization (Push CDNs) • Drupal module: administration & basic reports • JS at the bottom Thursday, March 5, 2009
  • 56. Bachelor thesis: Daemon requirements • Python • Full unit testing coverage • Very extensible • Plug-ins for transfer protocols • Plug-ins for processors • Very robust & scalable • Multi-threaded, must be able to handle any amount of files Thursday, March 5, 2009
  • 57. Bachelor thesis: Collaborating companies The following CDN companies The following companies will be will be providing their services evaluating the improvements to for free for testing purposes. Drupal or the daemon. A big thanks to all of them! Thursday, March 5, 2009
  • 59. The Future: Goals • Transparency (transfer protocol irrelevant) Thursday, March 5, 2009
  • 60. The Future: Goals • Transparency (transfer protocol irrelevant) • Mixing CDNs and static file servers Thursday, March 5, 2009
  • 61. The Future: Goals • Transparency (transfer protocol irrelevant) • Mixing CDNs and static file servers • Processing before sync: image optimization, transcoding … Thursday, March 5, 2009
  • 62. The Future: Goals • Transparency (transfer protocol irrelevant) • Mixing CDNs and static file servers • Processing before sync: image optimization, transcoding … • Detect new files instantly (inotify/FSEvents/WMI) Thursday, March 5, 2009
  • 63. The Future: Goals • Transparency (transfer protocol irrelevant) • Mixing CDNs and static file servers • Processing before sync: image optimization, transcoding … • Detect new files instantly (inotify/FSEvents/WMI) … thanks to the daemon I’ll write. Thursday, March 5, 2009
  • 64. The Future: Sample scenario 1 Company wants to switch from CDN provider A to provider B. A only supports FTP, B only supports SFTP. Thursday, March 5, 2009
  • 65. The Future: Sample scenario 1 Company wants to switch from CDN provider A to provider B. A only supports FTP, B only supports SFTP. • Setup: • CDN A → CDN B • Daemon Thursday, March 5, 2009
  • 66. The Future: Sample scenario 1 Company wants to switch from CDN provider A to provider B. A only supports FTP, B only supports SFTP. • Setup: • CDN A → CDN B • Daemon • Alternative: write a lot of code Thursday, March 5, 2009
  • 67. The Future: Sample scenario 1 Company wants to switch from CDN provider A to provider B. A only supports FTP, B only supports SFTP. • Setup: • CDN A → CDN B • Daemon • Alternative: write a lot of code • Result: no switching cost → no lock-in! Thursday, March 5, 2009
  • 68. The Future: Sample scenario 2 U.S. company expands to South-Korea Thursday, March 5, 2009
  • 69. The Future: Sample scenario 2 U.S. company expands to South-Korea • Setup: • North-American CDN • Static file servers in South-Korea • Daemon + GeoIP API/Domain GeoLocalization module Thursday, March 5, 2009
  • 70. The Future: Sample scenario 2 U.S. company expands to South-Korea • Setup: • North-American CDN • Static file servers in South-Korea • Daemon + GeoIP API/Domain GeoLocalization module • Alternative: global CDN Thursday, March 5, 2009
  • 71. The Future: Sample scenario 2 U.S. company expands to South-Korea • Setup: • North-American CDN • Static file servers in South-Korea • Daemon + GeoIP API/Domain GeoLocalization module • Alternative: global CDN • Result: faster web site, same setup cost, lower maintenance cost Thursday, March 5, 2009
  • 72. The Future: Sample scenario 3 U.S. company hosts an event in Washington D.C. Thursday, March 5, 2009
  • 73. The Future: Sample scenario 3 U.S. company hosts an event in Washington D.C. • Setup: • North-American CDN • Static file servers in Washington D.C. • Daemon + GeoIP API/Domain GeoLocalization module Thursday, March 5, 2009
  • 74. The Future: Sample scenario 3 U.S. company hosts an event in Washington D.C. • Setup: • North-American CDN • Static file servers in Washington D.C. • Daemon + GeoIP API/Domain GeoLocalization module • Alternative: a slower web site Thursday, March 5, 2009
  • 75. The Future: Sample scenario 3 U.S. company hosts an event in Washington D.C. • Setup: • North-American CDN • Static file servers in Washington D.C. • Daemon + GeoIP API/Domain GeoLocalization module • Alternative: a slower web site • Result: faster web site, same setup cost, slightly higher maintenance cost Thursday, March 5, 2009
  • 76. The Future: Other use cases • Massive back-up tool • Transcoding server • Key component in creating your own CDN • Key component for a Dropbox-like tool Thursday, March 5, 2009
  • 77. The Future: What else? What else do you need? More use cases? More ideas? … Talk to me! Thursday, March 5, 2009
  • 78. Questions? Relevant links: • This presentation: http://wimleers.com/talk/drupalcon-dc-2009 • Bachelor thesis: http://wimleers.com/tags/bachelor-thesis • Questions & feedback: http://wimleers.com/contact • Modules: http://drupal.org/project/cdn & http://drupal.org/project/episodes Thursday, March 5, 2009

Editor's Notes

  1. Popular: d.o usage statistics indicate >125,000 web sites Conclusion: important for: - Drupal project growth - More Happy People
  2. Popular: d.o usage statistics indicate >125,000 web sites Conclusion: important for: - Drupal project growth - More Happy People
  3. Popular: d.o usage statistics indicate >125,000 web sites Conclusion: important for: - Drupal project growth - More Happy People
  4. There are also CDNs out there that can serve content other than static files, but in this talk, only static files are concerned.
  5. - geographical spread: more spread is better, but more expensive - PoP = Point of Presence = connection with >= 1 ISPs - lock-in: * push: supporting all transfer protocols is too hard * pull: not every CDN supports pulling (and unlikely that the same features are supported)
  6. - geographical spread: more spread is better, but more expensive - PoP = Point of Presence = connection with >= 1 ISPs - lock-in: * push: supporting all transfer protocols is too hard * pull: not every CDN supports pulling (and unlikely that the same features are supported)
  7. - geographical spread: more spread is better, but more expensive - PoP = Point of Presence = connection with >= 1 ISPs - lock-in: * push: supporting all transfer protocols is too hard * pull: not every CDN supports pulling (and unlikely that the same features are supported)
  8. - geographical spread: more spread is better, but more expensive - PoP = Point of Presence = connection with >= 1 ISPs - lock-in: * push: supporting all transfer protocols is too hard * pull: not every CDN supports pulling (and unlikely that the same features are supported)
  9. - geographical spread: more spread is better, but more expensive - PoP = Point of Presence = connection with >= 1 ISPs - lock-in: * push: supporting all transfer protocols is too hard * pull: not every CDN supports pulling (and unlikely that the same features are supported)
  10. - geographical spread: more spread is better, but more expensive - PoP = Point of Presence = connection with >= 1 ISPs - lock-in: * push: supporting all transfer protocols is too hard * pull: not every CDN supports pulling (and unlikely that the same features are supported)
  11. - geographical spread: more spread is better, but more expensive - PoP = Point of Presence = connection with >= 1 ISPs - lock-in: * push: supporting all transfer protocols is too hard * pull: not every CDN supports pulling (and unlikely that the same features are supported)
  12. - industry standard goal is realistic because the author is Steve Souders
  13. - industry standard goal is realistic because the author is Steve Souders
  14. - industry standard goal is realistic because the author is Steve Souders
  15. - industry standard goal is realistic because the author is Steve Souders
  16. - industry standard goal is realistic because the author is Steve Souders
  17. - industry standard goal is realistic because the author is Steve Souders
  18. - industry standard goal is realistic because the author is Steve Souders
  19. - industry standard goal is realistic because the author is Steve Souders
  20. - industry standard goal is realistic because the author is Steve Souders
  21. - industry standard goal is realistic because the author is Steve Souders
  22. - industry standard goal is realistic because the author is Steve Souders