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.
Get started today with these resources: