Search |
|||||||
Rolling upgrade of SailFin demonstratedPosted by bhavanishankar on October 8, 2009 at 12:50 AM PDT
What is rolling upgrade?Rolling upgrade is a zero downtime upgrade of the SailFin cluster. It can broadly be classfied into the following types :
Goal of this write up is to give a preview of Rolling Upgrade feature in SailFin, with an example of application upgrade. To achieve any type of rolling upgrade, you need to have at least 2 instance cluster with your application deployed as high-availability (HA) enabled (i.e., you need to have your application deployed with : asadmin deploy --target <your-cluster> --availabilityenabled=true <your-app>) Example of rolling upgrade of an application in SailFin cluster:In this example, we will go through :
Before the rolling upgrade:Deploy and execute the Basic3pcc cluster sample as explained in my previous blog post by following "Instructions to deploy" and "Instructions to execute" sections. Now the call is in progress between Alice and Bob, and your (i.e., Alice's) web browser displays the call history as shown the figure below (Note that I also clicked 'Call Adam', 'Call Eve' before clicking 'Call Bob', so the 'Call History' shows those statuses as well) : ![]() Figure 1. Alice's browser showing the call call history, login time, etc [Before the Rolling Upgrade] Now, without logging out from the browser, and without disconnecting the call between Alice and Bob, let us perform the rolling upgrade of Basic3pcc sample application. Performing the Rolling Upgrade:
Thats about it, the rolling upgrade of the application is done!
Internal details (what takes place during do-rollingupgrade) : 1. Upgrading the application: In this example, I wanted to provide a better user interface than what is shown in Figure 1. So, I upgraded 3pccConvergedApp.sar by updating its .jsp files, and adding some new .css, image files, etc. 2. Disabling dynamic reconfiguration: This is required so that the upgraded application does not get distributed immediately to the cluster instead it gets re-deployed instance-by-instance as we do the rolling of each instance in the cluster. 3. Deploying the upgraded application. Because of step (2), the instances in the cluster will still be running the older version of the application, until we execute the following step. 4. Rolling an instance (this step should be performed for all the instances in the cluster one-by-one)
After the rolling upgrade:Click on "Refresh Page" link in your (i.e., Alice's) browser, and you will see a all new upgraded user interface, and with no loss of your session: ![]() Figure 2. Alice's browser showing the call call history, login time, etc [After the Rolling Upgrade] You can also see that the ongoing call between Alice and Bob also gets handled by rolled instance (instance4) gracefully. You can check that out by clicking "Hang Up" button in Alice's phone. The BYE request sent from Alice's phone gets routed to the rolled instance4 and the upgraded ConvergedApp running in instance4 will process the BYE request using the same session which was created before doing the rolling upgrade. So the call will between Alice and Bob gets ended gracefully. Summary :We demonstrated a seamless rolling upgrade of a running application in SailFin cluster with no downtime, no session/call loss.
»
Related Topics >>
Blogs Comments
Comments are listed in date ascending order (oldest first)
|
|||||||
|