Guides / Django maintenance retainer: what to monitor and promise, with Django Cloud
Django maintenance retainer: what to monitor and promise, with Django Cloud
A maintenance retainer is a promise to keep a client's app healthy for a monthly fee. The danger is promising "monitoring" without saying what that means. Define the work, the response times and the limits, and the retainer is easy to price and easy to renew.
What a Django retainer usually covers
- Dependency updates: Django security releases and Python package updates, applied and deployed.
- Monitoring: someone looks at errors, slow requests and resource use, and acts on them.
- Backups: checked, and restored into a test environment now and then.
- Small changes: a fixed number of hours per month.
- Incident response: a named response time for outages.
What to actually watch
- Errors. A rise in HTTP 500 responses after a release is the clearest signal of a bad deploy.
- Memory. A steady climb means a leak, and the app will restart on its own until someone looks.
- Database connections and size. Running out of either takes the site down.
- Certificate and domain expiry. Boring, and the cause of many embarrassing outages.
- Security releases. Django publishes them on a schedule; the retainer should say how fast you apply them.
Write the response times down
Pick numbers you can keep. For example:
- Site down: acknowledged within 1 hour in business hours.
- Serious bug: acknowledged the same business day.
- Everything else: acknowledged within 2 business days.
Outside business hours is a separate, more expensive tier. Do not give it away.
Make rollbacks routine
The cheapest incident response is going back to the last release that worked. Keep deploys small and frequent, and keep a one-step rollback so that a bad release costs minutes, not an evening. Be careful with database changes: a rollback does not undo them.
Price it
Sum the hosting cost, your time for the routine work, and a buffer for incidents that happen. Show the client the hosting part separately so it stays honest when prices change.
Or skip it
Django Cloud shows logs, CPU and memory in your dashboard, and a release that fails never replaces the one that works. Every deploy is saved, so you can roll back in a click.
pip install djangocloud-cli
djangocloud deploy
Free plans are available for students, AWS Activate startups, open-source, non-profit and research projects. See how Django Cloud compares with other ways to host Django.
Django is a registered trademark of the Django Software Foundation. Django Cloud is not affiliated with or endorsed by it. Found a mistake in this guide? Tell us and we will fix it.