1π
In order to have a fully scalable architecture, a good approach is to separate computation / serving, from file storage, and both from data storage. Going part by part:
-
file storage β Google Cloud Storage β by storing common service files in a GCS bucket, you get a central repository that is both highly-redundant, and scalable;
-
data storage β Google Cloud SQL β gives you a highly reliable, scalable MySQL-like database back-end, which can be resized at will to accommodate increasing database usage;
-
front-ends β GCE instance group β template-generated web / computation front-ends, setting up a resource pool into which a forwarding rule (load balancer) distributes incoming connections.
In a nutshell, this is one of the most adaptable set-ups I can think of, while you keep control over every aspect of the service and underlying infrastructure.
0π
A simple approach would be to run a Python app on Google App Engine, which will auto-scale your instances (both up and down) and it supports Django, as mentioned by @spirulence in the comments.
Here are some starting points:
- Django and Cloud SQL support on App Engine
- Running Pure Django Projects on Google App Engine
- Third-party Libraries in Python 2.7
The last link shows which versions of Django are currently supported.
- [Answer]-How to render django form into html (not in template)
- [Answer]-How to get all 'Post' objects where 'User' has replied?
- [Answer]-Name of view inside decorator_from_middleware class
- [Answer]-How to show a custom validation error for a DateTimeField in the Django admin?