<div dir="ltr">Hi Clint,<div><br></div><div>Thank you for the detailed analysis.</div><div><br></div><div><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">>I'm not sure I know what "software orchestration" is, but I will take a</span><br style="font-family:arial,sans-serif;font-size:12.800000190734863px">
<span style="font-family:arial,sans-serif;font-size:12.800000190734863px">>stab at a succinct definition:</span><br style="font-family:arial,sans-serif;font-size:12.800000190734863px"><br style="font-family:arial,sans-serif;font-size:12.800000190734863px">
<span style="font-family:arial,sans-serif;font-size:12.800000190734863px">>Coordination of software configuration across multiple hosts.</span><br></div><div><span style="font-family:arial,sans-serif;font-size:12.800000190734863px"><br>
</span></div><div><font face="arial, sans-serif">Having this definition of "software orchestration" what will Heat software orchestration component BP cover? I just trying to clarify for myself what is Heat position and view on software orchestration based on components and Heat view on workflows.</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Right now it is not clear where is the separation line between component and workflow. I think this blurred line introduced a lot of confusion in this thread as some guys had a workflows based approach in mind and some had component based view.</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Thanks</font></div><div><font face="arial, sans-serif">Georgy</font></div><div><font face="arial, sans-serif"><br></font></div></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Oct 22, 2013 at 3:28 PM, Clint Byrum <span dir="ltr"><<a href="mailto:clint@fewbar.com" target="_blank">clint@fewbar.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Excerpts from Georgy Okrokvertskhov's message of 2013-10-22 13:32:40 -0700:<br>
<div class="im">> Hi Thomas,<br>
><br>
> I agree with you on semantics part. At the same time I see a potential<br>
> question which might appear - if semantics is limited by few states visible<br>
> for Heat engine, then who actually does software orchestration?<br>
> Will it be reasonable then to have software orchestration as separate<br>
> subproject for Heat as a part of "Orchestration" OpenStack program? Heat<br>
> engine will then do dependency tracking and will use components as a<br>
> reference for software orchestration engine which will perform actual<br>
> deployment and high level software components coordination.<br>
><br>
> This separated software orchestration engine may address all specific<br>
> requirements proposed by different teams in this thread without affecting<br>
> existing Heat engine.<br>
><br>
<br>
</div>I'm not sure I know what "software orchestration" is, but I will take a<br>
stab at a succinct definition:<br>
<br>
Coordination of software configuration across multiple hosts.<br>
<br>
If that is what you mean, then I believe what you actually want is<br>
workflow. And for that, we have the Mistral project which was recently<br>
announced [1].<br>
<br>
Use that and you will simply need to define your desired workflow and<br>
feed it into Mistral using a Mistral Heat resource. We can create a<br>
nice bootstrapping resource for Heat instances that shims the mistral<br>
workflow execution agent into machines (or lets us use one already there<br>
via custom images).<br>
<br>
I can imagine it working something like this:<br>
<br>
resources:<br>
  mistral_workflow_handle:<br>
    type: OS::Mistral::WorkflowHandle<br>
  web_server:<br>
    type: OS::Nova::Server<br>
    components:<br>
      mistral_agent:<br>
        component_type: mistral<br>
        params:<br>
          workflow_: {ref: mistral_workflow_handle}<br>
  mysql_server:<br>
    type: OS::Nova::Server<br>
    components:<br>
      mistral_agent:<br>
        component_type: mistral<br>
        params:<br>
          workflow_handle: {ref: mistral_workflow_handle}<br>
  mistral_workflow:<br>
    type: OS::Mistral::Workflow<br>
    properties:<br>
      handle: {ref: mistral_workflow_handle}<br>
      workflow_reference: mysql_webapp_workflow<br>
      params:<br>
        mysql_server: {ref: mysql_server}<br>
        webserver: {ref: web_server}<br>
<br>
<br>
And then the workflow is just defined outside of the Heat template (ok<br>
I'm sure somebody will want to embed it, but I prefer stronger<br>
separation). Something like this gets uploaded as<br>
"mysql_webapp_workflow":<br>
<br>
[ 'step1': 'install_stuff',<br>
  'step2': 'wait(step1)',<br>
  'step3': 'allocate_sql_user(server=%mysql_server%)'<br>
  'step4': 'credentials=wait_and_read(step3)'<br>
  'step5': 'write_config_file(server=%webserver%)' ]<br>
<br>
Or maybe it is declared as a graph, or whatever, but it is not Heat's<br>
problem how to do workflows, it just feeds the necessary data from<br>
orchestration into the workflow engine. This also means you can use a<br>
non OpenStack workflow engine without any problems.<br>
<br>
I think after having talked about this, we should have workflow live in<br>
its own program.. we can always combine them if we want to, but having a<br>
clear line would mean keeping the interfaces clean.<br>
<br>
[1] <a href="http://lists.openstack.org/pipermail/openstack-dev/2013-October/016605.html" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2013-October/016605.html</a><br>
<div class="HOEnZb"><div class="h5"><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>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Georgy Okrokvertskhov<br>
Technical Program Manager,<br>Cloud and Infrastructure Services,<br>
Mirantis<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<br>
</div>