I'm looking to deploy my Django application using juju. Quickly looking over the charm store, I noticed there are two different charms to do this. One simply named python-django
and another called django-rainbow
.
The python-django
charm is described like:
This charm will install Django. It can also install your Django project and his dependencies from either a template or from a version control system. It can also link your project to a database and sync the schemas. This charm also come with a Fabric fabfile to interact with the deployement in a cloud aware manner.
And django-rainbow
like so:
Django-rainbow is a full-fledged Django web project deployment charm. One can deploy many projects onto a single instance by maintaining individual config files pertaining to the project. Django-rainbow is a safe and convenient platform for development or production web server management. Web sites are updated instantly using mercurial based versioning. Your django-rainbow project file can be stored for future use, allowing anyone using juju a fail safe method to develop and deploy your project without creating conflicting structure. Django-rainbow is a "Set it and forget it" platform leaving development issues with the developers :)
What are the differences and why would I choose one over the other?
Both charms are similar in term of functionality but differ in there completeness.
Database support:
django-rainbow support only mysql and not as a relation but installed in the same unit that the django project is installed.
python-django support only postgresql for now. But mongodb and mysql are on the way (see https://code.launchpad.net/~patrick-hetu/+junk/python-django-mysql-support)
WSGI:
django-rainbow support apache2 and you need to configure your vhost manually in the charm's configuration file.
python-django works with a wsgi relation for now only a Gunicorn subordinate implement the interface.
Only in the django-rainbow charm:
Only in the python-django charm:
Low level: