You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by Yan Xu <ya...@jxu.me> on 2017/10/04 18:11:28 UTC

Updating running tasks in-place

Hi Mesos users/devs,

I am curious about what use cases do folks in the community have about
updating running tasks? i.e., amending the current task without going
through the typical kill -> offer -> relaunch process.

Typically you would only want to do that for the "pets
<https://www.theregister.co.uk/2013/03/18/servers_pets_or_cattle_cern/>" in
your cluster as it adds complexity in managing the tasks' lifecycle but
nevertheless in some cases it is too expensive to relocate the app or even
relaunching it onto the same host later.

https://issues.apache.org/jira/browse/MESOS-1280 has some context about
this. In particular, people have mentioned the desire to:

   - Dynamically reconfiguring the task without restarting it.
   - Upgrading the task transparently (i.e., restarting without dropping
   connections)
   - Replacing tasks with another without going through offer cycles
   - Task resizing <https://issues.apache.org/jira/browse/MESOS-1279> (which
   is captured in another JIRA)
   - Certain metadata, e.g., labels (but I imagine not all metadata makes
   equal sense to be updatable).

What other/specific use cases are folks interested in?

Best,
Yan

Re: Updating running tasks in-place

Posted by Yan Xu <ya...@jxu.me>.
---
Jiang Yan Xu <ya...@jxu.me> | @xujyan <https://twitter.com/xujyan>

On Wed, Oct 4, 2017 at 11:50 AM, Zhitao Li <zh...@gmail.com> wrote:

> Thanks for taking the lead, Yan! Replying to your points inline:
>
> On Wed, Oct 4, 2017 at 11:11 AM, Yan Xu <ya...@jxu.me> wrote:
>
> > Hi Mesos users/devs,
> >
> > I am curious about what use cases do folks in the community have about
> > updating running tasks? i.e., amending the current task without going
> > through the typical kill -> offer -> relaunch process.
> >
> > Typically you would only want to do that for the "pets
> > <https://www.theregister.co.uk/2013/03/18/servers_pets_or_cattle_cern/>"
> > in
> > your cluster as it adds complexity in managing the tasks' lifecycle but
> > nevertheless in some cases it is too expensive to relocate the app or
> even
> > relaunching it onto the same host later.
> >
> > https://issues.apache.org/jira/browse/MESOS-1280 has some context about
> > this. In particular, people have mentioned the desire to:
> >
> >    - Dynamically reconfiguring the task without restarting it.
> >    - Upgrading the task transparently (i.e., restarting without dropping
> >    connections)
> >
>
> One possible use case we have on this is to upgrade service mesh components
> (consider something similar to haproxy): because these instances handles
> all connections on the machine, restarting without dropping connection is a
> must for them.
>
>
Yeah this is an interesting. Sometime like this
<https://medium.com/@mattklein123/envoy-hot-restart-1d16b14555b5> or
SO_REUSEPORT
like you've mentioned before right? Seems like this would require a period
of time where both processes are running inside the pod and connections are
gradually drained from the old process and established on the new process?
Have already made it work outside of Mesos or on Mesos as separate tasks?


> >    - Replacing tasks with another without going through offer cycles
> >
>
> We have concrete use case for this one.
>
>
> >    - Task resizing <https://issues.apache.org/jira/browse/MESOS-1279>
> > (which
> >    is captured in another JIRA)
>
>    - Certain metadata, e.g., labels (but I imagine not all metadata makes
> >    equal sense to be updatable).
> >
> > What other/specific use cases are folks interested in?
> >
> > Best,
> > Yan
> >
>
>
>
> --
> Cheers,
>
> Zhitao Li
>

Re: Updating running tasks in-place

Posted by Yan Xu <ya...@jxu.me>.
---
Jiang Yan Xu <ya...@jxu.me> | @xujyan <https://twitter.com/xujyan>

On Wed, Oct 4, 2017 at 11:50 AM, Zhitao Li <zh...@gmail.com> wrote:

> Thanks for taking the lead, Yan! Replying to your points inline:
>
> On Wed, Oct 4, 2017 at 11:11 AM, Yan Xu <ya...@jxu.me> wrote:
>
> > Hi Mesos users/devs,
> >
> > I am curious about what use cases do folks in the community have about
> > updating running tasks? i.e., amending the current task without going
> > through the typical kill -> offer -> relaunch process.
> >
> > Typically you would only want to do that for the "pets
> > <https://www.theregister.co.uk/2013/03/18/servers_pets_or_cattle_cern/>"
> > in
> > your cluster as it adds complexity in managing the tasks' lifecycle but
> > nevertheless in some cases it is too expensive to relocate the app or
> even
> > relaunching it onto the same host later.
> >
> > https://issues.apache.org/jira/browse/MESOS-1280 has some context about
> > this. In particular, people have mentioned the desire to:
> >
> >    - Dynamically reconfiguring the task without restarting it.
> >    - Upgrading the task transparently (i.e., restarting without dropping
> >    connections)
> >
>
> One possible use case we have on this is to upgrade service mesh components
> (consider something similar to haproxy): because these instances handles
> all connections on the machine, restarting without dropping connection is a
> must for them.
>
>
Yeah this is an interesting. Sometime like this
<https://medium.com/@mattklein123/envoy-hot-restart-1d16b14555b5> or
SO_REUSEPORT
like you've mentioned before right? Seems like this would require a period
of time where both processes are running inside the pod and connections are
gradually drained from the old process and established on the new process?
Have already made it work outside of Mesos or on Mesos as separate tasks?


> >    - Replacing tasks with another without going through offer cycles
> >
>
> We have concrete use case for this one.
>
>
> >    - Task resizing <https://issues.apache.org/jira/browse/MESOS-1279>
> > (which
> >    is captured in another JIRA)
>
>    - Certain metadata, e.g., labels (but I imagine not all metadata makes
> >    equal sense to be updatable).
> >
> > What other/specific use cases are folks interested in?
> >
> > Best,
> > Yan
> >
>
>
>
> --
> Cheers,
>
> Zhitao Li
>

Re: Updating running tasks in-place

Posted by Zhitao Li <zh...@gmail.com>.
Thanks for taking the lead, Yan! Replying to your points inline:

On Wed, Oct 4, 2017 at 11:11 AM, Yan Xu <ya...@jxu.me> wrote:

> Hi Mesos users/devs,
>
> I am curious about what use cases do folks in the community have about
> updating running tasks? i.e., amending the current task without going
> through the typical kill -> offer -> relaunch process.
>
> Typically you would only want to do that for the "pets
> <https://www.theregister.co.uk/2013/03/18/servers_pets_or_cattle_cern/>"
> in
> your cluster as it adds complexity in managing the tasks' lifecycle but
> nevertheless in some cases it is too expensive to relocate the app or even
> relaunching it onto the same host later.
>
> https://issues.apache.org/jira/browse/MESOS-1280 has some context about
> this. In particular, people have mentioned the desire to:
>
>    - Dynamically reconfiguring the task without restarting it.
>    - Upgrading the task transparently (i.e., restarting without dropping
>    connections)
>

One possible use case we have on this is to upgrade service mesh components
(consider something similar to haproxy): because these instances handles
all connections on the machine, restarting without dropping connection is a
must for them.


>    - Replacing tasks with another without going through offer cycles
>

We have concrete use case for this one.


>    - Task resizing <https://issues.apache.org/jira/browse/MESOS-1279>
> (which
>    is captured in another JIRA)

   - Certain metadata, e.g., labels (but I imagine not all metadata makes
>    equal sense to be updatable).
>
> What other/specific use cases are folks interested in?
>
> Best,
> Yan
>



-- 
Cheers,

Zhitao Li

Re: Updating running tasks in-place

Posted by Zhitao Li <zh...@gmail.com>.
Thanks for taking the lead, Yan! Replying to your points inline:

On Wed, Oct 4, 2017 at 11:11 AM, Yan Xu <ya...@jxu.me> wrote:

> Hi Mesos users/devs,
>
> I am curious about what use cases do folks in the community have about
> updating running tasks? i.e., amending the current task without going
> through the typical kill -> offer -> relaunch process.
>
> Typically you would only want to do that for the "pets
> <https://www.theregister.co.uk/2013/03/18/servers_pets_or_cattle_cern/>"
> in
> your cluster as it adds complexity in managing the tasks' lifecycle but
> nevertheless in some cases it is too expensive to relocate the app or even
> relaunching it onto the same host later.
>
> https://issues.apache.org/jira/browse/MESOS-1280 has some context about
> this. In particular, people have mentioned the desire to:
>
>    - Dynamically reconfiguring the task without restarting it.
>    - Upgrading the task transparently (i.e., restarting without dropping
>    connections)
>

One possible use case we have on this is to upgrade service mesh components
(consider something similar to haproxy): because these instances handles
all connections on the machine, restarting without dropping connection is a
must for them.


>    - Replacing tasks with another without going through offer cycles
>

We have concrete use case for this one.


>    - Task resizing <https://issues.apache.org/jira/browse/MESOS-1279>
> (which
>    is captured in another JIRA)

   - Certain metadata, e.g., labels (but I imagine not all metadata makes
>    equal sense to be updatable).
>
> What other/specific use cases are folks interested in?
>
> Best,
> Yan
>



-- 
Cheers,

Zhitao Li