OpenStack Load Balancer: Native vs. Third-Party Choices

As a developer delivering a mission critical service for your organization, you need to ensure that service will always be up, highly available, and performant. This can be achieved with load balancing by distributing the workload between many workers at the backend, while the front is managed by the load balancing service that is routing requests to different backends.

OpenStack supports both native and third-party methods of load balancing, and each has its advantages and disadvantages. The choice between the two methods will be dependent on the familiarity with OpenStack, load balancing and on also on whether the need is to support a production or DevOps environment.

Read the Blog -

Transcript for Video:

Sachin: [00:18] Today, we are going to talk about load balancing in OpenStack. OpenStack supports native as well as third party methods of load balancing. There are advantages and disadvantages of each. We can go over in detail each of those a little bit later.

Sachin: [00:35] First, let's talk about what load balancing is. Load balancing is a technique used by service providers, IT departments, to provide a mission critical service, which is always available and it scales for the user requests. There are many load balancing techniques. One of the most common load balancing techniques is the round robin based load balancing. What that does is, it distributes the user requests across the workloads in a round robin manner. 

Sachin: [01:09] There are other more intelligent techniques, like a technique which monitors load on each back end worker to figure out where to serve the next user request from. What is the reason that we want load balancing in the first place? Let's say you are delivering a mission critical service for your organization. You want that service to be always up and available and performing. The way this can be achieved with load balancing is by distributing the workload between many workers at the back end, while the front is managed by the load balance service, which is routing requests to different back ends. With this technique, when the user requests increase in load, more workers can be spawned at the back end to take up that additional load. Similarly, when the load goes down, the workers in the back end can be scaled back.

Sachin: [02:08] Let's say we want to handle calamities with our infrastructure. Then, the back end can be planned so that it doesn't go down all at once, and some portion of it can be served by the front end load balance service. Due to all these unique capabilities, load balancing services are becoming essential in most modern IT, as well as application deployments. 

Sachin: [02:38] With that, let's talk about the third party load balancing support in OpenStack. Open Stack has a well known API which is called LBaaS. It's currently at version two. This API can be back filled by third party LBaaS services like AVI, F5 Networks and so on. 

Sachin: [02:59] The few considerations that may want you to choose a third party LBaaS is just the familiarity with an LBaaS solution. You might have an LBaaS system in your IT department or in your cloud which you already use and trust, and have automation set up around it. Your applications already use it. The other factor for choosing a third party LBaaS is, the third party LBaaS might be battle tested. It might be tested in your production at scale, and it is known to perform under peak loads.

Sachin: [03:45] What should be the considerations when going with native LBaaS service in OpenStack? The native LBaaS service in OpenStack, it's called Octavia, and this has been part of the OpenStack project since the Liberty release. The native LBaaS in OpenStack has distinct advantage of being fully compliant with the LBaaS V2 API, and is maintained by an open source community. People who already use OpenStack in their deployment might find it easier to use Octavia based LBaaS as the next step in their cloud journey.

Sachin: [04:26] Octavia is also fully integrated with Keystone, and is maintained like all other OpenStack services. If you have an application or a cloud deployment which works well with OpenStack, Octavia is an easier way to integrate LBaaS into the mix. But our experience at Platform9, the users who deploy OpenStack services for their CICD workloads are using the "batteries included" Octavia Project as their LBaaS solution, while the users who deploy OpenStack based workloads in production are choosing to use third party solutions.

Previous Video
OpenStack Designate: Enabling DNS as a Service
OpenStack Designate: Enabling DNS as a Service

Next Video
Kubernetes Operations with Kops
Kubernetes Operations with Kops