<div dir="ltr">+1</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 8, 2016 at 7:58 PM, Vladimir Kozhukalov <span dir="ltr"><<a href="mailto:vkozhukalov@mirantis.com" target="_blank">vkozhukalov@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">+1 to enable it ASAP. <div><br></div><div>It will also affect our deployment tests (~1 hour vs. ~2.5 hours).</div></div><div class="gmail_extra"><span class="HOEnZb"><font color="#888888"><br clear="all"><div><div><div>Vladimir Kozhukalov</div></div></div></font></span><div><div class="h5">
<br><div class="gmail_quote">On Mon, Feb 8, 2016 at 7:35 PM, Bulat Gaifullin <span dir="ltr"><<a href="mailto:bgaifullin@mirantis.com" target="_blank">bgaifullin@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">+1.<br>
<br>
Regards,<br>
Bulat Gaifullin<br>
Mirantis Inc.<br>
<div><div><br>
<br>
<br>
> On 08 Feb 2016, at 19:05, Igor Kalnitsky <<a href="mailto:ikalnitsky@mirantis.com" target="_blank">ikalnitsky@mirantis.com</a>> wrote:<br>
><br>
> Hey Fuelers,<br>
><br>
> When we are going to enable it? I think since HCF is passed for<br>
> stable/8.0, it's time to enable task-based deployment for master<br>
> branch.<br>
><br>
> Opinion?<br>
><br>
> - Igor<br>
><br>
> On Wed, Feb 3, 2016 at 12:31 PM, Bogdan Dobrelya <<a href="mailto:bdobrelia@mirantis.com" target="_blank">bdobrelia@mirantis.com</a>> wrote:<br>
>> On 02.02.2016 17:35, Alexey Shtokolov wrote:<br>
>>> Hi Fuelers!<br>
>>><br>
>>> As you may be aware, since [0] Fuel has implemented a new orchestration<br>
>>> engine [1]<br>
>>> We switched the deployment paradigm from role-based (aka granular) to<br>
>>> task-based and now Fuel can deploy all nodes simultaneously using<br>
>>> cross-node dependencies between deployment tasks.<br>
>><br>
>> That is great news! Please do not forget about docs updates as well.<br>
>> Those docs are always forgotten like poor orphans... I submitted a patch<br>
>> [0] to MOS docs, please review and add more details, if possible, for<br>
>> plugins impact as well.<br>
>><br>
>> [0] <a href="https://review.fuel-infra.org/#/c/16509/" rel="noreferrer" target="_blank">https://review.fuel-infra.org/#/c/16509/</a><br>
>><br>
>>><br>
>>> This feature is experimental in Fuel 8.0 and will be enabled by default<br>
>>> for Fuel 9.0<br>
>>><br>
>>> Allow me to show you the results. We made some benchmarks on our bare<br>
>>> metal lab [2]<br>
>>><br>
>>> Case #1. 3 controllers + 7 computes w/ ceph.<br>
>>> Task-based deployment takes *~38* minutes vs *~1h15m* for granular (*~2*<br>
>>> times faster)<br>
>>> Here and below the deployment time is average time for 10 runs<br>
>>><br>
>>> Case #2. 3 controllers + 3 mongodb + 4 computes w/ ceph.<br>
>>> Task-based deployment takes *~41* minutes vs *~1h32m* for granular<br>
>>> (*~2.24* times faster)<br>
>>><br>
>>><br>
>>><br>
>>> Also we took measurements for Fuel CI test cases. Standard BVT (Master<br>
>>> node + 3 controllers + 3 computes w/ ceph. All are in qemu VMs on one host)<br>
>>><br>
>>> Fuel CI slaves with *4 *cores *~1.1* times faster<br>
>>> In case of 4 cores for 7 VMs they are fighting for CPU resources and it<br>
>>> marginalizes the gain of task-based deployment<br>
>>><br>
>>> Fuel CI slaves with *6* cores *~1.6* times faster<br>
>>><br>
>>> Fuel CI slaves with *12* cores *~1.7* times faster<br>
>><br>
>> These are really outstanding results!<br>
>> (tl;dr)<br>
>> I believe the next step may be to leverage the "external install & svc<br>
>> management" feature (example [1]) of the Liberty release (7.0.0) of<br>
>> Puppet-Openstack (PO) modules. So we could use separate concurrent<br>
>> cross-depends based tasks *within a single node* as well, like:<br>
>> - task: install_all_packages - a singleton task for a node,<br>
>> - task: [configure_x, for each x] - concurrent for a node,<br>
>> - task: [manage_service_x, for each x] - some may be concurrent for a<br>
>> node, while another shall be serialized.<br>
>><br>
>> So, one might use the "--tags" separator for concurrent puppet runs to<br>
>> make things go even faster, for example:<br>
>><br>
>> # cat test.pp<br>
>> notify<br>
>> {"A": tag => "a" }<br>
>> notify<br>
>> {"B": tag => "b" }<br>
>><br>
>> # puppet apply test.pp<br>
>> Notice: A<br>
>> Notice: /Stage[main]/Main/Notify[A]/message: defined 'message' as 'A'<br>
>> Notice: B<br>
>> Notice: /Stage[main]/Main/Notify[B]/message: defined 'message' as 'B'<br>
>><br>
>> # puppet apply test.pp --tags a<br>
>> Notice: A<br>
>> Notice: /Stage[main]/Main/Notify[A]/message: defined 'message' as 'A'<br>
>><br>
>> # puppet apply test.pp --tags a & puppet apply test.pp --tags b<br>
>> Notice: B<br>
>> Notice: /Stage[main]/Main/Notify[B]/message: defined 'message' as 'B'<br>
>> Notice: A<br>
>> Notice: /Stage[main]/Main/Notify[A]/message: defined 'message' as 'A'<br>
>><br>
>> Which is supposed to be faster, although not for this example.<br>
>><br>
>> [1] <a href="https://review.openstack.org/#/c/216926/3/manifests/init.pp" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/216926/3/manifests/init.pp</a><br>
>><br>
>>><br>
>>> You can see additional information and charts in the presentation [3].<br>
>>><br>
>>> [0]<br>
>>> - <a href="http://lists.openstack.org/pipermail/openstack-dev/2015-December/082093.html" rel="noreferrer" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2015-December/082093.html</a><br>
>>> [1]<br>
>>> - <a href="https://specs.openstack.org/openstack/fuel-specs/specs/8.0/task-based-deployment-mvp.html" rel="noreferrer" target="_blank">https://specs.openstack.org/openstack/fuel-specs/specs/8.0/task-based-deployment-mvp.html</a><br>
>>> [2] - 3 x HP ProLiant DL360p Gen8 (XeonE5 6 cores/64GB/SSD) + 7 x HP<br>
>>> ProLiant DL320p Gen8 (XeonE3 4 cores/8-16GB/HDD)<br>
>>> [3] -<br>
>>> <a href="https://docs.google.com/presentation/d/1jZCFZlXHs_VhjtVYS2VuWgdxge5Q6sOMLz4bRLuw7YE" rel="noreferrer" target="_blank">https://docs.google.com/presentation/d/1jZCFZlXHs_VhjtVYS2VuWgdxge5Q6sOMLz4bRLuw7YE</a><br>
>>><br>
>>> ---<br>
>>> WBR, Alexey Shtokolov<br>
>>><br>
>>><br>
>>> __________________________________________________________________________<br>
>>> OpenStack Development Mailing List (not for usage questions)<br>
>>> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>>><br>
>><br>
>><br>
>> --<br>
>> Best regards,<br>
>> Bogdan Dobrelya,<br>
>> Irc #bogdando<br>
>><br>
>> __________________________________________________________________________<br>
>> OpenStack Development Mailing List (not for usage questions)<br>
>> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
> __________________________________________________________________________<br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div></div></div>
<br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>