<font size=2 face="sans-serif">I am sorry I missed that session, but am
interested in the topic. This is very relevant to Heat, where we
are working on software configuration in general. I desire that Heat's
ability to configure software will meet the needs of Trove, Savanna, and
Murano.</font>
<br>
<br><font size=2 face="sans-serif">At IBM we worked several Hadoop examples,
with some similar to (but distinct from) Heat for software configuration
and also something doing holistic infrastructure scheduling (so that, e.g.,
we could get locally attached storage). The software was described
using an additional concept for software components, and we expressed the
automation as chef roles. For coordination between VMs we used Ruby
metaprogramming to intercept access to certain members of the node[][]
arrays, replacing plain array access with distributed reads and writes
to shared variables (which can not be read until after they are written,
thus providing synchronization as well as data dependency). We used
ZooKeeper to implement those shared variables, but that is just one possible
implementation approach; I think wait condition/handle/signal makes more
sense as the one to use in OpenStack.</font>
<br>
<br><font size=2 face="sans-serif">The current thinking in Heat is to make
a generic agent based on os-collect-config; it could be specialized to
Heat by a hook. The agent would poll for stuff to do and then do
it; in the chef case, "stuff" could be, e.g., a role in a cookbook.
I think this could meet the requirements listed on </font><a href=https://etherpad.openstack.org/p/UnifiedAgents><font size=2 face="sans-serif">https://etherpad.openstack.org/p/UnifiedAgents</font></a>
<br>
<br><font size=2 face="sans-serif">Regards,</font>
<br><font size=2 face="sans-serif">Mike</font>