Fernando Aramendi

🐦 @faramendi

Workshop/break-out session:
Django bootstrapping in 2019

With thanks to devartis

A step by step guide to setup a Django project with all the required tools a developer needs. From the development environment with Docker to deployment with Ansible we will cover all aspects a project must have.

We have been working with DJango for many years and we discovered we were always repeating the same things at the beginning of each project. Pycodestyle checks, unit tests, automated deployment, we where doing all of them over and over again and occasionally we were missing important things that would make our lives easier.

That’s why we decided to create and maintain template repository with all the required tools to bootstrap a Django project. It has become very valuable for our company and that’s why we want to share it with the community. The project is now open source and we will review all it does in this talk.

Virtual environments.

  • Pyenv and Pipenv
  • Usefull dependencies for development (debug toolbar, extensions, django-environ, etc.)

Services your application depends on

  • Docker quickstart
  • Compose example with DB (PostgreSQL), Cache (Redis), NGINX and RQ

Git hooks

  • Tests
  • Flake
  • PEP8
  • Pylint
  • JSCPD

Deployment

  • Deployment stack. Typical pieces of a small application.
  • Configuring Ansible

CI/CD + Feature branch flow

  • Gitlab Pipelines
  • Sonarqube
  • Slack integration

Monitoring tools

  • Error logging with Sentry
  • Application performance monitoring and profiling with NewRelic

Break-out sessions are expected to last around 60 minutes. They will have limited seats and will have a sign-up option provided on the ticketholder website, once the schedule is known.