We are considering adding another server to development life cycle, so that we can test a deployment.
Some background: We build web applications, using ASP.NET and SQL Server 2005. There are 4 developers in the team and tend to release once every 2 weeks.
This is our current method of deployment: We develop on a Dev server and as each dev case is complete it is added to the Staging server, where it is tested. When we get to the release date, all the cases in a release are deployed from the Staging server to the Live server.
But the problem is that only time when we do the full deployment is when we deploy to Live on the release date – all the deployment to Staging is done case by case. And this has meant that we have been making mistakes or skipping out steps in the live deployment (e.g. forgetting to lock users out during the deployment). What we need is a way to do a dummy run of the live deployment.
What we’re considering is adding another server to the release process, so…
Current server set-up: Dev server -> Staging server -> Live server
Potential server set-up: Dev server -> Staging server -> Beta server (is that the correct name?) -> Live server
That way we could practice each full deployment on the Beta server and draw up a set of steps for the live deployment – and hopefully our live deployments will be smoother. We also plan to give clients access to the Beta server to test things for themselves.
Please let me know what you think. Do you do this or is there another way to test our deployment before the release date?