I’ve been looking at cloud platforms for Django over the past few days. I want to have a look at my application performance and scalability but I have a feeling my shared host, Webfaction (an excellent service for the price), might not be up to the job. With that in mind I was delighted to see heroku now offers a python platform. Heroku offers a simple but powerful way to scale applications and very programmer friendly deployment – git push.
Heroku was initially a platform for Ruby on Rails now offering python, java and more. However that ruby focus is still very evident in the documentation – most instructions for add-ons only refer to installing gems. Anyway I was still able to continue my deployment and the CLI was intuitive and I felt like I could be very productive on the platform. The add-ons like New Relic and Blitz.io were also excellent to use. It feels a lot more mature than a lot of the other PaaS out there but unfortunately I eventually had to abandon it as it doesn’t offer support for the GEOS library required by Geodjango. I also had problems with xapian but there is a solr add-on which shouldn’t have been to hard to swap in.
I searched in vain for a while for a more python/django focused offering and almost gave up until I found Dotcloud. Like heroku, Dotcloud offers various stacks but their python stack/offering seems much more mature. PostGIS support is excellent – just a matter of adding db: type: postgis to the dotcloud.yaml and the GEOS library is installed as well. Again like heroku there is no support for xapian but I switched to solr easily. Django-haystack made this task a lot easier as there wasn’t much search backend specific changes to be made. Finally I hade to switch my cache provider from memcache to redis but again it was fairly seemless.
So now its off to New Relic for some performance and scalability analysis, and monitoring…..