IBM Haifa team working on OpenStack networking infrastructure took up the challenge of defining and implementing one of the most important cloud computing features, the lack of which hinders the ability of OpenStack based clouds to succeed in highly competitive cloud providers market. This feature is Elastic Load Balancer as a Service (ELBaaS), a major step forward over the exiting community reference implementation, a highly available active-passive Octavia configuration, available since the Mitaka release.
IBM Haifa has conceived the notion of hierarchical ELBaaS architecture composed of two layers – a distributor layer responsible for receiving the client traffic and spreading it evenly and consistently over the smarter load balancing nodes in the elastic second layer. The distributor layer can have different implementations, ranging from HW boxes to light-weight SW appliances, and can be either dedicated to a specific client or shared. What’s important is that the distributor itself is highly available so there is no single point of failure in the system. The second layer is designed to elastically grow and shrink similarly to the application servers’ pool. Individual load balancer nodes in this layer are provided with different capacities depending on the service they have to provide and are placed to have optimal reachability to the application server nodes.
After presenting the design and the initial PoC of Octavia-based ELBaaS to the community at the Mitaka summit in October 2015 and at the mid-cycle design meetings in January 2016, IBM Haifa is leading the community efforts towards including ELBaaS flavor in Octavia. In April 2016, Dean Lorenz of our Cloud Networking team delivered an OpenStack summit talk describing the LBaaS goals, the proposed elastic design, and the demo. Since then, the team has embarked on driving the community implementation.
First, we have submitted a series of design blueprints that describe the required Octavia extensions and pushed them through the community review process. As a result, it was agreed that the first flavor to enter the code-base is active-active N+1 LBaaS that follows the hierarchical architecture but not yet includes the LB pool elasticity, leaving this enhancement to the future. Second, we have restructured the PoC code and have adapted its low level design to meet this and other community decisions. Third, the patch-wise code contribution is in progress and is planned to be testing-ready soon. To drive this to completion, Valleriya Perelman of our Cloud Networking team is going to participate in mid-cycle design meetings in San Antonio next week where she will lead discussions on the outstanding design and implementation issues. We anticipate these meting to result in a definitive roadmap for enabling active-active Octavia and a clear plan towards the ultimate goal – the Elastic Load Balancer as a Service for OpenStack.
Please find in attachment a file entitled "A roadmap towards Elastic LBaaS from the existing Active/Standby implementation".