It seems like an 'anti-pattern' (for lack of a better term) to attempt to
force locality on a bunch of dependency services launched through Marathon.
I thought the whole idea of Mesos (and Marathon) was to treat the data
center as one giant computer in which it fundamentally should not matter
where your services are launched. Although I obviously don't know the
details of the use-case and may be grossly misunderstanding what you are
trying to do but to me it sounds like you are attempting to shoehorn a
non-distributed application into a distributed architecture. If this is the
case, you may want to revisit your implementation and try to decouple the
application's requirement of node-level dependency locality. It is also a
good opportunity to possibly redesign a monolithic application into a
distributed one.

On Tue, Jan 6, 2015 at 12:53 PM, David Greenberg <[email protected]>
wrote:

> Tom is absolutely correct--you also need to ensure that your "special
> tasks" run as a user which is assigned a role w/ a special reservation to
> ensure they can always launch.
>
> On Tue, Jan 6, 2015 at 2:38 PM, Tom Arnfeld <[email protected]> wrote:
>
>> I'm not sure if I'm fully aware of the use case but if you use a
>> different framework (aka Marathon) to launch these services, should the
>> service die and need to be re-launched (or even the slave restarts) could
>> you not be in a position where another framework has consumed all resources
>> on that slave and your "core" tasks cannot launch?
>>
>> Maybe if you're just using Marathon it might provide a sort of priority
>> to decide who gets what resources first, but with multiple frameworks you
>> might need to look into the slave resource reservations and framework roles.
>>
>> FWIW We're configuring these things out of band (via Chef to be specific).
>>
>> Hope this helps!
>>
>> --
>>
>> Tom Arnfeld
>> Developer // DueDil
>>
>> (+44) 7525940046
>> 25 Christopher Street, London, EC2A 2BS
>>
>>
>> On Tue, Jan 6, 2015 at 9:05 AM, Itamar Ostricher <[email protected]>
>> wrote:
>>
>>> Hi,
>>>
>>> I was wondering if the best approach to do what I want is to use mesos
>>> itself, or other Linux system tools.
>>>
>>> There are a bunch of services that our framework assumes are running on
>>> all participating slaves (e.g. logging service, data-bridge service, etc.).
>>> One approach to do that is in the infrastructure level, making sure that
>>> slave nodes are configured correctly (e.g. with pre-configured images, or
>>> other provisioning systems).
>>> Another approach would be to use mesos itself (maybe with something like
>>> Marathon) to schedule these services on all slave nodes.
>>>
>>> The advantage of the mesos-based approach is that it becomes trivial to
>>> account for the resource consumption of said services (e.g. make sure
>>> there's always at least 1 CPU dedicated to this).
>>> I'm not sure how to achieve something similar with the system-approach.
>>>
>>> Anyone has any insights on this?
>>>
>>
>>
>

Reply via email to