Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Remote Application Platform (RAP) » Update strategies for a live RAP application
Update strategies for a live RAP application [message #409737] Thu, 30 July 2009 07:58 Go to next message
Robert Enyedi is currently offline Robert EnyediFriend
Messages: 68
Registered: July 2009
Member
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 #467861 is a reply to message #409737] Mon, 03 August 2009 08:26 Go to previous messageGo to next message
Markus  rüger is currently offline Markus rügerFriend
Messages: 369
Registered: July 2009
Senior Member
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 #467872 is a reply to message #467861] Mon, 03 August 2009 09:14 Go to previous messageGo to next message
Stefan   is currently offline Stefan Friend
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 Go to previous messageGo to next message
Robert Enyedi is currently offline Robert EnyediFriend
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 Go to previous messageGo to next message
Benjamin Muskalla is currently offline Benjamin MuskallaFriend
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 Go to previous messageGo to next message
Robert Enyedi is currently offline Robert EnyediFriend
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 Go to previous messageGo to next message
Elias Volanakis is currently offline Elias VolanakisFriend
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 Go to previous message
Robert Enyedi is currently offline Robert EnyediFriend
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
Previous Topic:RAP + Nebula ?
Next Topic:NPE when using the new look and feel with intro
Goto Forum:
  


Current Time: Tue Sep 24 14:38:27 GMT 2024

Powered by FUDForum. Page generated in 0.04248 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top