I am currently approaching stages to move my first large-scale application out of development.
I have talked with some CTOs who know what they're talking about, and I have been advised to do the following:
Break up launching phases into a 4 step process
I. Launch the single structured app. assets/ and db.sqlite3 inside of the application, all on one server.
II. Move the database onto its own server, use a CDN (like aws-s3) to hold the assets/
III. Set up load balancing
IV. Use a NoSQL solution rather than a rdbms.
So! The main question I have concerns item 2:
Do I have to set up an environment to run sqlite3, creating a user, and then giving that authentication specifically to my django application?
I'm familiar with having the assets stored externally, but I've never had to move out the database, excluding non-django solutions that implemented parse.
tldr; I'm an amateur professional developer and I've never built anything that was ever intended to have over 1,000 users, and am curious what the process flow looks like for creating a django application that manages to successfully reduce the server load by using another server.
Where my thinking may be flawed: I don't understand how this distributes the load, since to me it seems that the application would have to make farther requests to communicate with the database. Is it actually just acting as a middleman who passes messages back and forth between the client and server?
Planning to use apache for hosting, likely on a ec2 ubuntu 14.04 instance (multiple?).