{"id":539,"date":"2009-08-18T20:30:34","date_gmt":"2009-08-19T02:30:34","guid":{"rendered":"http:\/\/www.mooreds.com\/wordpress\/archives\/000539"},"modified":"2009-08-19T10:10:59","modified_gmt":"2009-08-19T16:10:59","slug":"a-survey-of-cdns-for-use-with-drupal","status":"publish","type":"post","link":"https:\/\/www.mooreds.com\/wordpress\/archives\/539","title":{"rendered":"A survey of CDNs for use with Drupal"},"content":{"rendered":"<p>I have spent some time researching Content Delivery Networks (CDNs) and how they can integrate with Drupal.\u00a0 Note that I have not yet implemented a CDN solution, so my experiences and opinion may change&#8230;.\u00a0 I will try to do a second post or update when we&#8217;ve actually rolled something out live.<\/p>\n<p>Here are some criteria I&#8217;d use in selecting a drupal module for CDN management:<\/p>\n<ul>\n<li>Do you need a CDN?\u00a0 This is the key question, as a CDN can speed up your site, but introduces a layer of managment and expense that might not be worth the hassle.<\/li>\n<li>Do you mind patching drupal core?\u00a0 This might be a maintenance issue going forward.<\/li>\n<li>Do you want to have just images on your CDN, or javascript and CSS as well?\u00a0 What about video?<\/li>\n<li>How contained within the drupal interface do you need your interactions with a CDN to be?\u00a0 Are you comfortable using a third party tool sometimes?<\/li>\n<li>Do you have an existing CDN to work with, or are you selecting a CDN from scratch?\u00a0 Obviously, you have more flexibility in the second case.<\/li>\n<li>Do you mind coding? Some of these modules seem like they are 75% of the solution, but you might need to write some code to finish things up.<\/li>\n<\/ul>\n<p>There are a number of modules that attempt to integrate a CDN into Drupal, or might help doing so.\u00a0 All of these had a release for Drupal6.<\/p>\n<ul>\n<li><a href=\"http:\/\/drupal.org\/project\/cdn\">CDN<\/a>: this seems like a great fit.\u00a0 Active development, good sized issue queue, support for multiple CDNs.\u00a0 It also patches core. Here&#8217;s a <a href=\"http:\/\/drupal.org\/node\/218177\">list of CDNs<\/a> used with this module.<\/li>\n<li><a href=\"http:\/\/drupal.org\/project\/media_mover\">media_mover<\/a>: this module seems like it might be useful if you were needing to move image and or video files to a CDN.\u00a0 That might require some coding, although I remember there being some S3 and FTP support.<\/li>\n<li><a href=\"http:\/\/drupal.org\/project\/creeper\">creeper<\/a>: this module is all about Amazon API integration, including <a href=\"http:\/\/aws.amazon.com\/cloudfront\/\">CloudFront<\/a>.\u00a0 Plus, what a great name!<\/li>\n<li><a href=\"http:\/\/drupal.org\/project\/parallel\">parallel<\/a>: fairly new module that changes the source hostnames of images, css files and javascript html tags.\u00a0 Therefore, they can be served off a CDN, or another web server, etc.<\/li>\n<li><a href=\"http:\/\/drupal.org\/project\/storage_api\">storage_api<\/a>: this is a general storage service with a CDN focus, but doesn&#8217;t appear to be well documented or supported as of this time.<\/li>\n<li><a href=\"http:\/\/drupal.org\/project\/cloudfront\">cloudfront<\/a>: adds Amazon CloudFront support to the <a href=\"http:\/\/drupal.org\/project\/imagecache\">imagecache<\/a> module<\/li>\n<\/ul>\n<p>These all seem to be useful in their own ways.\u00a0 The current project I&#8217;m working on is already invested in the Amazon infrastructure, mainly because of <a href=\"http:\/\/www.chapterthree.com\/blog\/josh_koenig\/project_mercury_preconfigured_drupalvarnish_ec2_ami\">Project Mercury<\/a>, so cloudfront is our current choice.<\/p>\n<p>Did I miss any key modules?<\/p>\n<p>[tags]drupal cms, cdns rock[\/tags]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have spent some time researching Content Delivery Networks (CDNs) and how they can integrate with Drupal.\u00a0 Note that I have not yet implemented a CDN solution, so my experiences [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,17,20],"tags":[],"class_list":["post-539","post","type-post","status-publish","format-standard","hentry","category-drupal","category-php","category-web-applications"],"_links":{"self":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/comments?post=539"}],"version-history":[{"count":0,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/539\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/media?parent=539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/categories?post=539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/tags?post=539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}