We devoloping a community based site with Django. Since we want to do a rapid developement process we want to be able to do (multiple) daily updates of the live site.
Before we roll out an update we want to test it using real world data. For this we need a second, semi-live site, which runs basically in the same environment and has access to the real data but cannot take down the live site.
How to accomplish such a deployment? Has anyone experience with this and can point to some often made mistakes?
[I'm giving my planned appoche as an answer, so other can vote on this]
There will be to instaces of my ste running: One live system, the users are using and one test system only the developers are using. The test systems runs one the same host (for now, maybe we will split later to multiple hosts) under the same domain, just on a different port and is protected against access from others others. The database is backed up every night (of course). After the normal backup is done, the test-database is wiped and filled with the data that was just fetched from the live-database.
This way you have read and write access to real world data from the test system but you can't do any damage.