Enhance Your OpenStack Private Cloud with Load Balancing as a Service
Rackspace Private Cloud as a Service customers now have new fully-managed options to improve the performance and efficiency of their private cloud with load balancing as a service.
Based on the OpenStack Octavia project, our load balancing as a service offer is available in the Rackspace Private Cloud Powered by OpenStack (RPC-O) v17.1 release.
In this post, we’ll explore the benefits of load balancing as a service in your private cloud environment, and share a few best practices, based on our experience operating OpenStack clouds at scale for some of the world’s largest companies.
Before we discuss Octavia, let’s first understand load balancing, why it’s important and how we use it in your OpenStack private cloud deployment.
Load balancing is the process of distributing workloads across multiple computing resources in your cloud. By doing so, your cloud will run more effectively and efficiently, allowing you to maximize resource availability and even save money.
Within your OpenStack private cloud, we deploy load balancers in the control plane and the data plane. The control plane manages and distributes API requests for the OpenStack services deployed in your cloud. It is vital to keeping services such as Nova, Neutron, etc. up and running so you can provision resources on command. In RPC-O, we utilize either HAProxy or F5 load balancing solutions to handle control plane requests. Data plane load balancing, on the other hand, ensures your provisioned cloud compute and storage resources are available to handle requests.
Octavia is a software-defined load balancing service for your OpenStack-provisioned compute and storage resources in the data plane and includes these key features:
- Built-in active/standby high-availability to ensure your critical load balancer instances are always able to serve requests.
- Various health monitoring types such as HTTP, HTTPS, PING, TCP, and TLS-HELLO, which ensure load balanced resources are up and functioning as intended.
- Support for multiple listeners, utilizing the HTTP, HTTPS (through TCP passthrough – in a future release we will support TLS offload), or TCP protocols providing you the upmost flexibility for port and protocol combinations.
- Support for multiple pools and layer 7 load balancing, to create advanced load balancing rules, such as pools of static content servers in addition to your application servers or redirection of HTTP endpoints to HTTPS.
Fine grain control:
- Granular quota management provides ultimate control over your provisioned load balancer resources.
- Session persistence based on source IP or HTTP cookies, supporting stateful applications. HTTP header insertion capabilities to ensure load balanced resources can receive useful client information.
Now that you have a general understanding of Octavia’s capabilities, we’d like to share some best practices, so you can get the most out of this powerful service.
Always provision a load balancer for applications
Even if you only use a single instance of your application. We consider this a good practice for several reasons. First, having a load balancer in front of your application provides you the ability to roll out updates seamlessly by simply swapping nodes in and out of rotation. Second, it prepares you for future scale. All you do is add node members once you are ready, instead of scrambling to configure your load balancer when a scaling event occurs. Third, it’s easy to do initially, and it’s usually very cumbersome to do later as you have to consider changing IP addresses, DNS entries, TLS/SSL certificates etc.
Optimize your resources with L7 load balancing.
The Layer 7 load balancing feature is very powerful. You can take advantage of it by setting up node pools to handle specific requests, which allows you to optimize your resource consumption. For example, if you are currently handling static image requests on the same server as your application, you can instead have your static images served by a dedicated pool and use the L7 feature to route all image requests to that pool. This allows you to optimize your backend servers more easily and ultimately save on costs.
Provide health endpoints
The Octavia load balancer has a wide variety of health monitors (e.g. ping, TCP, HTTP, etc.) to check the availability of the underlying application. As a best practice, it provides a health endpoint which performs meaningful checks (e.g. database connection) to ensure only healthy nodes are being put into rotation.
The above best practices are just a few of many. The important thing to understand is you can significantly improve the efficiency and performance of your private cloud deployment with load balancing as a service.
Rackspace manages thousands of cloud load balancer instances in our public cloud, and we are a founding member of the Octavia project. That means we lead upstream contributions to Octavia, and one of our own Rackers serves the community as the Project Team Lead for Octavia.
If you’d like to learn more about how Rackspace can help your organization use this newly supported service, as well as how it can affect your cloud transformation take advantage of a free strategy session with a private cloud expert — no strings attached. SIGN UP NOW.