Science and Critical Thinking
The Richard Dawkins Foundation for Reason and Science (RDFRS) supports scientific education and advances critical thinking and an evidence-based understanding of the natural world, in the quest to overcome religious fundamentalism, superstition, intolerance and human suffering. The foundation’s namesake and founder, Richard Dawkins, is a scientist and best-selling author of works including The God Delusion, The Selfish Gene, and The Blind Watchmaker.
The RichardDawkins.net website keeps users up to date with news and comment relating to science, atheism, secularism and religion, and also helps to overcome the sense of isolation felt by many atheists, especially those in intensely religious communities, where ‘coming out’ as atheist can result in the loss of one’s job, friends or even family.
Traditional Architectures Don’t Scale
The RichardDawkins.net web application was originally written in PHP as a traditional, single-code-base application. As the traffic continued to grow it quickly outstripped the capacity of the site and its servers, often causing all of our sites hosted on the server to come to a standstill.
Due to the architecture of the site and the lack of performance monitoring and tuning capabilities in PHP, it was difficult to identify and remove performance bottlenecks.
We decided to compartmentalize each of our projects and migrate them to Rails. We converted some of our smaller sites first, like the Out Campaign (outcampaign.org), before the bulk of the work on RichardDawkins.net was done. This means that the sites moved to Heroku were in isolation from each other and the performance of our old main site wouldn’t affect the migrated sites on Heroku.
Building a distributed “constellation” of applications
Heroku offered an easy way to host each of our new applications separately and offered seamless integration with New Relic. The enabled the foundation to quickly see which areas of the site could be optimized as they migrated and tested and launched their new applications on Heroku.
We were able to scale up the number of dynos quickly to cope with the demand whilst the improvements were coded. Once the improvements were deployed we could reduce the number of resources used, which allowed us to make significant savings.
The Richard Dawkins Foundation has continued using this “constellation pattern” of deploying apps to separate out the concerns for each web property. One example is the launch of their new donation site, donate.richarddawkins.net. This both simplifies their code base and is an easy way to reduce downtime with new deployments. For example, even though the foundation’s main website gets updated regularly, they are able to turn on maintenance mode and deploy new code to it without affecting anyone’s ability to donate via their donation application.
Handling Record Traffic
September 2010 has been a record breaking month in traffic. We’ve served just over 955,000 unique visitors and about 2,890,000 page views. Thanks to Heroku’s infrastructure and its partners in providing add-ons such as New Relic and memcache form NorthScale, we were able to serve the extra traffic with no hiccups and within the limited budget of a non-profit organization.