views:

56

answers:

0

Hi,

We are using Apache and Python, but that doesn't really matter. Basically, we have a Production version of our software that is running with clients depending on it being stable.

Meanwhile, we are coding up the never version.

Does anyone have a simple release plan they'd care to share?

I've done the following on past projects, but I'm open to improvements.

  • Use two servers. One has the Production release on it running version N. The other is a staging server holding the next release candidate version N+1.
  • When the code is ready, and time comes to release N+1, we shut both Apache systems down, copy the DB from Production to the Staging server, and migrate any DB structure.
  • Then, start up the N+1 Apache system, quick sanity check and update the DNS to point it to it.
  • The old production sits around as a back up in case there's a critical problem with the release.
  • At some point we use the new non-production server to make into the next version N+1 staging server, flip flopping into the future.

Actually, we'll probably use HAProxy instead of making DNS changes. But, we'd like to not have to add another server, so HAProxy will have to go on the servers themselves. This is very simplistic, I know. I didn't want to muddle the post down with details.

Any advice or thoughts would be great.

Thanks Gene