Tuesday 11 a.m.–11:45 a.m.

Django Deployments Done Right

Peter Baumgartner

Audience level:

Intermediate

Description

Deployment is the process of getting code from your laptop to a production-level server. What makes a "good" deployment? This talk will give you a tooling-agnostic look at the steps that you should be taking during deployment and show you how to overcome some common pitfalls in the process.

Abstract

There's no single standard toolkit for deploying Django sites. In our years of consulting, we've seen lots of deployment systems in the wild and where they break down or cause pain. Independent of the system you use (Salt, Ansible, Fabric, Chef, Docker, etc.), there are a few principles a good deployment should follow:

  1. Deployments don't take the site down or interrupt active users on the site.
  2. Deployments don't involve more than one step or are completely automated.
  3. Deployments are fast.
  4. A failed deployment never takes down the current running version of the code.
  5. Rolling back to a previous deployment is a single step.

By following these principles, deployments go from being error-prone, nerve-wracking experiences to trivial non-events in your daily development cycle. This talk will walk you through the steps necessary to create a better deployment process.