[chef] Re: Simultaneous software upgrade on multiple nodes


Chronological Thread 
  • From: Andrea Campi < >
  • To: " " < >
  • Cc: " " < >
  • Subject: [chef] Re: Simultaneous software upgrade on multiple nodes
  • Date: Sat, 22 Oct 2011 10:28:03 +0200

I usually go the first way for simplicity--I keep a set of environments 
(production1..n) and assign nodes in a sensible fashion. Cookbooks are always 
pinned to a version; then I can just bump version one env at a time.

I have never needed your second approach, but it's an interesting idea, 
shouldn't be too hard to implement. But I like the total control of the first 
one.



On Oct 22, 2011, at 10:10 AM, Anton Koldaev 
< >
 wrote:

> Hi
> Let's imagine we have 50 servers with and a distributed web application and 
> we need to upgrade software on all of them. New software requires downtime 
> while upgrade.
> If upgrade is performed simultaneously on all servers the application will 
> be totally unavailable for this time. How to avoid it?
> 
> My suggestion is to use one of the following ways:
> 1. Manually run chef clients with knife for blocks of 10 servers in series.
> 2. Create some complex cookbook that search for how much servers are being 
> upgraded at this moment and not run software upgrade recipe if there are 
> already 10 servers in upgrade queue(chef attribute). At the end of upgrade 
> recipe there will be some notification to start chef run on the next 10 
> nodes if it was the last upgrade node upgrade(will search for 
> node[:upgrade][:in_process]). In this case there is no manual work - just 
> change role version and run chef-client for all of 50 nodes, all upgrade 
> logic will be in the recipes.
> 
> Which way is better? Maybe there are another great ways to perform partly 
> upgrade?
> 
> -- 
> Best regards,
> Koldaev Anton



Archive powered by MHonArc 2.6.16.

§