[openstack-dev] [Neutron][LBaaS] RackSpace API review (multi-call)

Vijay Venkatachalam Vijay.Venkatachalam at citrix.com
Thu May 1 13:16:28 UTC 2014


I am expecting to be more active on community on the LBaaS front. 

May be reviewing and picking-up a few items to  work as well.

I had a look at the proposal. Seeing Single & Multi-Call approach for each workflow 
makes it easy to understand. 

Thanks for the clear documentation, it is welcoming to review :-). I was not allowed to comment on WorkFlow doc, can you enable comments?

The single-call approach essentially creates the global pool/VIP. Once VIP/Pool is created using single call, are they reusable in multi-call?
For example: Can a pool created for HTTP endpoint/loadbalancer be used in HTTPS endpoint LB where termination occurs as well?

Also, would it be useful to include PUT as a single call? I see PUT only for POOL not for LB.
A user who started with single-call  POST, might like to continue to use the same approach for PUT/update as well.

Thanks,
Vijay V.

-----Original Message-----
From: Jorge Miramontes [mailto:jorge.miramontes at RACKSPACE.COM] 
Sent: Thursday, May 1, 2014 3:57 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Neutron][LBaaS] Thoughts on current process

Oops! Everywhere I said Samuel I meant Stephen. Sorry you both have SB as you initials so I got confused. :)

Cheers,
--Jorge




On 4/30/14 5:17 PM, "Jorge Miramontes" <jorge.miramontes at RACKSPACE.COM>
wrote:

>Hey everyone,
>
>I agree that we need to be preparing for the summit. Using Google docs 
>mixed with Openstack wiki works for me right now. I need to become more 
>familiar the gerrit process and I agree with Samuel that it is not 
>conducive to "large" design discussions. That being said I'd like to 
>add my thoughts on how I think we can most effectively get stuff done.
>
>As everyone knows there are many new players from across the industry 
>that have an interest in Neutron LBaaS. Companies I currently see 
>involved/interested are Mirantis, Blue Box Group, HP, PNNL, Citrix, 
>eBay/Paypal and Rackspace. We also have individuals involved as well. I 
>echo Kyle's sentiment on the passion everyone is bringing to the project!
>Coming into this project a few months ago I saw that a few things 
>needed to be done. Most notably, I realized that gathering everyone's 
>expectations on what they wanted Neutron LBaaS to be was going to be 
>crucial. Hence, I created the requirements document. Written 
>requirements are important within a single organization. They are even 
>more important when multiple organizations are working together because 
>everyone is spread out across the world and every organization has a 
>different development process. Again, my goal with the requirements 
>document is to make sure that everyone's voice in the community is 
>taken into consideration. The benefit I've seen from this document is 
>that we ask "Why?" to each other, iterate on the document and in the 
>end have a clear understanding of everyone's motives. We also learn 
>from each other by doing this which is one of the great benefits of open source.
>
>Now that we have a set of requirements the next question to ask is, 
>"How doe we prioritize requirements so that we can start designing and 
>implementing them"? If this project were a completely new piece of 
>software I would argue that we iterate on individual features based on 
>anecdotal information. In essence I would argue an agile approach.
>However, most of the companies involved have been operating LBaaS for a 
>while now. Rackspace, for example, has been operating LBaaS for the 
>better part of 4 years. We have a clear understanding of what features 
>our customers want and how to operate at scale. I believe other 
>operators of LBaaS have the same understanding of their customers and 
>their operational needs. I guess my main point is that, collectively, 
>we have data to back up which requirements we should be working on. 
>That doesn't mean we preclude requirements based on anecdotal 
>information (i.e. "Our customers are saying they want new shiny feature 
>X"). At the end of the day I want to prioritize the community's 
>requirements based on factual data and anecdotal information.
>
>Assuming requirements are prioritized (which as of today we have a 
>pretty good idea of these priorities) the next step is to design before 
>laying down any actual code. I agree with Samuel that pushing the cart 
>before the horse is a bad idea in this case (and it usually is the case 
>in software development), especially since we have a pretty clear idea 
>on what we need to be designing for. I understand that the current code 
>base has been worked on by many individuals and the work done thus far 
>is the reason why so many new faces are getting involved. However, we 
>now have a completely updated set of requirements that the community 
>has put together and trying to fit the requirements to existing code 
>may or may not work. In my experience, I would argue that 99% of the 
>time duct-taping existing code to fit in new requirements results in 
>buggy software. That being said, I usually don't like to rebuild a 
>project from scratch. If I can I try to refactor as much as possible 
>first. However, in this case we have a particular set of requirements 
>that changes the game. Particularly, operator requirements have not been given the attention they deserve.
>
>I think of Openstack as being cloud software that is meant to operate 
>at scale and have the necessary operator tools to do so. Otherwise, why 
>do we have so many companies interested in Openstack if you can't 
>operate a cloud that scales? In the case of LBaaS, user/feature 
>requirements and operator requirements are not necessarily mutually 
>exclusive. How you design the system in regards to one set of 
>requirements affects the design of the system in regards to the other 
>set of requirements. SSL termination, for example, affects the ability 
>to scale since it is CPU intensive. As an operator, I need to know how 
>to provision load balancer instances efficiently so that I'm not having 
>to order new hardware more than I have to. With this in mind, I am 
>assuming that most of us are vendor-agnostic and want to cooperate in 
>developing an open source driver while letting vendors create their own 
>drivers. If this is not the case then perhaps a lot of the debates we 
>have been having are moot since we can separate efforts depending on 
>what driver we want to work on. The only item of Neutron LBaaS that we 
>need to have consensus on then is the API (web app, database, messaging 
>system, etc.). Keep in mind that the API implies what feature/user 
>requirements are satisfied, but no so much for operator requirements. I 
>think this is one reason why we have been working on API proposals. 
>Samuel, thank you for the time you spent on your proposal as we know how much time and effort it takes.
>
>Because several of us have been spending large amounts of time on API 
>proposals, and because we can safely assume that most operational 
>requirements are abstracted into the driver layer I say we continue the 
>conversation around the different proposals since this is the area we 
>definitely need consensus on. So far there are three 
>proposals--Stephen's, Rackspace's and Eugene's. To date, we honestly 
>haven't had an actual discussion on the pros and cons of each proposal. 
>To give structure to this we here at Rackspace have been going to great 
>lengths to make sure we have enough tangible documentation in order to 
>clearly convey our thoughts. We also went to great lengths to satisfy 
>the user/feature requirements in our API. Here is what we have done:
>
>- An API specification located here ==> 
>https://docs.google.com/document/d/1mTfkkdnPAd4tWOMZAdwHEx7IuFZDULjG9bT
>mWy
>X
>e-zo/edit
>- Single API call workflows & multiple API call workflows of each of 
>the use cases (#1 through #9 for now) from 
>https://docs.google.com/document/d/1Ewl95yxAMq2fO0Z6Dz6fL-w2FScERQXQR1-
>mXu
>S
>INis/edit#heading=h.48fieovwttzg. Our workflows are located here ==>
>https://drive.google.com/#folders/0B2r4apUP7uPwRVc2MzQ2MHNpcE0
>- A lightweight proof of concept that is in the works so that people 
>that need to actually send requests to an API to believe in it can do 
>so. We will send an update in a few days when this POC is complete.
>
>In order to fairly compare proposals I think it would be nice if each 
>proposal give workflows on how their API will operate. This is isn't 
>necessary but I think it will definitely give structure in any 
>discussions we have when comparing. If others have thoughts on how to 
>compare the proposals on equal footing then by all means speak up.
>
>Once we come to a consensus on the API then we can figure out how to 
>make iterative changes in order to get the API to the consensus state. 
>That is a separate conversation in my mind. First we need to agree on a 
>spec without the confines of looking at current implementation.
>
>
>Cheers,
>--Jorge
>
>
>P.S. Sorry for the delay in responding to the ML. Just reading them 
>takes several hours.
>
>
>_______________________________________________
>OpenStack-dev mailing list
>OpenStack-dev at lists.openstack.org
>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


_______________________________________________
OpenStack-dev mailing list
OpenStack-dev at lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list