Configuring Load Balancing and Service Discovery with Docker Universal Control Plane

Nicola Kabar

Mar 02 2016

Modern applications are broken up into, and advertised as smaller, decoupled microservices that can be easily scaled across large compute clusters. The microservices approach emphasizes two key architectural considerations: service discovery and load balancing.

As developers build their applications to scale, they need to consider and design how each service is being discovered by other services from within or outside the cluster. Additionally, as these services scale horizontally across the cluster, they should be equally utilized for maximum load distribution.

We recently announced Docker Datacenter, which enables organizations to deploy a Containers as a Service (CaaS) platform on-premises or in their virtual private cloud. CaaS is an IT-managed and secured application environment where developers can self service build and deploy applications. Docker Datacenter includes Universal Control Plane (UCP), Docker Trusted Registry (DTR), and Commercially Supported Docker Engine to build, ship and run distributed applications anywhere. Today, we are releasing a supported reference architecture to help you design and configure UCP with load balancing and service discovery.

The reference architecture will help you configure a highly-available UCP cluster consisting of multiple nodes running application containers and one that is dedicated as the load balancer running Interlock (an event-driven service registrator) and your preferred industry-standard load balancer (NGINX or HAProxy). A sample application will be used to demonstrate deploying a distributed application on a multi-host cluster that is connected using Docker’s native multi-host network defined in the Compose file. Once configured and deployed, all requests generated by a user to submit transactions or view results will be load balanced through the load balancer to the appropriate services.

The reference architecture will guide you through the setup, detailed configurations, and best practices to build a production-ready CaaS platform with service discovery and load balancing.

Get started today with these resources:


2 thoughts on “Configuring Load Balancing and Service Discovery with Docker Universal Control Plane

  1. UCP has a nice web interface, but I simply don’t see the value add. For example, I could do the above service discovery example with Consul/Registrator without too much trouble.

    Can somebody please “sell” me on UCP more? The web interface is nice to look at but any real work is going to be done through scripts/command line.


    • The value of UCP is not only in the the GUI. UCP enables enterprises to manage and deploy their applications to any environment, whether on-premises, VPC or public cloud. Since UCP runs on top of Swarm it benefits from the very same Docker Native APIs that Swarm can use, and can scale to a production level environment. You can also create and manage clusters all from within UCP. UCP also comes with LDAP/AD integration to easily set up teams and orgs within the GUI, the ability to set Role-based-access-controls so you can secure your images, HA out of the box, TLS out of the box and has a Native integration with DTR. This allows you to SSO into DTR and pull images from the registry into UCP. Docker Content trust signs images, and enables IT Operations teams to set policies like “only pull signed images” into production. You can also use Docker Compose to deploy applications into UCP. Again, UCP is part of Docker Datacenter (DDC). DDC comes with DTR + UCP + Commercial Support for Docker Engines.

Leave a Reply