1

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?

1 Answer 1

3

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:

  • you can configure the domain name of your django.contrib.sites app.

Only in the python-django charm:

  • a website relation (for load balancing for example)
  • a Memcached relation
  • an upgrade hook (upgrades packages, requirements.txt, pip, etc)
  • a Juju compatible fabfile to interact with your Django deployment
  • it can be extended via application subordinate charms (see the section in the README)

Low level:

  • the django-rainbow charm is written in bash while the python-django charm is written in python.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .