<div dir="ltr">Hi Mike,<div><br></div><div>Thank you for clarification. I like your approach with Ruby and I think this is a right way to solve such tasks like DSL creation. In Murano we use Yaml and python just to avoid introduction of a whole new language like Ruby to OpenStack. </div>
<div><br></div><div>As for software configurations in heat, we are eager to have it available for use. We use Heat in Murano and we want to pass as much as possible work  to Heat engine. Murano itself is intended to be an Application Catalog for managing available application packages and focuses on UI and user experience rather then on deployment details. We still use DSL for several things, have something working while waiting for Heat implementations, and to have imperative workflow engine which is useful when you need to orchestrate complex workflows. The last part is very powerful when you need to have an explicit control on deployment sequence with conditional branches orchestration among several different instances. When Mistral will be available we plan to use its workflow engine for task orchestration. </div>
<div><br></div><div>Again, thank you for sharing the work you are doing in IBM. This is very good feedback for OpenStack community and helps to understand how OpenStack components used in enterprise use cases.</div><div><br>
</div><div>Thanks</div><div>Georgy</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Feb 8, 2014 at 10:52 AM, Mike Spreitzer <span dir="ltr"><<a href="mailto:mspreitz@us.ibm.com" target="_blank">mspreitz@us.ibm.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><tt><font>> From: Georgy Okrokvertskhov <<a href="mailto:gokrokvertskhov@mirantis.com" target="_blank">gokrokvertskhov@mirantis.com</a>></font></tt>
<br><tt><font>> ...<br>
> Thank you for sharing this. It looks pretty impressive. Could you,
<br>
> please some details about DSL syntax, if it is possible?</font></tt>
<br>
<br><tt><font>I will respond briefly, and pass your request along
to the people working on that.</font></tt>
<br>
<br><tt><font>In the Weaver language there are distinct concepts
for software configuration vs. things (such as VMs) that can host software
configs.  As in the current software config work, there are distinct
concepts for defining a software configuration vs. applying one to some
particular infrastructure.  Weaver supposes that local configuration
is described in Chef; Weaver adds a way of connecting chef variables across
machines.  So you see, there are a lot of similarities with the current
work on software config, which I support.</font></tt>
<br>
<br><tt><font>Weaver takes advantage of the power of Ruby metaprogramming
to add pretty natural and concise constructs for modeling infrastructure
and software config.  The source does not look like it is one level
off, it looks like it is describing a thing rather than describing how
to build a model of the thing (even though that is what it is actually
doing).</font></tt>
<br>
<br><tt><font>Embedding in Ruby adds powerful and familiar support
for abstraction and customized repetition in descriptions of distributed
systems.  This is going to be hard to do nicely in a language (regardless
of whether it uses JSON or YAML syntax) that is primarily for data representation.
 One of the points of sharing this example was to show a system for
which you would like such power.</font></tt>
<br>
<br><tt><font>What is the unique problem that Murano is addressing?
 The current software config work can deploy multiple configs to a
target.  Supposing that the local config (the non-distributed base
configuration management tool involved, which is open in the current software
config work) is expressed using something sufficiently powerful (chef and
bash are examples), the local config language can do abstraction and composition
in the description of local configuration.</font></tt>
<br>
<br><tt><font>Regards,</font></tt>
<br><tt><font>Mike</font></tt><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><font color="#999999"><span style="background-color:rgb(255,255,255)">Georgy Okrokvertskhov<br>
Architect,<br><span style="font-family:arial;font-size:small">OpenStack Platform Products,</span><br>
Mirantis</span><br>
<a href="http://www.mirantis.com/" target="_blank">http://www.mirantis.com</a><br>
Tel. +1 650 963 9828<br>
Mob. +1 650 996 3284</font><br></div>
</div>