The List: Django Deployment and What To Cover
2 min readFeb 15, 2017
Here is the compilation of what I will be covering in my development and deployment guides using Django for a true modern web application. The list will be updated as more suggestions for best practices are discussed. The lists are ordered such that each step builds upon the next all the way to production deployment.
Local Development
This will consist of the bulk of developing a Django application
- Creation of Django Project and Application
- Refactor Base Settings and Project Structure
- Local Development Settings
- Addition and explanation of Docker Compose for Local Development
- Postgres Server with Docker Compose
- Models: A Better Understanding
- Handling Migrations
- Authenticating Past the Default: Extending the User Model and including AllAuth (Social Media Registration and Email Verification)
- Addition of Django REST Framework and understanding API calls
- Authentication and Registration with Tokens via API calls
- Understanding Permissions with DRF
- Creating and Running Tests for Models, Views, and API
- Front End: Moving to a JavaScript Framework
- Addition of Redis
- Addition of Celery: Messages and Asynchronous Tasks
- Logging with Django
- Handling User Media Files (Uploading, Security, and Storage)
- Details on Implementing Security Measures
Production
Consist of mocking the production environment and deploying the project
- Production Settings
- Secret Values in Production
- Serving and reverse proxy with NGINX through Docker Compose
- Mock Production Environment with Docker Compose
- Continuous Integration with Travis or Jenkins
- Deploying to Amazon Web Services EC2
- SSL Encryption
- Connecting to Amazon S3 for User’s Media Files
- Database Backups (via scheduled Celery workers)
- Deploying to Amazon Web Services with Docker Swarm
- Deployment Stress Testing
Future Ideas
- Connecting Mobile Applications
- Django Fixtures
For updates on Modern Project please check out: