Recently I have been building a new website for Repowering - a co-operative focused on radically increasing the number of renewable energy projects in London. Last weekend I migrated the website from Heroku to GreenQloud.
Whats wrong with Heroku?
When I started building the new Repowering website I initially hosted it on Heroku. I am a big Heroku fan. It makes it super easy to get a Ruby website on the web. However there is a downside to Heroku - it runs on top of Amazon’s EC2 cloud computing platform which means it is powered by dirty CO2 spurting coal power plants (check out MastondonC’s dashboard of cloud provider CO2 emissions to see for yourself). One of Repowering’s aims is to reduce carbon emissions, so having a website that produced unnecessary emissions was a big no no.
Moving to Greenqloud
There is a greener solution - the Icelandic company Greenqloud offer cloud hosting based in Iceland. As Iceland’s electricity system runs on geothermal and hydro power the server emissions are as close to zero carbon as you can get. Cost wise it’s comparable too. While Heroku is free for a single dyno, costs escalate rapidly as you start adding workers and features such as SSL.
Setting up the Virtual Machine for Rails
Greenqloud has an easy to use interface. It’s a few clicks to setup a new box and you get a browser based VNC client to do your initial configuration. Unlike Heroku however you need to setup the platform yourself. For something like Wordpress this is quick and easy, but for the Ruby on Rails application its a bit more involved. I spent 2 or 3 hours installing Ruby, Mongo, Redis, Nginx and configuring Unicorn and SSH.
I followed these guides for help setting up the server:
- How To Easily Build a Fast, Reliable Production Rails 3.2 Web Server with Ubuntu 12.10 / Nginx / Passenger
- Setting up Unicorn with Nginx
- Quick tips on security
If you are a devops wizard you could use Chef or Puppet to do automate this. The other task you need to handle yourself is backup. I knocked together a little script based on this to handle backups.
Towards a cleaner cloud
From a price and time perspective it hasn’t cost me much to move to a low carbon hosting platform. Its an easy way to reduce your client’s or organisation’s carbon emissions. To realise cloud computing’s green potential we need to make cloud computing low carbon by default. Here are some ways cloud infrastructure can become greener:
- Amazon EC2 could start running their infrastructure on low carbon electricity. Apple, Google, Microsoft and Facebook have recently started to move in this direction.
- Services such as Heroku could have more flexibility over where your applications run
- More Infrastructure as a Service (IaaS) provider need to support green cloud providers