« Product: ScaleOut StateServer is Memcached on Steroids | Main | A Scalable, Commodity Data Center Network Architecture »

Updating distributed web applications


we've got a web application, which runs without the common standalone application servers like tomcat or jboss, rather it runs with an embedded jetty server. Now we are planing to run instances of this application on multiple machines, with a load balancer serving the requests.

The big question is: is there a common scenario on how to update these applications? Lets think of 10 instances on 10 machines (one instance per machine), where we want to update each of these applications version. The brute force approach would be, to stop all instances, update and then restart it. This is a lot of manual work ;) Another problem is down-time: so someone must only shutdown one server after another, but then there are multiple application versions around.

Can someone please provide us with a hint for this problem? Perhaps papers, tools or something like that?

Thanks a lot :)

Reader Comments (3)

You definitely don't want to do it by hand. There are tools like Puppet ( which can help automate your deployment infrastructure. If your changes are backwards compatible then you can do a rolling upgrade of one server at a time. This keeps your traffic being served during the upgrade. If your changes aren't backwards compatible then declare a maintenance window (that is, we are down for maintenance) and do the upgrade in that window. Clearly the goal is to make backward compatible changes whenever possible.

November 29, 1990 | Unregistered CommenterTodd Hoff

This sounds great, thank you. Do you have any tool for windows in mind?

November 29, 1990 | Unregistered CommenterMork0075

Sorry, I don't have any windows recommendations.

November 29, 1990 | Unregistered CommenterTodd Hoff

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>