The best deployment is not the one with the most clever machinery. It is the one the team understands at 4:45 on a Friday afternoon.
My preferred release script has three properties: it is explicit, repeatable, and safe to run twice.
set -euo pipefail
python manage.py migrate --noinput
python manage.py collectstatic --noinput
python manage.py check --deploy
sudo systemctl reload shipbio
That is not sophisticated—and that is exactly the point.
Make failure legible
A release should stop on the first failed assumption. Health checks should describe what is broken, not merely return red. Rollback instructions should live beside the release instructions.
Novelty belongs in the product. Operations should be calm, observable, and almost boring.
No comments yet. Start the conversation with something worth discussing.