Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
We need to take some steps before we can integrate a CDN with Drupal.org:
- Choose a CDN provider: EdgeCast
- Pick a site or assets to push to CDN: site status being tracked @ http://goo.gl/vQ1ESZ
Test, make any necessary configuration updates to Nginx/Apache/PHP/Drupal/etc.Testing complete for subsites- Plan statistics gathering / stats counter for updates.drupal.org: updates.d.o will be configured to always pass to origin
Comments
Comment #1
tvn CreditAttribution: tvn commentederr
Comment #2
killes@www.drop.org CreditAttribution: killes@www.drop.org commentedWe plan to use a CDN for drupal.org and may want to use it for updates.drupal.org.
We need to investigate if we can still preserve the usage stats counter.
Comment #3
basic CreditAttribution: basic commentedUpdate title and summary
Comment #4
basic CreditAttribution: basic commentedComment #5
mgiffordSo what options are being considered? I'm assuming we'd be using the CDN module.
I've experimented lately with AmazonS3 integration. Would be useful to know the direction that d.o goes for this.
Are you looking at putting theme & user images, as well as cached CSS/JS there? Lots of options.
Comment #6
basic CreditAttribution: basic commentedComment #7
basic CreditAttribution: basic commentedWe are primarily concerned with the network level security that a CDN will provide Drupal.org. The CDN will allow us to restrict access to our origin servers and disallow directly connecting to origin web nodes (which is currently possible). The two big advantages are:
Some examples of how the CDN will help Drupal.org:
Comment #8
basic CreditAttribution: basic commentedCDN Deployment 4/18/2014
CDN Deployments 4/16/2014
CDN Deployments 4/15/2014
CDN Deployments 4/14/2014
Comment #9
basic CreditAttribution: basic commentedCDN Deployments 4/24/2014
CDN Deployments 4/21/2014
Comment #10
basic CreditAttribution: basic commentedCDN Deployments 4/28/2014
amsterdam2014.drupal.org had a 24h ttl on the dns record, so it may not be "live" until 4/29/14 for some people.
Comment #11
basic CreditAttribution: basic commentedCDN Deployments 4/30/2014
Added an /etc/hosts entry to the testbot puppet to route testbot traffic directly to the load balancers (bypassing cdn) in case of issues.
The remaining sites are drupal.org and updates.drupal.org
Comment #12
basic CreditAttribution: basic commentedCDN Deployments 5/7/2014
Live @ May 7 15:50:00 UTC 2014
Comment #13
basic CreditAttribution: basic commentedwww.drupal.org rename completed, scheduling www.drupal.org CDN switch for 6/25 @ 1PM PDT, 20:00 UTC
Comment #14
YesCT CreditAttribution: YesCT commentedthe switch from drupal.org to www.drupal.org broke dreditor... https://github.com/dreditor/dreditor/pull/207
Comment #15
nnewton CreditAttribution: nnewton commentedWhile unfortunate, we cannot control third party tools and this should be a very easy fix.
Comment #16
basic CreditAttribution: basic commentedupdates.drupal.org traffic is now being cached by the CDN. http://ow.ly/i/60idL shows a drastic decrease in origin traffic which should result in decreased network saturation during git clones and traffic spikes.
Comment #17
webchickWow, impressive. :)
Comment #18
basic CreditAttribution: basic commentedWe have decided to push the CDN deployment for Drupal.org to Wednesday 7/2/14 @ 1PM PDT, 20:00 UTC to give more notice on Twitter prior to the switch.
Comment #19
dstolJust curious about why the switch from drupal.org to www.drupal.org?
Comment #20
star-szr@dstol - See #2238131-2: Drupal.org CDN deployment notes
Comment #21
YesCT CreditAttribution: YesCT commentedthe switch from drupal.org to www.drupal.org also effected simplytest.me #2289145: drupal.org is now www.drupal.org - patch file URLs do not work
Comment #22
nnewton CreditAttribution: nnewton commentedWhile I appreciate you keeping track of this. There is not much we can do about third party services. We have no integration with these teams. They don't talk to us before setting up these services, we sometimes don't even know they are scraping us until we find them in the logs. Historically, many of these services have actually caused us significant problems when their scraping goes awry. It would be nice to have a better way to communicate with them and some policies for 'third party integrators', but we currently don't and don't really have the admins to deal with it if we did.
We are obviously aware that third party services may break when we change something, but we can't just not change things. Thus, there isn't much actionable about knowing a change broke a third party service.
Comment #23
markhalliwellAgreed. 3rd party tools are just that, 3rd party. They have no [real] bearing or influence on these types of changes and have to roll with the punches. FWIW, I am personally very happy to see so much progress, regardless of the extraneous consequences.
I know this isn't the "policy", but having #1710850: Deploy RestWS for D7 project issue JSON would certainly help remove/standardize a lot of the "scraping" that we have to now do manually.
Comment #24
nnewton CreditAttribution: nnewton commentedThat really does seem like it could be a good improvement.
Comment #25
basic CreditAttribution: basic commentedThe CDN deployment on www.drupal.org is now live. DNS respecting TTL for www.drupal.org should now be pointing at the CDN.
Comment #26
basic CreditAttribution: basic commentedComment #27
webchickAny purdy graphs to show the impact this had? :)
Comment #29
basic CreditAttribution: basic commented@webchick https://assoc.drupal.org/blog/basic/why-we-moved-drupal.org-cdn has the origin server bandwidth graph
There was also some interesting data from webpagetest.org and general "it's faster over here now responses":
from France / webpagetest.org (drupal.org/home):
Pre-CDN results: first page load=4.387s. repeat view=2.155s
Post-CDN results: first page load=3.779s, repeat view=1.285s
Comment #30
leanmomlacy CreditAttribution: leanmomlacy commentedIt was having routing issues to Europe and people were complaining about durple.org. lacyarnoldleanmomsreview.com/privacy/
Comment #31
Perignon CreditAttribution: Perignon commentedIs there any place where the actual details of how D.O was put onto a CDN? I'm a co-maintainer of the EdgeCast CDN module and also use the standard CDN module that just parts and pieces of the website. I am wondering how the entire drupal installation got put behind an origin pull CDN and how stuff like form posts work.
Comment #32
Vacilando CreditAttribution: Vacilando commentedI've got the same question as Perignon: is there a document or page with a technical explanation about putting the whole d.o. on a CDN. The CDN module does bits and pieces but not pages as such.
Comment #33
nnewton CreditAttribution: nnewton commentedAt some point we may do a write-up, but there isn't anything unique about it. Many large Drupal sites are behind CDN's in a similar fashion. Basically, this method requires that the CDN have a rules engine and then works very similar to how Varnish works with cookie/session analysis.
If there is significant interest in this, I can write up something at some point. I've worked on several sites with different CDN's doing similar.
-N
Comment #34
nnewton CreditAttribution: nnewton commentedActually, what might be useful is something explaining the differences between the modules you discuss and fronting with a pull-based CDN....hmm. I will probably write something up :). Hopefully it is useful to someone at some point.
@Perignon, have you had issues with purges going through on edgecast with the module you co-maintain? In a previous deployment when I used purging extensively, it was a pretty shaky system. That was years ago though, so perhaps it has gotten better. I have not extensively used purging recently.
-N
Comment #35
Vacilando CreditAttribution: Vacilando commentedGreat, looking forward to that, @nnewton!
Comment #36
Vacilando CreditAttribution: Vacilando as a volunteer commented@nnewton, re #34 — still looking forward to at least cursory write-up of the approach taken to implement origin pull for the whole of www.drupal.org (forms, expiration, ...) What's been done for our community website might also be very interesting for the community members. Thanks!