High Availability and Load Balancing with Umango
How to plan for resiliency and throughput while respecting session constraints from MFD-initiated workflows.
Overview
Umango is optimized for high throughput and can scale horizontally; however, scan sessions initiated from MFDs have architectural constraints that affect how load balancing and failover should be designed. This article explains supported patterns and recommended practices for high-volume and resilient deployments.
Active/Active Load Balancing
Not supported: True active/active load-balanced clustering is not supported.
- Why: MFD-initiated scan workflows are memory-based and session-bound to the specific Umango server that established the session.
- Impact: A load balancer that distributes subsequent requests to a different node will break the workflow and cause job failures.
- Implication: Avoid round-robin or least-connections without affinity; do not attempt stateless/active-active clustering.
Scale-Out vs. Scale-Up
As a rule of thumb, multiple servers (scale-out) deliver better throughput and stability than a single large host (scale-up) with the same total core count, due to reduced contention and improved parallelism at the OS/hardware level.
Recommended Architecture
- Multiple Umango servers servicing defined sets of MFDs.
- Session affinity (sticky sessions): Use source-IP or equivalent persistence so each MFD consistently routes to the same server.
- Failover (Active/Passive):
- Keep standby nodes registered and ready.
- On outage, re-route traffic via load balancer failover rules or re-point affected MFDs to the standby server.
- This provides resilience but is not a true active/active model.
Licensing Considerations
- Licenses are hardware-bound; each server requires its own license.
- For active/passive, allocate a license for both the active node and the standby node.
Summary
- Active/active: Not supported due to session-bound MFD workflows.
- High volume: Prefer scale-out (multiple servers) over a single large server.
- Routing: Enforce sticky sessions to maintain device-to-server affinity.
- Resiliency: Use active/passive failover with traffic re-route or device re-pointing.
- Licensing: One license per server (including standby).
Link to this article https://umango.com/KB?article=150