This talk will describe how to package a Django web application as a Docker container image for use on a container orchestration platform. Starting with a common Django setup involving Nginx, Gunicorn, and Celery, we will show how to adapt the application to run inside containers.
Container orchestration platforms such as Kubernetes and DC/OS are growing increasingly popular. These systems provide many advantages, but require significant changes to how applications are packaged and deployed. Instead of running on staticly-configured webservers, applications must run in containers that are dynamically deployed to a pool of hosts.
There are further benefits to packaging applications as containers. By providing an easy-to-use and tested base image for Django applications, deployment best-practices are easily and consistently replicated. Integration testing becomes more practical, as containers can be run similarly between development and production environments.
This talk expects some familiarity with Django, as well as the basics of Docker and HTTP. There should be lessons relevant to anybody interested in using Docker for Python-based web applications.