Youcef,<div><br></div><div>Thanks for the diagram, it quite close to what we are proposing.</div><div>A couple of additional notes:</div><div>1) We may think of scheduler as a just a part of device management plugin since it is nothing more than an algorithm working on device list.</div>
<div>2) We probably doesn't need separate "device agent" component and process. Any kind of device-specific task may be handled by common "advanced service agent" which routes messages from Adv Svc Plugins and Device Management Plugin to corresponding device-specific code.</div>
<div><br></div><div>You may also look at workflow of pool creation operation as well as component diagram:  </div><div><a href="http://wiki.openstack.org/Quantum/LBaaS/Architecture/Scheduler">http://wiki.openstack.org/Quantum/LBaaS/Architecture/Scheduler</a></div>
<div><br></div><div><br></div><div>Thanks,</div><div>Eugene.</div><div><br><div class="gmail_quote">On Thu, Dec 6, 2012 at 8:25 PM, John Gruber <span dir="ltr"><<a href="mailto:john.t.gruber@gmail.com" target="_blank">john.t.gruber@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Youcef,<div><br></div><div>Thank you for the block diagram. I had a couple of questions:</div><div><br></div><div>From your drawing, can I infer that the scheduler is to be provided as a python module and class and not a proper service interface? The decoupling through queue seems to be one of synchronous / asynchronous task scaling only. Why not a scheduler queue as well to allow the vendor line to be completely handled through AMQP messaging? The LBaaS vendor could create as simple or as complex a management system to interact with LBaaS through messaging. What are your thought about forcing the schedule coupling?</div>



<div><br></div><div>Is it safe to say that the other issues of thorny coupling you are worried about can be isolated to discrete functional areas where proper interface definitions and RPC could avoid them?  </div><div><br>



</div><div>I agree with you BTW.  I've been writing some 'glue' for a project and finding other areas in Quantum itself which are too tightly tied to the data model of VM interfaces and it created a few thorns. It was a time consuming exercise to make Quantum functionality live behind an interface which would work simply through other vendor's interfaces as well. </div>



<div><br></div><div>This is our trade-off of time vs complexity I know... </div><div><br></div><div>John</div><div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Wed, Dec 5, 2012 at 5:01 PM, Youcef Laribi <span dir="ltr"><<a href="mailto:Youcef.Laribi@eu.citrix.com" target="_blank">Youcef.Laribi@eu.citrix.com</a>></span> wrote:<br>



</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal">The discussion on scheduling has prompted me to think that there are several inter-linked components that we have so far not discussed in detail, and I’m worried that diving into implementation without understanding how the different components will eventually fit together will create us problems later on. For example, we haven’t so far discussed the APIs for “service type” management (and this is creating confusion in other thread discussions), or for device management, as these have impact on the LBaaS piece. We need to understand the big picture of the components that will be in place, their dependencies, and the vendor-specific pieces and where they would be located.<u></u><u></u></p>



<p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">To start this discussion I have drawn an initial picture with the components that I think would need to be in place. So let’s start discussing the need for each component, its functions, where does it live (is it a Quantum plugin? is it something else?), what are the dependencies on the other components (in terms of interactions or DB sharing). The component diagram is here: <a href="http://wiki.openstack.org/Quantum/LBaaS?action=AttachFile&do=view&target=Quantum+Services+components.png" target="_blank">http://wiki.openstack.org/Quantum/LBaaS?action=AttachFile&do=view&target=Quantum+Services+components.png</a><u></u><u></u></p>



<p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I want us to discuss this in a little bit more detail, before we get too much into implementation and realize the thorny issues later on. <u></u><u></u></p><p class="MsoNormal">



<u></u> <u></u></p><p class="MsoNormal">Thanks<span><font color="#888888"><u></u><u></u></font></span></p><span><font color="#888888"><p class="MsoNormal">Youcef<u></u><u></u></p></font></span></div>

</div><br></div></div>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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></div>