Django Hosting Roundup: (Ep.io vs Gondor.io vs DotCloud vs Heroku vs AppHosted vs DjangoZoom) Who wins?

Updated 2/16/2012: Full disclosure. On Feb 16th 2012, I accepted a job with dotCloud. I plan on keeping this blog post up to date and impartial. If you think there are any errors, please let me know in the comments below.

Updated 1/26/2012: Updated Gondor.io with info from Donald Stufft.

Updated 01/24/2012: changed gondor.io to include SSL support

Updated 01/01/2012: Added Heroku and updated ep.io, gondor.io, and dotcloud.

For the past 6 weeks I have been trying out all of the new django/python hosting services that are currently available today, and I have been writing about my experiences along the way. It only makes sense to conclude this series of articles with one last article comparing all of the services against each other. It is important to note that many of these services are still in development and aren't even available to the general public, so I'll try to keep this article up to date as these services change over time. With that said, don't take my word for it, go out and try all of these services on your own and find out which one you like the best, you won't be disappointed.

Quick Recap

ep.io

Pretty solid offering, with a nice set of features and a decent price. Good set of documentation.

gondor.io

Their website has a nice list of features that they expect to have once they officially launch, but most of those features aren't available yet. The documentation is a little light, but the service has a lot of potential.

dotcloud.com

They have a ton of money ($10M), and with it, a ton of features. They are very developer friendly, but you need to be pretty technical, it isn't quite ready for beginners. Good set of documentation.

AppHosted.com

Built with security, stability and scalability on their mind from the beginning. They have a solid offering, and they look to be targeting enterprise customers who will pay more for that peace of mind. They are currently lacking some key features, which I'm sure they will be adding soon. Good set of documentation.

DjangoZoom.com

Built to be fast and easy to use, still missing some key features, but I'm sure they will be available by the time they go live. Decent amount of documentation.

Heroku.com

Originally built as a Ruby on Rails service, they have now added support for python. The service is still in beta, but it has a lot of potential. It looks a lot like what dotCloud is offering, with the ability to run code from almost any language, and a ton of different add-ons for lots of different services.

Awards:

Fastest Deployments:

DjangoZoom.com - Zoom is right, it doesn't take long to configure your application and have it up and running on their servers.

Easiest To Use:

DjangoZoom.com - No command line interface needed, just a web browser, a project in a git repo that it has access too, and a few questions answered and your app is up and running.

Most Features:

DotCloud.com - They raised $10Million, and they are spending it on hiring people, buying companies, and building services. They have a bunch of services currently and they don't plan on stopping, their roadmap has everything on it, and I think if you give them enough time they will eventually have a service for everything.

Most Developer Friendly:

DotCloud.com - They give lots of features without handcuffing the developer. They are the only company with full database and shell access. They do a good job of offering the same type of service a developer could get if they built it themselves.

Best Overall Value:

ep.io - This one is hard since most of the services don't have any pricing listed, but currently ep.io is in the lead, they offer reasonable prices with a nice Free tier. This allows developers to try out the service for FREE, as well as run smaller pet projects that they might not have tried before because they didn't want to pay for hosting. They have the second most features available, second to only dotCloud, and there service is pretty solid.

Easiest Project Setup:

AppHosted.com - Their goal was to make it real easy to get your project up onto their servers without having to change your project, and they did that, there was very little if any changes I needed to make in order to get my application up on their servers.

Django Feature Hosting Matrix

To make things easier when comparing all of the different services I have built this matrix with all of the information I compiled from each of the services. I don't know the answers for all services, but I'll update it when I find out those answers. If you know the answers feel free to post a comment to let me know.

I have included all of the new django services as well as google app engine and webfaction.com, a tradition hosting service. This should make it a little easier to see how these new services compare to other hosting options.

Services

ep.io

gondor.io

AppHosted.com

DjangoZoom.com

DotCloud.com

WebFaction.com

Google App Engine

Heroku

Review links

Ep.io Review

Gondor.io Review

AppHosted Review

DjangoZoom Review

DotCloud Review

n/a

n/a

Heroku Review

Background tasks

yes via celery

supports celery and it runs with beat enabled, allowing developers to utilize celery to run asynchronous and scheduled tasks.

yes via celery

no

yes

yes (you have to set it up yourself)

yes

yes

cron jobs

yes

no

no

no

yes

yes

yes

yes

price

Instances $0.03 per hour; Bandwidth: $0.15 per GB; Disk space: $0.50 per GB-month; Free dynamic instance,
first full instance half-price; Bandwidth: 5GB per month free; Disk space: 2GB free
$10 / month / slot

a slot is 1 Django WSGI process or 2.5 GB PostgreSQL database or 64 MB Redis cache or 1 Celery process.       $100 / month / server

assuming 1GB server with 40GB disk; price increases linearly with size

($0.05/ service hr - $0.20/ service hr) + Bandwidth $0.22 per GB (SSL included) + $0.20 per GB Storage + $0.40 per CPU hour Database

n/a

up to 2 services a month is free. $99/month for up to 4 services. additional service processes are priced at $40 / month.

$9.50/month

bandwidth out: $0.12/GB
bandwidth in: $0.10/GB
CPU $0.10/CPU HR
Standard Data $0.15/GB/Month
HA Storage $0.45/GB Month
More info: http://code.google.com/appengine/docs/billing.html

Dynos cost $0.05 per hour, prorated to the second. For example, an app with four dynos is charged $0.20 per hour for each hour that the four dynos are running.

Pricing is based on calendar time. If you set your app to four dynos, you will be charged $0.20 per hour regardless of the traffic your site serves during that time.

Each application receives 750 free dyno hours per month. For example if you have 1 web dyno running for all of April, and a worker dyno running half the time you would have 330 dyno-hours billed that month or $16.50 (720 web dyno hours + 360 worker dyno hours - 750 free dyno hours). Add-on's cost more.

databases

Postgresql, redis

PostgreSQL 9

PostgreSQL

PostgreSQL 8.4

PostgreSQL 9, MySQL 5.1, Redis 2.2.2, MongoDB 1.8.1

PostgreSQL, MySQL

Google Big Table

Postgresql, mongodb, redis, couchdb

database access

ep.io client allows psql access, django mangement commands, django admin

Gondor client (data dump, copy database, clearing database) , django management commands, and django admin.

django management commands and django admin only; full psql access via shell

django management commands and django admin only

Full database access

phpmyadmin and full access via ssh tunneling

web console access only

Full database access

How to create django superuser

ep.io client

gondor client

apphosted client

Web based control panel

command line

command line

?

command line

loading or dumping database data

ep.io client allows psql access, django mangement commands

Gondor client (data dump, copy database, clearing database) , django management commands.
The gondor client also allows loading a database from a pg_dump (or a gondor sqldump).

django management commands only.

django management commands only.

full database access, do what ever you want.

full database access, do what ever you want.

Bulk data upload/ download tool

Full database access

caching

redis

redis

no

local memory only

redis, memcached

you can install memcached

memcached

memcache, redis

command line client

yes

yes

yes

no

yes

no

yes

yes

django management commands?

yes via ep.io client

yes, via gondor client

yes via apphosted client

yes (via web based console.)

yes

yes

?

yes

push or pull

push

push

push

pull

push

n/a

push

push

wildcard domains

yes

no

?

yes

yes

yes

no

yes

custom domains

yes

yes

yes

yes

yes

yes

yes

yes

services

postgresql, celery, redis

PostgreSQL 9, redis, django-haystack is supported, their hosted version of solr isn't available yet.

Postgresql, celery

postgresql

PostgreSQL 9, MySQL 5.1, Redis 2.2.2, MongoDB 1.8.1, RabbitMQ, SMTP, SOLR,

PostgresSQL, MySQL, SMTP,

memcached, google big table data store, XMPP, Mail, Images, OAuth

Postgresql, mysql, redis, mongodb, rabbitmq, and more.

SSL

yes

yes

yes

no

yes

yes

yes

yes

send email

no

no

no

no

yes via smtp service

yes

yes

yes

receive email

no

no

no

no

?

yes

yes

yes (with addon)

wsgi server

gunicorn

gunicorn

uWsgi

gunicorn

uwsgi

mod_python, mod_wsgi

?

django runserver & gunicorn

shell access

very limited via ep.io client

no

yes (jailed shell)

no

yes

yes

no

yes

dependency management requirements (how)

pip requirements file

pip requirements file

pip requirements file

pip requirements file

pip requirements file

none

very locked down, GAE custom

pip requirements file

static media

yes

yes, supports django-staticfiles

yes

yes, supports django-staticfiles

yes

yes

yes

yes

Upload files

yes

They have a read only, or ephemeral file system but that doesn't prevent you from uploading files. You just have to Utilize something like S3 or CloudFiles for long term storage.

?

no

?

yes

yes

yes temp only

web servers (nginx, apache, etc)

nginx

nginx

nginx

nginx

nginx

nginx, apache

?

?

project directory setup

http://www.ep.io/docs/runtime/#filesystem

https://gondor.io/support/project-layout/
Project Layout is merely just a suggestion about what will work the best out of the box. People are free to use any layout they want but it might require tweaks to get working.

standard setup nothing fancy required

standard setup, nothing fancy required.

fairly standard some custom stuff

however you want it

GAE Custom

standard setup nothing fancy required

logging / log files

viewable in web console

Gunicorn logs are available on the instance page.

downloadable via web console

No, recommends Django Sentry.

streamed via command line client, or login to machine via ssh to view/download files

viewable via ssh

viewable via web based console

visible via command line and syslog server

version control support

git, mercurial

git, mercurial

not needed

git

git, mercurial

n/a

n/a

git

database migration support

django-south

nashvegas, django-south

django-south

django-south

Any

Any

n/a

any

full-text search

Solr

django-haystack is supported, their hosted version of solr isn't available yet but you can use an external hosted solr easily (e.g. http://websolr.com)

no

no

Solr

no

Prospective Search?

Sphinx and solr

API

no

API isn't publicly documented but developers are free to use it as they would the Gondor client. The client is available on Github.

Yes

no

yes, via dotcloud client

yes

no

yes

python versions

Python 2.7

Python 2.7.1

Python 2.5, 2.6, and 2.7

python2.6.6

python 2.6.5

python 2.5, 2.6, 2.7

python 2.5

python 2.7

Django versions

Any

Gondor officially supports any version of Django that is currently receiving security updates from Django core. Currently this includes 1.2.x and 1.3.x and will soon have 1.4.x. Unofficially other versions of Django are able to be ran, but it might require translating settings to a different format.

Any

1.3, 1.2.5

Any

Any

Django-nonrel

any

Where are servers located

IBM BladeCenter containing 14 blade servers located in co-lo space South East of the UK + Amazon EC2

RackSpace

softlayer + rackspace

Amazon EC2

Amazon EC2

softlayer (formally The Planet)

?

Amazon EC2

server os

Linux ? (64-bit x86)

Ubuntu 10.04

Ubuntu and Debian 64 bit x86 servers

Ubuntu 10.10

Ubuntu 10.04

CentOS 5.6

?

Ubuntu 10.04

Information last updated on

01/01/2012

01/01/2012

06/04/11

06/04/11

01/01/2012

06/04/11

06/04/11

01/01/2012

Who wins?

It is really hard to pick just one winner, mainly because most of these services are still in beta and not quite finished yet. Also because each service is a little different, and it will depend on what you are trying to do. So, go out try them out, and let me know which one you picked.

The real winner is us, the developers, and the python community in general. We now have a bunch of really cool services that will make our lives better, and that is awesome.

Thank you!

I want to thank all of the people who made these services, and gave me early access to their systems so that I could play around with them. I wish them the best of luck, and hope they all are really successful, and they are around for a long time.

Real Time Web Analytics