Primary image for Go live checklist for your Django project

Go live checklist for your Django project

Launching a website can be an exciting but nerve-wracking experience. With so many moving parts in the website development process, it’s easy to overlook small details that can significantly impact the user experience. To help you avoid potential issues, we’ve compiled a checklist of things to verify before your site goes live.

Here it is an opinionated production checklist that is tailored to a high-traffic website (100k Requests per day and above).

Django settings

  • Django DEBUG = False
  • Django SESSION_ENGINE = django.contrib.sessions.backends.cached_db or django.contrib.sessions.backends.signed_cookies
  • Django ALLOWED_HOSTS is set to match your domain
  • Django CACHES should use either memcached or redis backend
  • Verify Django the value of settings.DEFAULT_FROM_EMAIL
  • Static files are not served by Django
  • Avoid /admin/ for Django admin

Server configuration & checks

  • Confirm that you have multiple instances of your web application.
  • Verify the output of manage.py check --deploy directly on the production server
  • Error and exception are logged into SENTRY
  • UWSGI Harakiri timeout --harakiri=10
  • Check that logger.error(…) and logger.info(…) is sent to your logging pipeline
  • Verify that your production dashboard has information about
    • Load and balancer request per minute 2XX, 3XX, 4XX, 5XX
    • AVG and p99 response time for your web application
    • database CPU load and transaction per minute
  • Confirm that you have a regular DB backup process that you can restore.
  • Confirm that you log the slow database queries.
  • Database cluster has at least a master and 1 read replica.

Website verification

  • Confirm that your site has /robots.txt
  • Confirm that your site has /sitemap.xml
  • Confirm that your site has /favicon.ico
  • Confirm that your web stack properly sets the cache-control: and expires headers; this will significantly improve your CDN hit rate
  • Run an SSL server test
  • Run PageSpeed Insight

Each GO Live plan has its own set of constraints, so having a one size fit all strategy is impossible. However, here it is the essential items that I like to integrate every time I build a deployment plan:

  • At no point during the launch process I want to do something that would prevent me from not going live.
  • A step-by-step guide with every action and who is in charge of executing them The ideal situation is to be in a position where you have the legacy and the new stack running simultaneously under 2 domains: www.amazingsite.com and beta.amazingsite.com. At this point going live is “just” a DNS switch.

In conclusion, launching a high-traffic website can be a daunting task, but with the GO Live checklist, we hope to ease some of that stress by providing you with a comprehensive list of things to verify before. Remember to check and double-check everything before you launch, and best of luck with your website launch!

Yann Malet

About the author

Yann Malet

Yann builds and architects performant digital platforms for publishers. In 2015, Yann co-authored High-Performance Django with Peter Baumgartner. Prior to his involvement with Lincoln Loop, Yann focused on Product Lifecycle Management systems (PLM) for several large …

View Yann's profile