<div dir="ltr">Igor,<div><br></div><div>We are going to run a swarm test today against the ISO with enabled task-based deployment, than check results and merge changes tomorrow.</div><div>I've run BVT more than 100 times, it works, but I would like to check more deployment cases.</div><div>And I guess it should be easy to troubleshoot if docker-related and task-based related changes will be separated by a few days.</div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-02-09 13:39 GMT+03:00 Igor Kalnitsky <span dir="ltr"><<a href="mailto:ikalnitsky@mirantis.com" target="_blank">ikalnitsky@mirantis.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Well, I'm going to build a new ISO and run BVT. As soon as they are<br>
green, I'm going to approve the change.<br>
<div class="HOEnZb"><div class="h5"><br>
On Tue, Feb 9, 2016 at 12:32 PM, Bogdan Dobrelya <<a href="mailto:bdobrelia@mirantis.com">bdobrelia@mirantis.com</a>> wrote:<br>
> On 08.02.2016 17:05, Igor Kalnitsky wrote:<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>
> This must be done for the 9.0, IMHO.<br>
><br>
>><br>
>> - Igor<br>
>><br>
>> On Wed, Feb 3, 2016 at 12:31 PM, Bogdan Dobrelya <<a href="mailto:bdobrelia@mirantis.com">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>
> --<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>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">---<div>WBR, Alexey Shtokolov</div></div></div>
</div>