Home » Eclipse Projects » Remote Application Platform (RAP) » Update strategies for a live RAP application
| |
Re: Update strategies for a live RAP application [message #467872 is a reply to message #467861] |
Mon, 03 August 2009 09:14 |
Stefan Messages: 316 Registered: July 2009 |
Senior Member |
|
|
Hi,
the problem is that all this fancy dynamic stuff that comes with OSGi
doesn't have a notion of sessions. If you have a multi-server
environment with a session-based loadbalancer in front you can wait for
all sessions on one server to terminate and delegate new ones to other
servers. Then you can use the OSGi console to update specific bundles of
your running app (using "install") - however, these changes are lost if
the webapp (war file) is restarted or redeployed.
Frankly speaking, although its OSGi, comfortable partial updates on the
server side are not really possible (yet) afaik.
Regards,
Stefan.
Markus Krüger schrieb:
> Same question here. For now we always remove the WAR file and add the new
> one.
> Some live update would be more comfortable, best without shutting down the
> app.
>
> "Robert Enyedi" <robert.enyedi@numiton.com> schrieb im Newsbeitrag
> news:h4rjqh$ori$1@build.eclipse.org...
>> Hello everyone,
>>
>> I was thinking about strategies for updating a live RAP application with
>> minimum downtime.
>>
>> The most simple but also the most downtime intensive way is the
>> straightforward shutdown/delete/copy new version.
>>
>> It seems to me that the best alternative to this is to use an update site.
>> I don't know yet if it's technically possible, but if you have some
>> experience with this I would greatly appreciate some pointers.
>>
>> I know that this is actually a server-side Equinox question, but I think
>> that RAP applications are the largest deployment base for this technology.
>> But then again I could be wrong.
>>
>> Thanks,
>> Robert
>
>
|
|
|
Re: Update strategies for a live RAP application [message #467878 is a reply to message #467872] |
Mon, 03 August 2009 09:35 |
Robert Enyedi Messages: 68 Registered: July 2009 |
Member |
|
|
Stefan and Markus,
Thank you for the info. It's a difficult topic, just as it seemed.
I can agree that WAR redeployment is the best solution, at least for now.
Regards,
Robert
Stefan Roeck wrote:
> Hi,
>
> the problem is that all this fancy dynamic stuff that comes with OSGi
> doesn't have a notion of sessions. If you have a multi-server
> environment with a session-based loadbalancer in front you can wait for
> all sessions on one server to terminate and delegate new ones to other
> servers. Then you can use the OSGi console to update specific bundles of
> your running app (using "install") - however, these changes are lost if
> the webapp (war file) is restarted or redeployed.
>
> Frankly speaking, although its OSGi, comfortable partial updates on the
> server side are not really possible (yet) afaik.
>
> Regards,
> Stefan.
>
>
>
>
> Markus Krüger schrieb:
>> Same question here. For now we always remove the WAR file and add the
>> new one.
>> Some live update would be more comfortable, best without shutting down
>> the app.
>>
>> "Robert Enyedi" <robert.enyedi@numiton.com> schrieb im Newsbeitrag
>> news:h4rjqh$ori$1@build.eclipse.org...
>>> Hello everyone,
>>>
>>> I was thinking about strategies for updating a live RAP application
>>> with minimum downtime.
>>>
>>> The most simple but also the most downtime intensive way is the
>>> straightforward shutdown/delete/copy new version.
>>>
>>> It seems to me that the best alternative to this is to use an update
>>> site. I don't know yet if it's technically possible, but if you have
>>> some experience with this I would greatly appreciate some pointers.
>>>
>>> I know that this is actually a server-side Equinox question, but I
>>> think that RAP applications are the largest deployment base for this
>>> technology. But then again I could be wrong.
>>>
>>> Thanks,
>>> Robert
>>
>>
|
|
|
Re: Update strategies for a live RAP application [message #479180 is a reply to message #467878] |
Mon, 10 August 2009 07:34 |
Benjamin Muskalla Messages: 338 Registered: July 2009 |
Senior Member |
|
|
Hi Robert,
just as a side-note: Updating the bundles during runtime is technically
possible. Having the Equinox extension registry in place this gets a
little tricky as you can only have one active bundle as bundles with
extensions need to be declared as singletons. Having the workbench in
place adds another small issue that all extensions of new bundles in the
system will automatically be pushed into the currently running user
sessions. That's maybe not what you want during a hot-update scenario.
Just my 2 cents regarding updating RAP applications: it's possible but
I'd rather go with the clean way.
There was a talk at EclipseCon about server-side deployment with p2 (
see http://www.eclipsecon.org/2009/sessions?id=423 ). I'll ping the guys
to put the slides online for the interested parties.
Regards,
Ben
Robert Enyedi wrote:
> Stefan and Markus,
>
> Thank you for the info. It's a difficult topic, just as it seemed.
>
> I can agree that WAR redeployment is the best solution, at least for now.
>
> Regards,
> Robert
>
> Stefan Roeck wrote:
>> Hi,
>>
>> the problem is that all this fancy dynamic stuff that comes with OSGi
>> doesn't have a notion of sessions. If you have a multi-server
>> environment with a session-based loadbalancer in front you can wait
>> for all sessions on one server to terminate and delegate new ones to
>> other servers. Then you can use the OSGi console to update specific
>> bundles of your running app (using "install") - however, these changes
>> are lost if the webapp (war file) is restarted or redeployed.
>>
>> Frankly speaking, although its OSGi, comfortable partial updates on
>> the server side are not really possible (yet) afaik.
>>
>> Regards,
>> Stefan.
>>
>>
>>
>>
>> Markus Krüger schrieb:
>>> Same question here. For now we always remove the WAR file and add the
>>> new one.
>>> Some live update would be more comfortable, best without shutting
>>> down the app.
>>>
>>> "Robert Enyedi" <robert.enyedi@numiton.com> schrieb im Newsbeitrag
>>> news:h4rjqh$ori$1@build.eclipse.org...
>>>> Hello everyone,
>>>>
>>>> I was thinking about strategies for updating a live RAP application
>>>> with minimum downtime.
>>>>
>>>> The most simple but also the most downtime intensive way is the
>>>> straightforward shutdown/delete/copy new version.
>>>>
>>>> It seems to me that the best alternative to this is to use an update
>>>> site. I don't know yet if it's technically possible, but if you have
>>>> some experience with this I would greatly appreciate some pointers.
>>>>
>>>> I know that this is actually a server-side Equinox question, but I
>>>> think that RAP applications are the largest deployment base for this
>>>> technology. But then again I could be wrong.
>>>>
>>>> Thanks,
>>>> Robert
>>>
>>>
|
|
|
Re: Update strategies for a live RAP application [message #479188 is a reply to message #479180] |
Mon, 10 August 2009 08:07 |
Robert Enyedi Messages: 68 Registered: July 2009 |
Member |
|
|
Hi Benjamin,
Hot-update sounds risky to me too. I was rather thinking about
installing the updates and triggering an Equinox restart. The tricky bit
is when to restart (with and without clustering): ideally when the
server has no active sessions, but this state might be very difficult to
achieve and predict.
Given that WAR deployment works well, I suppose that server-side Equinox
has lots of other more pressing issues to solve.
Nevertheless, I think many of us would like to see the slides of the
server-side p2 deployment talk. Thanks for looking into this.
Regards,
Robert
Benjamin Muskalla wrote:
> Hi Robert,
>
> just as a side-note: Updating the bundles during runtime is technically
> possible. Having the Equinox extension registry in place this gets a
> little tricky as you can only have one active bundle as bundles with
> extensions need to be declared as singletons. Having the workbench in
> place adds another small issue that all extensions of new bundles in the
> system will automatically be pushed into the currently running user
> sessions. That's maybe not what you want during a hot-update scenario.
>
> Just my 2 cents regarding updating RAP applications: it's possible but
> I'd rather go with the clean way.
> There was a talk at EclipseCon about server-side deployment with p2 (
> see http://www.eclipsecon.org/2009/sessions?id=423 ). I'll ping the guys
> to put the slides online for the interested parties.
>
> Regards,
> Ben
>
> Robert Enyedi wrote:
>> Stefan and Markus,
>>
>> Thank you for the info. It's a difficult topic, just as it seemed.
>>
>> I can agree that WAR redeployment is the best solution, at least for now.
>>
>> Regards,
>> Robert
>>
>> Stefan Roeck wrote:
>>> Hi,
>>>
>>> the problem is that all this fancy dynamic stuff that comes with OSGi
>>> doesn't have a notion of sessions. If you have a multi-server
>>> environment with a session-based loadbalancer in front you can wait
>>> for all sessions on one server to terminate and delegate new ones to
>>> other servers. Then you can use the OSGi console to update specific
>>> bundles of your running app (using "install") - however, these
>>> changes are lost if the webapp (war file) is restarted or redeployed.
>>>
>>> Frankly speaking, although its OSGi, comfortable partial updates on
>>> the server side are not really possible (yet) afaik.
>>>
>>> Regards,
>>> Stefan.
>>>
>>>
>>>
>>>
>>> Markus Krüger schrieb:
>>>> Same question here. For now we always remove the WAR file and add
>>>> the new one.
>>>> Some live update would be more comfortable, best without shutting
>>>> down the app.
>>>>
>>>> "Robert Enyedi" <robert.enyedi@numiton.com> schrieb im Newsbeitrag
>>>> news:h4rjqh$ori$1@build.eclipse.org...
>>>>> Hello everyone,
>>>>>
>>>>> I was thinking about strategies for updating a live RAP application
>>>>> with minimum downtime.
>>>>>
>>>>> The most simple but also the most downtime intensive way is the
>>>>> straightforward shutdown/delete/copy new version.
>>>>>
>>>>> It seems to me that the best alternative to this is to use an
>>>>> update site. I don't know yet if it's technically possible, but if
>>>>> you have some experience with this I would greatly appreciate some
>>>>> pointers.
>>>>>
>>>>> I know that this is actually a server-side Equinox question, but I
>>>>> think that RAP applications are the largest deployment base for
>>>>> this technology. But then again I could be wrong.
>>>>>
>>>>> Thanks,
>>>>> Robert
>>>>
>>>>
|
|
|
Re: Update strategies for a live RAP application [message #479910 is a reply to message #409737] |
Thu, 13 August 2009 03:20 |
Elias Volanakis Messages: 43 Registered: July 2009 |
Member |
|
|
Hi Robert,
here are two ideas for updating with minimal downtime. Assuming you have
two servers A and B and round robing load balancing:
Set up load balancing so that all new users are directed to A
Wait until all sessions on B time out
Update B (since there are no users on B, they don't notice downtime)
Set up load balancing so that all new users are directed to B
Wait until all session on A time out
Update A (since there are no users on A, they don't notice downtime)
Set up load balancing to use A and B
Or a variation of this, if you have a spare server:
Update spare server
Set up load balancing so that all new users are directed to spare server
Wait until all sessions on A time out
A becomes the new spare server
Hope this helps,
Elias.
Robert Enyedi wrote:
> Hello everyone,
>
> I was thinking about strategies for updating a live RAP application with
> minimum downtime.
>
> The most simple but also the most downtime intensive way is the
> straightforward shutdown/delete/copy new version.
>
> It seems to me that the best alternative to this is to use an update
> site. I don't know yet if it's technically possible, but if you have
> some experience with this I would greatly appreciate some pointers.
>
> I know that this is actually a server-side Equinox question, but I think
> that RAP applications are the largest deployment base for this
> technology. But then again I could be wrong.
>
> Thanks,
> Robert
|
|
|
Re: Update strategies for a live RAP application [message #479955 is a reply to message #479910] |
Thu, 13 August 2009 08:44 |
Robert Enyedi Messages: 68 Registered: July 2009 |
Member |
|
|
Hi Elias,
Thanks for the tips. The spare server solution looks the cleanest to me,
especially if one is using a virtualized hosting like Amazon EC2.
Regards,
Robert
Elias Volanakis wrote:
> Hi Robert,
>
> here are two ideas for updating with minimal downtime. Assuming you have
> two servers A and B and round robing load balancing:
>
> Set up load balancing so that all new users are directed to A
> Wait until all sessions on B time out
> Update B (since there are no users on B, they don't notice downtime)
> Set up load balancing so that all new users are directed to B
> Wait until all session on A time out
> Update A (since there are no users on A, they don't notice downtime)
> Set up load balancing to use A and B
>
> Or a variation of this, if you have a spare server:
>
> Update spare server
> Set up load balancing so that all new users are directed to spare server
> Wait until all sessions on A time out
> A becomes the new spare server
>
> Hope this helps,
> Elias.
>
> Robert Enyedi wrote:
>> Hello everyone,
>>
>> I was thinking about strategies for updating a live RAP application
>> with minimum downtime.
>>
>> The most simple but also the most downtime intensive way is the
>> straightforward shutdown/delete/copy new version.
>>
>> It seems to me that the best alternative to this is to use an update
>> site. I don't know yet if it's technically possible, but if you have
>> some experience with this I would greatly appreciate some pointers.
>>
>> I know that this is actually a server-side Equinox question, but I
>> think that RAP applications are the largest deployment base for this
>> technology. But then again I could be wrong.
>>
>> Thanks,
>> Robert
|
|
|
Goto Forum:
Current Time: Tue Sep 24 14:38:27 GMT 2024
Powered by FUDForum. Page generated in 0.04248 seconds
|