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 | ||||||||
|---|---|---|---|---|---|---|---|---|
|
Review links |
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 |
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.
|
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/ |
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.
comments
blog comments powered by Disqus