How Cisco dCloud Leverages HAProxy Enterprise

Cisco dCloud is a massive platform where customers, students, and anyone interested in learning about Cisco products can spin up a sandboxed demo environment for free. When someone wants to demo a product, they can log onto dCloud, find the software within the large catalogue, and schedule a session. A virtual machine will be provisioned for them. More than a million sessions to learn about Cisco products are started on dCloud each year!

Cisco relies on multiple HAProxy Enterprise instances for efficient load balancing, routing, and clustering. Read on to learn how Cisco built its dCloud platform using HAProxy Enterprise

The Design Requirements

Cisco dCloud creates virtual machines that host sandboxed demos. These servers must be proxied to public IP addresses that the client can access. Because the addresses are dynamic, the routing needs to be updated on the fly. Furthermore, routing information need to be synchronized across multiple load balancer instances.

Cisco dCloud provides a guided walk-through of its features so that newcomers can familiarize themselves with the layout. Although a browser plugin accomplished this, Cisco wanted to make the user experience better. They needed a way to install the feature without asking the user to install a plugin.

The Solution

Cisco solved its design requirements by leveraging several key features available within HAProxy Enterprise.

Map Files with Dynamic Updates

A map file is a key-value storage that lets you associate a request or a connection with custom metadata. You might use one to set different rate limits per URL, define HTTP redirects, or switch on/off backends for blue-green deployments.

For Cisco dCloud, Cisco uses HAProxy map files to associate a particular URL path with a backend host address and port. It stores and retrieves the backend server’s address at runtime, which allows it to use fewer public IPs. HAProxy Enterprise allows map files to be synchronized across multiple load balancers, ensuring that the data is consistent even if the client is routed to a different load balancer.

Learn more about the Update module for synchronizing map files across multiple load balancer instances. Options exist for setting the update interval, retry policy, and TLS encryption.

Response Body Injection

The Response Body Injection module (RBI) allows you to insert custom HTML or Javascript into a webpage before it loads. You might use this to display a cookie privacy disclaimer depending on the client’s country, change all http:// links to https://, or dynamically change the appearance of DEV versions of a website to differentiate them from PROD versions.

Cisco uses RBI to inject Javascript that creates a guided walkthrough of the dCloud platform. In this way, a user does not need to install a browser plugin to use this feature. Installing a plugin is painful for the end user and is sometimes simply impossible. RBI injects the Javascript into the response as it is streamed to the client.

Learn more about the Response Body Injection module for inserting custom HTML or Javascript into a webpage.

What Can HAProxy Enterprise Do for You?

HAProxy Enterprise packages many helpful modules needed for delivering modern applications. It also provides expert support, professional services, and backported features from the latest version of HAProxy.

Contact us today to learn more about HAProxy Enterprise.