Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Jay Lau
Thanks Sylvain, we did not work out the API requirement till now but I
think the requirement should be similar with nova: we need
select_destination to select the best target host based on filters and
weights.

There are also some discussions here
https://blueprints.launchpad.net/magnum/+spec/magnum-scheduler-for-docker

Thanks!

2015-02-09 16:22 GMT+08:00 Sylvain Bauza sba...@redhat.com:

  Hi Magnum team,


 Le 07/02/2015 19:24, Steven Dake (stdake) a écrit :



   From: Eric Windisch e...@windisch.us
 Reply-To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Date: Saturday, February 7, 2015 at 10:09 AM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum


 1) Cherry pick scheduler code from Nova, which already has a working a
 filter scheduler design.


 The Gantt team explored that option by the Icehouse cycle and it failed
 with a lot of problems. I won't list all of those, but I'll just explain
 that we discovered how the Scheduler and the Nova compute manager were
 tighly coupled, which was meaning that a repository fork was really
 difficult to do without reducing the tech debt.

 That said, our concerns were far different from the Magnum team : it was
 about having feature parity and replacing the current Nova scheduler, while
 your team is just saying that they want to have something about containers.


 2) Integrate swarmd to leverage its scheduler[2].


  I see #2 as not an alternative but possibly an also. Swarm uses the
 Docker API, although they're only about 75% compatible at the moment.
 Ideally, the Docker backend would work with both single docker hosts and
 clusters of Docker machines powered by Swarm. It would be nice, however, if
 scheduler hints could be passed from Magnum to Swarm.

  Regards,
 Eric Windisch


  Adrian  Eric,

  I would prefer to keep things simple and just integrate directly with
 swarm and leave out any cherry-picking from Nova. It would be better to
 integrate scheduling hints into Swarm, but I’m sure the swarm upstream is
 busy with requests and this may be difficult to achieve.


 I don't want to give my opinion about which option you should take as I
 don't really know your needs. If I understand correctly, this is about
 having a scheduler providing affinity rules for containers. Do you have a
 document explaining which interfaces you're looking for, which kind of APIs
 you're wanting or what's missing with the current Nova scheduler ?

 MHO is that the technology shouldn't drive your decision : whatever the
 backend is (swarmd or an inherited nova scheduler), your interfaces should
 be the same.

 -Sylvain


   Regards
 -steve



 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: 
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribehttp://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 
Thanks,

Jay Lau (Guangya Liu)
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Steven Dake (stdake)


From: Jay Lau jay.lau@gmail.commailto:jay.lau@gmail.com
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Monday, February 9, 2015 at 11:31 PM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum

Steve,

So you mean we should focus on docker and k8s scheduler? I was a bit confused, 
why do we need to care k8s? As the k8s cluster was created by heat and once the 
k8s was created, the k8s has its own scheduler for creating pods/service/rcs.

So seems we only need to care scheduler for native docker and ironic bay, 
comments?

Ya scheduler only matters for native docker.  Ironic bay can be k8s or 
docker+swarm or something similar.

But yup, I understand your point.


Thanks!

2015-02-10 12:32 GMT+08:00 Steven Dake (stdake) 
std...@cisco.commailto:std...@cisco.com:


From: Joe Gordon joe.gord...@gmail.commailto:joe.gord...@gmail.com
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Monday, February 9, 2015 at 6:41 PM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum



On Mon, Feb 9, 2015 at 6:00 AM, Steven Dake (stdake) 
std...@cisco.commailto:std...@cisco.com wrote:


On 2/9/15, 3:02 AM, Thierry Carrez 
thie...@openstack.orgmailto:thie...@openstack.org wrote:

Adrian Otto wrote:
 [...]
 We have multiple options for solving this challenge. Here are a few:

 1) Cherry pick scheduler code from Nova, which already has a working a
filter scheduler design.
 2) Integrate swarmd to leverage its scheduler[2].
 3) Wait for the Gantt, when Nova Scheduler to be moved out of Nova.
This is expected to happen about a year from now, possibly sooner.
 4) Write our own filter scheduler, inspired by Nova.

I haven't looked enough into Swarm to answer that question myself, but
how much would #2 tie Magnum to Docker containers ?

There is value for Magnum to support other container engines / formats
(think Rocket/Appc) in the long run, so we should avoid early design
choices that would prevent such support in the future.

Thierry,
Magnum has an object type of a bay which represents the underlying cluster
architecture used.  This could be kubernetes, raw docker, swarmd, or some
future invention.  This way Magnum can grow independently of the
underlying technology and provide a satisfactory user experience dealing
with the chaos that is the container development world :)

While I don't disagree with anything said here, this does sound a lot like 
https://xkcd.com/927/


Andrew had suggested offering a unified standard user experience and API.  I 
think that matches the 927 comic pretty well.  I think we should offer each 
type of system using APIs that are similar in nature but that offer the native 
features of the system.  In other words, we will offer integration across the 
various container landscape with OpenStack.

We should strive to be conservative and pragmatic in our systems support and 
only support container schedulers and container managers that have become 
strongly emergent systems.  At this point that is docker and kubernetes.  Mesos 
might fit that definition as well.  Swarmd and rocket are not yet strongly 
emergent, but they show promise of becoming so.  As a result, they are clearly 
systems we should be thinking about for our roadmap.  All of these systems 
present very similar operational models.

At some point competition will choke off new system design placing an upper 
bound on the amount of systems we have to deal with.

Regards
-steve



We will absolutely support relevant container technology, likely through
new Bay formats (which are really just heat templates).

Regards
-steve


--
Thierry Carrez (ttx)

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org?subject:unsubscribehttp://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org?subject:unsubscribehttp://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org

Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Jay Lau
Thanks Steve, just want to discuss more for this. Then per Andrew's
comments, we need a generic scheduling interface, but if our focus is
native docker, then does this still needed? Thanks!

2015-02-10 14:52 GMT+08:00 Steven Dake (stdake) std...@cisco.com:



   From: Jay Lau jay.lau@gmail.com
 Reply-To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Date: Monday, February 9, 2015 at 11:31 PM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum

Steve,

  So you mean we should focus on docker and k8s scheduler? I was a bit
 confused, why do we need to care k8s? As the k8s cluster was created by
 heat and once the k8s was created, the k8s has its own scheduler for
 creating pods/service/rcs.

  So seems we only need to care scheduler for native docker and ironic bay,
 comments?


  Ya scheduler only matters for native docker.  Ironic bay can be k8s or
 docker+swarm or something similar.

  But yup, I understand your point.


 Thanks!

 2015-02-10 12:32 GMT+08:00 Steven Dake (stdake) std...@cisco.com:



   From: Joe Gordon joe.gord...@gmail.com
 Reply-To: OpenStack Development Mailing List (not for usage questions)
 openstack-dev@lists.openstack.org
 Date: Monday, February 9, 2015 at 6:41 PM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum



  On Mon, Feb 9, 2015 at 6:00 AM, Steven Dake (stdake) std...@cisco.com
 wrote:



 On 2/9/15, 3:02 AM, Thierry Carrez thie...@openstack.org wrote:

 Adrian Otto wrote:
  [...]
  We have multiple options for solving this challenge. Here are a few:
 
  1) Cherry pick scheduler code from Nova, which already has a working a
 filter scheduler design.
  2) Integrate swarmd to leverage its scheduler[2].
  3) Wait for the Gantt, when Nova Scheduler to be moved out of Nova.
 This is expected to happen about a year from now, possibly sooner.
  4) Write our own filter scheduler, inspired by Nova.
 
 I haven't looked enough into Swarm to answer that question myself, but
 how much would #2 tie Magnum to Docker containers ?
 
 There is value for Magnum to support other container engines / formats
 (think Rocket/Appc) in the long run, so we should avoid early design
 choices that would prevent such support in the future.

 Thierry,
 Magnum has an object type of a bay which represents the underlying
 cluster
 architecture used.  This could be kubernetes, raw docker, swarmd, or some
 future invention.  This way Magnum can grow independently of the
 underlying technology and provide a satisfactory user experience dealing
 with the chaos that is the container development world :)


  While I don't disagree with anything said here, this does sound a lot
 like https://xkcd.com/927/



 Andrew had suggested offering a unified standard user experience and
 API.  I think that matches the 927 comic pretty well.  I think we should
 offer each type of system using APIs that are similar in nature but that
 offer the native features of the system.  In other words, we will offer
 integration across the various container landscape with OpenStack.

  We should strive to be conservative and pragmatic in our systems
 support and only support container schedulers and container managers that
 have become strongly emergent systems.  At this point that is docker and
 kubernetes.  Mesos might fit that definition as well.  Swarmd and rocket
 are not yet strongly emergent, but they show promise of becoming so.  As a
 result, they are clearly systems we should be thinking about for our
 roadmap.  All of these systems present very similar operational models.

  At some point competition will choke off new system design placing an
 upper bound on the amount of systems we have to deal with.

  Regards
 -steve



 We will absolutely support relevant container technology, likely through
 new Bay formats (which are really just heat templates).

 Regards
 -steve

 
 --
 Thierry Carrez (ttx)
 

 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe:
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe:
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe:
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Steven Dake (stdake)


From: Andrew Melton 
andrew.mel...@rackspace.commailto:andrew.mel...@rackspace.com
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Monday, February 9, 2015 at 10:38 AM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum

I think Sylvain is getting at an important point. Magnum is trying to be as 
agnostic as possible when it comes to selecting a backend. Because of that, I 
think the biggest benefit to Magnum would be a generic scheduling interface 
that each pod type would implement. A pod type with a backend providing 
scheduling could implement a thin scheduler that simply translates the generic 
requests into something the backend can understand. And a pod type requiring 
outside scheduling could implement something more heavy.

If we are careful to keep the heavy scheduling generic enough to be shared 
between backends requiring it, we could hopefully swap in an implementation 
using Gantt once that is ready.

Great mid-cycle topic discussion topic.  Can you add it to the planning 
etherpad?

Thanks
-steve

--Andrew


From: Jay Lau [jay.lau@gmail.commailto:jay.lau@gmail.com]
Sent: Monday, February 09, 2015 4:36 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum

Thanks Sylvain, we did not work out the API requirement till now but I think 
the requirement should be similar with nova: we need select_destination to 
select the best target host based on filters and weights.

There are also some discussions here 
https://blueprints.launchpad.net/magnum/+spec/magnum-scheduler-for-docker

Thanks!

2015-02-09 16:22 GMT+08:00 Sylvain Bauza 
sba...@redhat.commailto:sba...@redhat.com:
Hi Magnum team,


Le 07/02/2015 19:24, Steven Dake (stdake) a écrit :


From: Eric Windisch e...@windisch.usmailto:e...@windisch.us
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Saturday, February 7, 2015 at 10:09 AM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum


1) Cherry pick scheduler code from Nova, which already has a working a filter 
scheduler design.

The Gantt team explored that option by the Icehouse cycle and it failed with a 
lot of problems. I won't list all of those, but I'll just explain that we 
discovered how the Scheduler and the Nova compute manager were tighly coupled, 
which was meaning that a repository fork was really difficult to do without 
reducing the tech debt.

That said, our concerns were far different from the Magnum team : it was about 
having feature parity and replacing the current Nova scheduler, while your team 
is just saying that they want to have something about containers.


2) Integrate swarmd to leverage its scheduler[2].

I see #2 as not an alternative but possibly an also. Swarm uses the Docker 
API, although they're only about 75% compatible at the moment. Ideally, the 
Docker backend would work with both single docker hosts and clusters of Docker 
machines powered by Swarm. It would be nice, however, if scheduler hints could 
be passed from Magnum to Swarm.

Regards,
Eric Windisch

Adrian  Eric,

I would prefer to keep things simple and just integrate directly with swarm and 
leave out any cherry-picking from Nova. It would be better to integrate 
scheduling hints into Swarm, but I’m sure the swarm upstream is busy with 
requests and this may be difficult to achieve.


I don't want to give my opinion about which option you should take as I don't 
really know your needs. If I understand correctly, this is about having a 
scheduler providing affinity rules for containers. Do you have a document 
explaining which interfaces you're looking for, which kind of APIs you're 
wanting or what's missing with the current Nova scheduler ?

MHO is that the technology shouldn't drive your decision : whatever the backend 
is (swarmd or an inherited nova scheduler), your interfaces should be the same.

-Sylvain


Regards
-steve




__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org?subject:unsubscribemailto:openstack-dev-requ...@lists.openstack.org?subject:unsubscribehttp://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org

Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Sylvain Bauza

Hi Magnum team,


Le 07/02/2015 19:24, Steven Dake (stdake) a écrit :



From: Eric Windisch e...@windisch.us mailto:e...@windisch.us
Reply-To: OpenStack Development Mailing List (not for usage 
questions) openstack-dev@lists.openstack.org 
mailto:openstack-dev@lists.openstack.org

Date: Saturday, February 7, 2015 at 10:09 AM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.org 
mailto:openstack-dev@lists.openstack.org

Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum


1) Cherry pick scheduler code from Nova, which already has a
working a filter scheduler design.



The Gantt team explored that option by the Icehouse cycle and it failed 
with a lot of problems. I won't list all of those, but I'll just explain 
that we discovered how the Scheduler and the Nova compute manager were 
tighly coupled, which was meaning that a repository fork was really 
difficult to do without reducing the tech debt.


That said, our concerns were far different from the Magnum team : it was 
about having feature parity and replacing the current Nova scheduler, 
while your team is just saying that they want to have something about 
containers.




2) Integrate swarmd to leverage its scheduler[2].


I see #2 as not an alternative but possibly an also. Swarm uses
the Docker API, although they're only about 75% compatible at the
moment. Ideally, the Docker backend would work with both single
docker hosts and clusters of Docker machines powered by Swarm. It
would be nice, however, if scheduler hints could be passed from
Magnum to Swarm.

Regards,
Eric Windisch


Adrian  Eric,

I would prefer to keep things simple and just integrate directly with 
swarm and leave out any cherry-picking from Nova. It would be better 
to integrate scheduling hints into Swarm, but I’m sure the swarm 
upstream is busy with requests and this may be difficult to achieve.




I don't want to give my opinion about which option you should take as I 
don't really know your needs. If I understand correctly, this is about 
having a scheduler providing affinity rules for containers. Do you have 
a document explaining which interfaces you're looking for, which kind of 
APIs you're wanting or what's missing with the current Nova scheduler ?


MHO is that the technology shouldn't drive your decision : whatever the 
backend is (swarmd or an inherited nova scheduler), your interfaces 
should be the same.


-Sylvain



Regards
-steve



__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Adrian Otto
I think it’s fair to assert that our generic scheduling interface should be 
based on Gantt. When that approaches a maturity point where it’s appropriate to 
leverage Gantt for container use cases, we should definitely consider switching 
to that. We should remain engaged in Gantt design decisions along the way to 
provide input.

In the short term we want a solution that works nicely for our Docker handler, 
because that’s an obvious functionality gap. The k8s handler already has a 
scheduler, so it can remain unchanged. Let’s not fall into a trap of 
over-engineering the scheduler, as that can be very tempting but yield limited 
value.

My suggestion is that we focus on the right solution for the Docker backend for 
now, and keep in mind that we want a general purpose scheduler in the future 
that could be adapted to work with a variety of container backends.

I want to recognize that Andrew’s thoughts are well considered to avoid rework 
and remain agnostic about container backends. Further, I think resource 
scheduling is the sort of problem domain that would lend itself well to a 
common solution with numerous use cases. If you look at the various ones that 
exist today, there are lots of similarities. We will find a multitude of 
scheduling algorithms, but probably not uniquely innovative scheduling 
interfaces. The interface to a scheduler will be relatively simple, and we 
could afford to collaborate a bit with the Gantt team to get solid ideas on the 
table for that. Let’s table that pursuit for now, and re-engage at our Midcycle 
meetup to explore that topic further. In the mean time, I’d like us to iterate 
on a suitable point solution for the Docker backend. A final iteration of that 
work may be to yank it completely, and replace it with a common scheduler at a 
later point. I’m willing to accept that tradeoff for a quick delivery of a 
Docker specific scheduler that we can learn from and iterate.

Cheers,

Adrian

On Feb 9, 2015, at 10:57 PM, Jay Lau 
jay.lau@gmail.commailto:jay.lau@gmail.com wrote:

Thanks Steve, just want to discuss more for this. Then per Andrew's comments, 
we need a generic scheduling interface, but if our focus is native docker, then 
does this still needed? Thanks!

2015-02-10 14:52 GMT+08:00 Steven Dake (stdake) 
std...@cisco.commailto:std...@cisco.com:


From: Jay Lau jay.lau@gmail.commailto:jay.lau@gmail.com
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Monday, February 9, 2015 at 11:31 PM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum

Steve,

So you mean we should focus on docker and k8s scheduler? I was a bit confused, 
why do we need to care k8s? As the k8s cluster was created by heat and once the 
k8s was created, the k8s has its own scheduler for creating pods/service/rcs.

So seems we only need to care scheduler for native docker and ironic bay, 
comments?

Ya scheduler only matters for native docker.  Ironic bay can be k8s or 
docker+swarm or something similar.

But yup, I understand your point.


Thanks!

2015-02-10 12:32 GMT+08:00 Steven Dake (stdake) 
std...@cisco.commailto:std...@cisco.com:


From: Joe Gordon joe.gord...@gmail.commailto:joe.gord...@gmail.com
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Monday, February 9, 2015 at 6:41 PM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum



On Mon, Feb 9, 2015 at 6:00 AM, Steven Dake (stdake) 
std...@cisco.commailto:std...@cisco.com wrote:


On 2/9/15, 3:02 AM, Thierry Carrez 
thie...@openstack.orgmailto:thie...@openstack.org wrote:

Adrian Otto wrote:
 [...]
 We have multiple options for solving this challenge. Here are a few:

 1) Cherry pick scheduler code from Nova, which already has a working a
filter scheduler design.
 2) Integrate swarmd to leverage its scheduler[2].
 3) Wait for the Gantt, when Nova Scheduler to be moved out of Nova.
This is expected to happen about a year from now, possibly sooner.
 4) Write our own filter scheduler, inspired by Nova.

I haven't looked enough into Swarm to answer that question myself, but
how much would #2 tie Magnum to Docker containers ?

There is value for Magnum to support other container engines / formats
(think Rocket/Appc) in the long run, so we should avoid early design
choices that would prevent such support in the future.

Thierry,
Magnum has an object type of a bay which represents the underlying cluster
architecture used.  This could be kubernetes, raw docker, swarmd, or some
future invention.  This way Magnum can grow

Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Jay Lau
Thanks Adrian for the clear clarification, clear now.

OK, we can focus on the right solution for the Docker back-end for now.

2015-02-10 15:35 GMT+08:00 Adrian Otto adrian.o...@rackspace.com:

  I think it’s fair to assert that our generic scheduling interface should
 be based on Gantt. When that approaches a maturity point where it’s
 appropriate to leverage Gantt for container use cases, we should definitely
 consider switching to that. We should remain engaged in Gantt design
 decisions along the way to provide input.

  In the short term we want a solution that works nicely for our Docker
 handler, because that’s an obvious functionality gap. The k8s handler
 already has a scheduler, so it can remain unchanged. Let’s not fall into a
 trap of over-engineering the scheduler, as that can be very tempting but
 yield limited value.

  My suggestion is that we focus on the right solution for the Docker
 backend for now, and keep in mind that we want a general purpose scheduler
 in the future that could be adapted to work with a variety of container
 backends.

  I want to recognize that Andrew’s thoughts are well considered to avoid
 rework and remain agnostic about container backends. Further, I think
 resource scheduling is the sort of problem domain that would lend itself
 well to a common solution with numerous use cases. If you look at the
 various ones that exist today, there are lots of similarities. We will find
 a multitude of scheduling algorithms, but probably not uniquely innovative
 scheduling interfaces. The interface to a scheduler will be relatively
 simple, and we could afford to collaborate a bit with the Gantt team to get
 solid ideas on the table for that. Let’s table that pursuit for now, and
 re-engage at our Midcycle meetup to explore that topic further. In the mean
 time, I’d like us to iterate on a suitable point solution for the Docker
 backend. A final iteration of that work may be to yank it completely, and
 replace it with a common scheduler at a later point. I’m willing to accept
 that tradeoff for a quick delivery of a Docker specific scheduler that we
 can learn from and iterate.

  Cheers,

  Adrian

  On Feb 9, 2015, at 10:57 PM, Jay Lau jay.lau@gmail.com wrote:

  Thanks Steve, just want to discuss more for this. Then per Andrew's
 comments, we need a generic scheduling interface, but if our focus is
 native docker, then does this still needed? Thanks!

 2015-02-10 14:52 GMT+08:00 Steven Dake (stdake) std...@cisco.com:



   From: Jay Lau jay.lau@gmail.com
 Reply-To: OpenStack Development Mailing List (not for usage questions)
 openstack-dev@lists.openstack.org
 Date: Monday, February 9, 2015 at 11:31 PM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum

Steve,

  So you mean we should focus on docker and k8s scheduler? I was a bit
 confused, why do we need to care k8s? As the k8s cluster was created by
 heat and once the k8s was created, the k8s has its own scheduler for
 creating pods/service/rcs.

  So seems we only need to care scheduler for native docker and ironic
 bay, comments?


  Ya scheduler only matters for native docker.  Ironic bay can be k8s or
 docker+swarm or something similar.

  But yup, I understand your point.


 Thanks!

 2015-02-10 12:32 GMT+08:00 Steven Dake (stdake) std...@cisco.com:



   From: Joe Gordon joe.gord...@gmail.com
 Reply-To: OpenStack Development Mailing List (not for usage
 questions) openstack-dev@lists.openstack.org
 Date: Monday, February 9, 2015 at 6:41 PM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum



  On Mon, Feb 9, 2015 at 6:00 AM, Steven Dake (stdake) std...@cisco.com
 wrote:



 On 2/9/15, 3:02 AM, Thierry Carrez thie...@openstack.org wrote:

 Adrian Otto wrote:
  [...]
  We have multiple options for solving this challenge. Here are a few:
 
  1) Cherry pick scheduler code from Nova, which already has a working
 a
 filter scheduler design.
  2) Integrate swarmd to leverage its scheduler[2].
  3) Wait for the Gantt, when Nova Scheduler to be moved out of Nova.
 This is expected to happen about a year from now, possibly sooner.
  4) Write our own filter scheduler, inspired by Nova.
 
 I haven't looked enough into Swarm to answer that question myself, but
 how much would #2 tie Magnum to Docker containers ?
 
 There is value for Magnum to support other container engines / formats
 (think Rocket/Appc) in the long run, so we should avoid early design
 choices that would prevent such support in the future.

 Thierry,
 Magnum has an object type of a bay which represents the underlying
 cluster
 architecture used.  This could be kubernetes, raw docker, swarmd, or
 some
 future invention.  This way Magnum can grow independently of the
 underlying technology and provide a satisfactory user

Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Andrew Melton
I think Sylvain is getting at an important point. Magnum is trying to be as 
agnostic as possible when it comes to selecting a backend. Because of that, I 
think the biggest benefit to Magnum would be a generic scheduling interface 
that each pod type would implement. A pod type with a backend providing 
scheduling could implement a thin scheduler that simply translates the generic 
requests into something the backend can understand. And a pod type requiring 
outside scheduling could implement something more heavy.

If we are careful to keep the heavy scheduling generic enough to be shared 
between backends requiring it, we could hopefully swap in an implementation 
using Gantt once that is ready.

--Andrew


From: Jay Lau [jay.lau@gmail.com]
Sent: Monday, February 09, 2015 4:36 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum

Thanks Sylvain, we did not work out the API requirement till now but I think 
the requirement should be similar with nova: we need select_destination to 
select the best target host based on filters and weights.

There are also some discussions here 
https://blueprints.launchpad.net/magnum/+spec/magnum-scheduler-for-docker

Thanks!

2015-02-09 16:22 GMT+08:00 Sylvain Bauza 
sba...@redhat.commailto:sba...@redhat.com:
Hi Magnum team,


Le 07/02/2015 19:24, Steven Dake (stdake) a écrit :


From: Eric Windisch e...@windisch.usmailto:e...@windisch.us
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Saturday, February 7, 2015 at 10:09 AM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum


1) Cherry pick scheduler code from Nova, which already has a working a filter 
scheduler design.

The Gantt team explored that option by the Icehouse cycle and it failed with a 
lot of problems. I won't list all of those, but I'll just explain that we 
discovered how the Scheduler and the Nova compute manager were tighly coupled, 
which was meaning that a repository fork was really difficult to do without 
reducing the tech debt.

That said, our concerns were far different from the Magnum team : it was about 
having feature parity and replacing the current Nova scheduler, while your team 
is just saying that they want to have something about containers.


2) Integrate swarmd to leverage its scheduler[2].

I see #2 as not an alternative but possibly an also. Swarm uses the Docker 
API, although they're only about 75% compatible at the moment. Ideally, the 
Docker backend would work with both single docker hosts and clusters of Docker 
machines powered by Swarm. It would be nice, however, if scheduler hints could 
be passed from Magnum to Swarm.

Regards,
Eric Windisch

Adrian  Eric,

I would prefer to keep things simple and just integrate directly with swarm and 
leave out any cherry-picking from Nova. It would be better to integrate 
scheduling hints into Swarm, but I’m sure the swarm upstream is busy with 
requests and this may be difficult to achieve.


I don't want to give my opinion about which option you should take as I don't 
really know your needs. If I understand correctly, this is about having a 
scheduler providing affinity rules for containers. Do you have a document 
explaining which interfaces you're looking for, which kind of APIs you're 
wanting or what's missing with the current Nova scheduler ?

MHO is that the technology shouldn't drive your decision : whatever the backend 
is (swarmd or an inherited nova scheduler), your interfaces should be the same.

-Sylvain


Regards
-steve




__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org?subject:unsubscribemailto:openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org?subject:unsubscribehttp://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




--
Thanks,

Jay Lau (Guangya Liu)
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Jay Lau
Steve,

So you mean we should focus on docker and k8s scheduler? I was a bit
confused, why do we need to care k8s? As the k8s cluster was created by
heat and once the k8s was created, the k8s has its own scheduler for
creating pods/service/rcs.

So seems we only need to care scheduler for native docker and ironic bay,
comments?

Thanks!

2015-02-10 12:32 GMT+08:00 Steven Dake (stdake) std...@cisco.com:



   From: Joe Gordon joe.gord...@gmail.com
 Reply-To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Date: Monday, February 9, 2015 at 6:41 PM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum



 On Mon, Feb 9, 2015 at 6:00 AM, Steven Dake (stdake) std...@cisco.com
 wrote:



 On 2/9/15, 3:02 AM, Thierry Carrez thie...@openstack.org wrote:

 Adrian Otto wrote:
  [...]
  We have multiple options for solving this challenge. Here are a few:
 
  1) Cherry pick scheduler code from Nova, which already has a working a
 filter scheduler design.
  2) Integrate swarmd to leverage its scheduler[2].
  3) Wait for the Gantt, when Nova Scheduler to be moved out of Nova.
 This is expected to happen about a year from now, possibly sooner.
  4) Write our own filter scheduler, inspired by Nova.
 
 I haven't looked enough into Swarm to answer that question myself, but
 how much would #2 tie Magnum to Docker containers ?
 
 There is value for Magnum to support other container engines / formats
 (think Rocket/Appc) in the long run, so we should avoid early design
 choices that would prevent such support in the future.

 Thierry,
 Magnum has an object type of a bay which represents the underlying cluster
 architecture used.  This could be kubernetes, raw docker, swarmd, or some
 future invention.  This way Magnum can grow independently of the
 underlying technology and provide a satisfactory user experience dealing
 with the chaos that is the container development world :)


  While I don't disagree with anything said here, this does sound a lot
 like https://xkcd.com/927/



 Andrew had suggested offering a unified standard user experience and
 API.  I think that matches the 927 comic pretty well.  I think we should
 offer each type of system using APIs that are similar in nature but that
 offer the native features of the system.  In other words, we will offer
 integration across the various container landscape with OpenStack.

  We should strive to be conservative and pragmatic in our systems support
 and only support container schedulers and container managers that have
 become strongly emergent systems.  At this point that is docker and
 kubernetes.  Mesos might fit that definition as well.  Swarmd and rocket
 are not yet strongly emergent, but they show promise of becoming so.  As a
 result, they are clearly systems we should be thinking about for our
 roadmap.  All of these systems present very similar operational models.

  At some point competition will choke off new system design placing an
 upper bound on the amount of systems we have to deal with.

  Regards
 -steve



 We will absolutely support relevant container technology, likely through
 new Bay formats (which are really just heat templates).

 Regards
 -steve

 
 --
 Thierry Carrez (ttx)
 

 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe:
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe:
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 
Thanks,

Jay Lau (Guangya Liu)
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Thierry Carrez
Adrian Otto wrote:
 [...]
 We have multiple options for solving this challenge. Here are a few:
 
 1) Cherry pick scheduler code from Nova, which already has a working a filter 
 scheduler design. 
 2) Integrate swarmd to leverage its scheduler[2]. 
 3) Wait for the Gantt, when Nova Scheduler to be moved out of Nova. This is 
 expected to happen about a year from now, possibly sooner.
 4) Write our own filter scheduler, inspired by Nova.

I haven't looked enough into Swarm to answer that question myself, but
how much would #2 tie Magnum to Docker containers ?

There is value for Magnum to support other container engines / formats
(think Rocket/Appc) in the long run, so we should avoid early design
choices that would prevent such support in the future.

-- 
Thierry Carrez (ttx)

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Steven Dake (stdake)


On 2/9/15, 3:02 AM, Thierry Carrez thie...@openstack.org wrote:

Adrian Otto wrote:
 [...]
 We have multiple options for solving this challenge. Here are a few:
 
 1) Cherry pick scheduler code from Nova, which already has a working a
filter scheduler design.
 2) Integrate swarmd to leverage its scheduler[2].
 3) Wait for the Gantt, when Nova Scheduler to be moved out of Nova.
This is expected to happen about a year from now, possibly sooner.
 4) Write our own filter scheduler, inspired by Nova.

I haven't looked enough into Swarm to answer that question myself, but
how much would #2 tie Magnum to Docker containers ?

There is value for Magnum to support other container engines / formats
(think Rocket/Appc) in the long run, so we should avoid early design
choices that would prevent such support in the future.

Thierry,
Magnum has an object type of a bay which represents the underlying cluster
architecture used.  This could be kubernetes, raw docker, swarmd, or some
future invention.  This way Magnum can grow independently of the
underlying technology and provide a satisfactory user experience dealing
with the chaos that is the container development world :)

We will absolutely support relevant container technology, likely through
new Bay formats (which are really just heat templates).

Regards
-steve


-- 
Thierry Carrez (ttx)

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Adrian Otto
Steve,

On Feb 9, 2015, at 9:54 AM, Steven Dake (stdake) 
std...@cisco.commailto:std...@cisco.com wrote:



From: Andrew Melton 
andrew.mel...@rackspace.commailto:andrew.mel...@rackspace.com
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Monday, February 9, 2015 at 10:38 AM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum

I think Sylvain is getting at an important point. Magnum is trying to be as 
agnostic as possible when it comes to selecting a backend. Because of that, I 
think the biggest benefit to Magnum would be a generic scheduling interface 
that each pod type would implement. A pod type with a backend providing 
scheduling could implement a thin scheduler that simply translates the generic 
requests into something the backend can understand. And a pod type requiring 
outside scheduling could implement something more heavy.

If we are careful to keep the heavy scheduling generic enough to be shared 
between backends requiring it, we could hopefully swap in an implementation 
using Gantt once that is ready.

Great mid-cycle topic discussion topic.  Can you add it to the planning 
etherpad?

Yes, it was listed as #5 here:
https://etherpad.openstack.org/p/magnum-midcycle-topics

We will arrange that further up the priority list as soon as we feel that list 
is complete, and ready for sorting.

Adrian


Thanks
-steve

--Andrew


From: Jay Lau [jay.lau@gmail.commailto:jay.lau@gmail.com]
Sent: Monday, February 09, 2015 4:36 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum

Thanks Sylvain, we did not work out the API requirement till now but I think 
the requirement should be similar with nova: we need select_destination to 
select the best target host based on filters and weights.

There are also some discussions here 
https://blueprints.launchpad.net/magnum/+spec/magnum-scheduler-for-docker

Thanks!

2015-02-09 16:22 GMT+08:00 Sylvain Bauza 
sba...@redhat.commailto:sba...@redhat.com:
Hi Magnum team,


Le 07/02/2015 19:24, Steven Dake (stdake) a écrit :


From: Eric Windisch e...@windisch.usmailto:e...@windisch.us
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Saturday, February 7, 2015 at 10:09 AM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum


1) Cherry pick scheduler code from Nova, which already has a working a filter 
scheduler design.

The Gantt team explored that option by the Icehouse cycle and it failed with a 
lot of problems. I won't list all of those, but I'll just explain that we 
discovered how the Scheduler and the Nova compute manager were tighly coupled, 
which was meaning that a repository fork was really difficult to do without 
reducing the tech debt.

That said, our concerns were far different from the Magnum team : it was about 
having feature parity and replacing the current Nova scheduler, while your team 
is just saying that they want to have something about containers.


2) Integrate swarmd to leverage its scheduler[2].

I see #2 as not an alternative but possibly an also. Swarm uses the Docker 
API, although they're only about 75% compatible at the moment. Ideally, the 
Docker backend would work with both single docker hosts and clusters of Docker 
machines powered by Swarm. It would be nice, however, if scheduler hints could 
be passed from Magnum to Swarm.

Regards,
Eric Windisch

Adrian  Eric,

I would prefer to keep things simple and just integrate directly with swarm and 
leave out any cherry-picking from Nova. It would be better to integrate 
scheduling hints into Swarm, but I’m sure the swarm upstream is busy with 
requests and this may be difficult to achieve.


I don't want to give my opinion about which option you should take as I don't 
really know your needs. If I understand correctly, this is about having a 
scheduler providing affinity rules for containers. Do you have a document 
explaining which interfaces you're looking for, which kind of APIs you're 
wanting or what's missing with the current Nova scheduler ?

MHO is that the technology shouldn't drive your decision : whatever the backend 
is (swarmd or an inherited nova scheduler), your interfaces should be the same.

-Sylvain


Regards
-steve




__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org?subject:unsubscribemailto:openstack-dev-requ

Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Joe Gordon
On Mon, Feb 9, 2015 at 6:00 AM, Steven Dake (stdake) std...@cisco.com
wrote:



 On 2/9/15, 3:02 AM, Thierry Carrez thie...@openstack.org wrote:

 Adrian Otto wrote:
  [...]
  We have multiple options for solving this challenge. Here are a few:
 
  1) Cherry pick scheduler code from Nova, which already has a working a
 filter scheduler design.
  2) Integrate swarmd to leverage its scheduler[2].
  3) Wait for the Gantt, when Nova Scheduler to be moved out of Nova.
 This is expected to happen about a year from now, possibly sooner.
  4) Write our own filter scheduler, inspired by Nova.
 
 I haven't looked enough into Swarm to answer that question myself, but
 how much would #2 tie Magnum to Docker containers ?
 
 There is value for Magnum to support other container engines / formats
 (think Rocket/Appc) in the long run, so we should avoid early design
 choices that would prevent such support in the future.

 Thierry,
 Magnum has an object type of a bay which represents the underlying cluster
 architecture used.  This could be kubernetes, raw docker, swarmd, or some
 future invention.  This way Magnum can grow independently of the
 underlying technology and provide a satisfactory user experience dealing
 with the chaos that is the container development world :)


While I don't disagree with anything said here, this does sound a lot like
https://xkcd.com/927/




 We will absolutely support relevant container technology, likely through
 new Bay formats (which are really just heat templates).

 Regards
 -steve

 
 --
 Thierry Carrez (ttx)
 
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe:
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-09 Thread Steven Dake (stdake)


From: Joe Gordon joe.gord...@gmail.commailto:joe.gord...@gmail.com
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Monday, February 9, 2015 at 6:41 PM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum



On Mon, Feb 9, 2015 at 6:00 AM, Steven Dake (stdake) 
std...@cisco.commailto:std...@cisco.com wrote:


On 2/9/15, 3:02 AM, Thierry Carrez 
thie...@openstack.orgmailto:thie...@openstack.org wrote:

Adrian Otto wrote:
 [...]
 We have multiple options for solving this challenge. Here are a few:

 1) Cherry pick scheduler code from Nova, which already has a working a
filter scheduler design.
 2) Integrate swarmd to leverage its scheduler[2].
 3) Wait for the Gantt, when Nova Scheduler to be moved out of Nova.
This is expected to happen about a year from now, possibly sooner.
 4) Write our own filter scheduler, inspired by Nova.

I haven't looked enough into Swarm to answer that question myself, but
how much would #2 tie Magnum to Docker containers ?

There is value for Magnum to support other container engines / formats
(think Rocket/Appc) in the long run, so we should avoid early design
choices that would prevent such support in the future.

Thierry,
Magnum has an object type of a bay which represents the underlying cluster
architecture used.  This could be kubernetes, raw docker, swarmd, or some
future invention.  This way Magnum can grow independently of the
underlying technology and provide a satisfactory user experience dealing
with the chaos that is the container development world :)

While I don't disagree with anything said here, this does sound a lot like 
https://xkcd.com/927/


Andrew had suggested offering a unified standard user experience and API.  I 
think that matches the 927 comic pretty well.  I think we should offer each 
type of system using APIs that are similar in nature but that offer the native 
features of the system.  In other words, we will offer integration across the 
various container landscape with OpenStack.

We should strive to be conservative and pragmatic in our systems support and 
only support container schedulers and container managers that have become 
strongly emergent systems.  At this point that is docker and kubernetes.  Mesos 
might fit that definition as well.  Swarmd and rocket are not yet strongly 
emergent, but they show promise of becoming so.  As a result, they are clearly 
systems we should be thinking about for our roadmap.  All of these systems 
present very similar operational models.

At some point competition will choke off new system design placing an upper 
bound on the amount of systems we have to deal with.

Regards
-steve



We will absolutely support relevant container technology, likely through
new Bay formats (which are really just heat templates).

Regards
-steve


--
Thierry Carrez (ttx)

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org?subject:unsubscribehttp://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org?subject:unsubscribehttp://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-07 Thread Steven Dake (stdake)


From: Eric Windisch e...@windisch.usmailto:e...@windisch.us
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Saturday, February 7, 2015 at 10:09 AM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum


1) Cherry pick scheduler code from Nova, which already has a working a filter 
scheduler design.
2) Integrate swarmd to leverage its scheduler[2].

I see #2 as not an alternative but possibly an also. Swarm uses the Docker 
API, although they're only about 75% compatible at the moment. Ideally, the 
Docker backend would work with both single docker hosts and clusters of Docker 
machines powered by Swarm. It would be nice, however, if scheduler hints could 
be passed from Magnum to Swarm.

Regards,
Eric Windisch

Adrian  Eric,

I would prefer to keep things simple and just integrate directly with swarm and 
leave out any cherry-picking from Nova. It would be better to integrate 
scheduling hints into Swarm, but I’m sure the swarm upstream is busy with 
requests and this may be difficult to achieve.

Regards
-steve

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-07 Thread Eric Windisch


 1) Cherry pick scheduler code from Nova, which already has a working a
 filter scheduler design.
 2) Integrate swarmd to leverage its scheduler[2].


I see #2 as not an alternative but possibly an also. Swarm uses the
Docker API, although they're only about 75% compatible at the moment.
Ideally, the Docker backend would work with both single docker hosts and
clusters of Docker machines powered by Swarm. It would be nice, however, if
scheduler hints could be passed from Magnum to Swarm.

Regards,
Eric Windisch
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-07 Thread Davanum Srinivas
I second that. my first instinct is the same as Steve.

-- dims

On Sat, Feb 7, 2015 at 1:24 PM, Steven Dake (stdake) std...@cisco.com wrote:


 From: Eric Windisch e...@windisch.us
 Reply-To: OpenStack Development Mailing List (not for usage questions)
 openstack-dev@lists.openstack.org
 Date: Saturday, February 7, 2015 at 10:09 AM
 To: OpenStack Development Mailing List (not for usage questions)
 openstack-dev@lists.openstack.org
 Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum


 1) Cherry pick scheduler code from Nova, which already has a working a
 filter scheduler design.
 2) Integrate swarmd to leverage its scheduler[2].


 I see #2 as not an alternative but possibly an also. Swarm uses the Docker
 API, although they're only about 75% compatible at the moment. Ideally, the
 Docker backend would work with both single docker hosts and clusters of
 Docker machines powered by Swarm. It would be nice, however, if scheduler
 hints could be passed from Magnum to Swarm.

 Regards,
 Eric Windisch


 Adrian  Eric,

 I would prefer to keep things simple and just integrate directly with swarm
 and leave out any cherry-picking from Nova. It would be better to integrate
 scheduling hints into Swarm, but I’m sure the swarm upstream is busy with
 requests and this may be difficult to achieve.

 Regards
 -steve


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 
Davanum Srinivas :: https://twitter.com/dims

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-07 Thread Jay Lau
Sorry for late. I'm OK with both nova scheduler and swarm as both of them
using same logic for scheduling: filter + strategy (weight), and the code
structure/logic is also very similar between nova scheduler and swarm.

In my understanding, even if we use swarm and translate go to python, after
this scheduler is added to magnum, we may notice that it is very similar
with nova scheduler.

Thanks!





2015-02-08 11:01 GMT+08:00 Adrian Otto adrian.o...@rackspace.com:

  Ok, so if we proceed using Swarm as our first pursuit, and we want to add
 things to Swarm like scheduling hints, we should open a Magnum bug ticket
 to track each of the upstream patches, and I can help to bird dog those. We
 should not shy away from upstream enhancements until we get firm feedback
 suggesting our contributions are out of scope.

  Adrian


  Original message 
 From: Steven Dake (stdake)
 Date:02/07/2015 10:27 AM (GMT-08:00)
 To: OpenStack Development Mailing List (not for usage questions)
 Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum



   From: Eric Windisch e...@windisch.us
 Reply-To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Date: Saturday, February 7, 2015 at 10:09 AM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum


 1) Cherry pick scheduler code from Nova, which already has a working a
 filter scheduler design.
 2) Integrate swarmd to leverage its scheduler[2].


  I see #2 as not an alternative but possibly an also. Swarm uses the
 Docker API, although they're only about 75% compatible at the moment.
 Ideally, the Docker backend would work with both single docker hosts and
 clusters of Docker machines powered by Swarm. It would be nice, however, if
 scheduler hints could be passed from Magnum to Swarm.

  Regards,
 Eric Windisch


  Adrian  Eric,

  I would prefer to keep things simple and just integrate directly with
 swarm and leave out any cherry-picking from Nova. It would be better to
 integrate scheduling hints into Swarm, but I’m sure the swarm upstream is
 busy with requests and this may be difficult to achieve.

  Regards
 -steve


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 
Thanks,

Jay Lau (Guangya Liu)
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-07 Thread Adrian Otto
Ok, so if we proceed using Swarm as our first pursuit, and we want to add 
things to Swarm like scheduling hints, we should open a Magnum bug ticket to 
track each of the upstream patches, and I can help to bird dog those. We should 
not shy away from upstream enhancements until we get firm feedback suggesting 
our contributions are out of scope.

Adrian


 Original message 
From: Steven Dake (stdake)
Date:02/07/2015 10:27 AM (GMT-08:00)
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum



From: Eric Windisch e...@windisch.usmailto:e...@windisch.us
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Saturday, February 7, 2015 at 10:09 AM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Magnum] Scheduling for Magnum


1) Cherry pick scheduler code from Nova, which already has a working a filter 
scheduler design.
2) Integrate swarmd to leverage its scheduler[2].

I see #2 as not an alternative but possibly an also. Swarm uses the Docker 
API, although they're only about 75% compatible at the moment. Ideally, the 
Docker backend would work with both single docker hosts and clusters of Docker 
machines powered by Swarm. It would be nice, however, if scheduler hints could 
be passed from Magnum to Swarm.

Regards,
Eric Windisch

Adrian  Eric,

I would prefer to keep things simple and just integrate directly with swarm and 
leave out any cherry-picking from Nova. It would be better to integrate 
scheduling hints into Swarm, but I’m sure the swarm upstream is busy with 
requests and this may be difficult to achieve.

Regards
-steve

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Magnum] Scheduling for Magnum

2015-02-06 Thread James Bottomley
On Sat, 2015-02-07 at 00:44 +, Adrian Otto wrote:
 Magnum Team,
 
 In our initial spec, we addressed the subject of resource scheduling. Our 
 plan was to begin with a naive scheduler that places resources on a specified 
 Node and can sequentially fill Nodes if one is not specified.
 
 Magnum supports multiple conductor backends[1], one of which is our 
 Kubernetes backend. We also have a native Docker backend that we would like 
 to enhance so that when pods or containers are created, the target nodes can 
 be selected according to user-supplied filters. Some examples of this are:
 
 Constraint, Affinity, Anti-Affinity, Health
 
 We have multiple options for solving this challenge. Here are a few:
 
 1) Cherry pick scheduler code from Nova, which already has a working a
 filter scheduler design. 
 2) Integrate swarmd to leverage its scheduler[2]. 
 3) Wait for the Gantt, when Nova Scheduler to be moved out of Nova.
 This is expected to happen about a year from now, possibly sooner.
 4) Write our own filter scheduler, inspired by Nova.
 
 I suggest that we deserve to have a scheduling implementation for our
 native docker backend before Gantt is ready. It’s unrealistic that the
 Magnum team will be able to accelerate Gantt’s progress, as
 significant changes must be made in Nova for this to happen. The Nova
 team is best equipped to do this. It requires active participation
 from Nova’s core review team, which has limited bandwidth, and other
 priorities to focus on. I think we unanimously agree that we would
 prefer to use Gantt, if it were available sooner.
 
 I suggest we also rule out option 4, because it amounts to
 re-inventing the wheel.
 
 That leaves us with options 1 and 2 in the short term. The
 disadvantage of either of these approaches is that we will likely need
 to remove them and replace them with Gantt (or a derivative work) once
 it matures. The advantage of option 1 is that python code already
 exists for this, and we know it works well in Nova. We could cherry
 pick that over, and drop it directly into Magnum. The advantage of
 option 2 is that we leverage the talents of the developers working on
 Swarm, which is better than option 4. New features are likely to
 surface in parallel with our efforts, so we would enjoy the benefits
 of those without expending work in our own project.
 
 So, how do you feel about options 1 and 2? Which do you feel is more
 suitable for Magnum? What other options should we consider that might
 be better than either of these choices?
 
 I have a slight preference for option 2 - integrating with Swarm, but
 I could be persuaded to pick option 1, or something even more
 brilliant. Please discuss.

Got to say that Option 1 looks far preferable.  As you say, we have to
switch to Gantt eventually, so it might end up being an expensive and
difficult retro fit with Option 2.  With Option 1, we look mostly like
the Nova scheduler, so can let them take the initial hit of doing the
shift to Gantt and slipstream in their wake once the major pain points
are ironed out.

James



__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev