[openstack-dev] [heat] [scheduler] Bringing things together for Icehouse

Clint Byrum clint at fewbar.com
Tue Sep 24 03:57:41 UTC 2013


Excerpts from Mike Spreitzer's message of 2013-09-23 20:31:32 -0700:
> I was not trying to raise issues of geographic dispersion and other higher 
> level structures, I think the issues I am trying to raise are relevant 
> even without them.  This is not to deny the importance, or relevance, of 
> higher levels of structure.  But I would like to first respond to the 
> discussion that I think is relevant even without them.
> 
> I think it is valuable for OpenStack to have a place for holistic 
> infrastructure scheduling.  I am not the only one to argue for this, but I 
> will give some use cases.  Consider Hadoop, which stresses the path 
> between Compute and Block Storage.  In the usual way of deploying and 
> configuring Hadoop, you want each data node to be using directly attached 
> storage.  You could address this by scheduling one of those two services 
> first, and then the second with constraints from the first --- but the 
> decisions made by the first could paint the second into a corner.  It is 
> better to be able to schedule both jointly.  Also consider another 
> approach to Hadoop, in which the block storage is provided by a bank of 
> storage appliances that is equidistant (in networking terms) from all the 
> Compute.  In this case the Storage and Compute scheduling decisions have 
> no strong interaction --- but the Compute scheduling can interact with the 
> network (you do not want to place Compute in a way that overloads part of 
> the network).
> 
> Once a holistic infrastructure scheduler has made its decisions, there is 
> then a need for infrastructure orchestration.  The infrastructure 
> orchestration function is logically downstream from holistic scheduling. I 
> do not favor creating a new and alternate way of doing infrastructure 
> orchestration in this position.  Rather I think it makes sense to use 
> essentially today's heat engine.
> 

Ok, now I think I understand you.

What you're talking about, in many ways, is very similar to what the
autoscale-interested folk have been proposing. Something that sits
outside of Heat and makes use of other information (alarms/policy/etc)
to tweak a Heat stack.

Only this service would make use of information before a stack was
even created.

I like it, and I do think that it should be "part of heat" because it will
be making use of Heat's templating to make those decisions. However,
I also think it should be a separate repository/project within the
"OpenStack Orchestration" program, to keep it honest with regard to
interfaces. Heat's infrastructure-focused service is already big enough,
we don't need to grow it even more with only slightly-related code.

Also I imagine there are many ways to skin this cat, and thus we may see
alternative holistic schedulers for specific applications (Savannah may
use a hadoop specific approach, as you suggested). There is also the
possibility of chaining schedulers.

The Tuskar project also comes to mind, as the deployment of baremetal with
a mind toward network topology and physical placement (racks/rooms/etc)
for the explicit purpose of deploying OpenStack is itself a form of
holistic scheduling.

> Today Heat is the only thing that takes a holistic view of 
> patterns/topologies/templates, and there are various pressures to expand 
> the mission of Heat.  A marquee expansion is to take on software 
> orchestration.  I think holistic infrastructure scheduling should be 
> downstream from the preparatory stage of software orchestration (the other 
> stage of software orchestration is the run-time action in and supporting 
> the resources themselves).  There are other pressures to expand the 
> mission of Heat too.  This leads to conflicting usages for the word 
> "heat": it can mean the infrastructure orchestration function that is the 
> main job of today's heat engine, or it can mean the full expanded mission 
> (whatever you think that should be).  I have been mainly using "heat" in 
> that latter sense, but I do not really want to argue over naming of bits 
> and assemblies of functionality.  Call them whatever you want.  I am more 
> interested in getting a useful arrangement of functionality.  I have 
> updated my picture at 
> https://docs.google.com/drawings/d/1Y_yyIpql5_cdC8116XrBHzn6GfP_g0NHTTG_W4o0R9U 
> --- do you agree that the arrangement of functionality makes sense?

I do now. I stand by the original position that Heat, as it exists today,
would simply pass along infrastructure scheduling decisions made by a
holistic scheduler. However I think it would be unwise to try and develop
these things apart from one another as it may encourage fracturing the
template language. So I would propose that if there is a more general
purpose attempt at holistic scheduling via Heat templates that it be
done as a separate service/repository within the Heat program.



More information about the OpenStack-dev mailing list