Deployment
2023

Migrating a Django Project from a GPU to a Convenience Image on CircleCI
Recently we learned that as of September 30th, 2023 several linux
images will be
deprecated,
including the one we used, ubuntu-2004:202111-02
. Therefore, after
September 30th, our pipelines would have failed. To avoid this, we
switched several machines in our Django project from Ubuntu GPU images
to convenience images; This writing details that switch.
2021

How to Simplify Django Migrations and Deployment
When removing fields from Django models, or adding non-nullable fields, it can be hard to avoid a mismatch between code running on some servers and the database in use.
2017

5 Ways to Deploy Your Python Web App in 2017 (PyCon 2017 Must-See Talk 4/6)
Part four of six in the 2017 edition of our annual PyCon Must-See Series, highlighting the talks our staff especially loved at PyCon. While there were many great talks, this is our team’s shortlist.

Hosting Django Sites on Amazon Elastic Beanstalk
Introduction
Amazon Web Services (AWS)' Elastic Beanstalk is a service that bundles up a number of their lower-level services to manage many details for you when deploying a site. We particularly like it for deploys and autoscaling.
2015

AWS load balancers with Django
We recently had occasion to reconfigure some of our existing servers to use Amazon Web Services Elastic Load Balancers in front of them. Setting this up isn’t hard, exactly, but there are a lot of moving parts that have to mesh correctly before things start to work, so I thought I’d write down what we did.
2013

AngularJS to PyGame: Caktus’ 2nd ShipIt Day
We had our 2nd ShipIt Day at Caktus last week. ShipIt (coined by Atlassian), in case you don’t know, is an exercise that allows your team to work on alternative projects in a 24-hour hackathon. We brainstorm ideas related to Caktus, break into small groups and try to build a project by the end of the day on Friday. It’s a lot of fun and provides an opportunity to work on internal tools, try something new and collaborate together. \
2011

Testing Web Server Configurations with Fabric and ApacheBench
Load testing a site with ApacheBench is fairly straight forward. Typically you'd just SSH to a machine on the same network as the one you want to test, and run a command like this:

Managing Client Expectations Amid Shifting Deadlines
Estimating development time is notoriously difficult, and when moving deadlines are added to the mix, shift happens.
Estimating development time for clients is difficult enough without having to second guess deadlines. Yet despite the best efforts, if your company has a healthy deal flow, it’s almost inevitable that you’ll eventually have a project deadline shift.
2010

Basic Django deployment with virtualenv, fabric, pip and rsync
Deployment is usually a tedious process with lots of tinkering until everything is setup just right. We deploy quite a few Django sites on a regular basis here at Caktus and still do tinkering, but we've attempted to functionalize some of the core tasks to ease the process. I've put together a basic example that outlines local and remote environment setup. This is a simplified example and just one of many ways to deploy a Django project (I learned a lot from Jacob Kaplan-Moss' django-deployment-workshop), so I encourage you to browse around the Django community to learn more. The entire source for this example project can be found in the caktus-deployment Bitbucket repository.