We have an asp.net/MVC2 web app hosted on Amazon windows IIS7 that I would like to deploy updates to with as little downtime as possible.
Building on IIS ARR 3-site setup as described here http://serverfault.com/questions/124274/zero-downtime-uploads-rollback-in-iis I would like to come up with a way to deploy my database updates (MySQL on Amazon RDS) in a way that minimizes or eliminates downtime.
Is anyone doing anything like this? The app must be deployed against a db of the right schema version and we have a system that manages those changes during a rollout.
I can imagine using ARR to gracefully drain the live site and bring up the newly-provisioned site while simultaneously running the db migrations and having the new app hold processing of web requests until the db changes were done but that seems very hard to coordinate timing on and even harder to test, not to mention the issue of client timeouts if the process takes longer than the browser wants to wait.