Distributed ADC Agents for Virtual Network Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current virtualized application delivery controller (ADC) deployments in datacenters are inefficient for handling east-west traffic, leading to increased latency, network congestion, and resource wastage due to the need for multiple hypervisor hops and centralized traffic management, which limits scalability and utilization of resources.
Innovation Solution
Implementing a distributed ADC solution where ADC agents are activated on each host machine to intercept and route requests locally, reducing hypervisor hops and network traffic, and allowing for scalable load balancing decisions closer to the client, thereby improving resource utilization and reducing network bandwidth requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a centralized virtual ADC is deployed to manage load balancing, then traffic distribution is simplified, but latency increases and network bandwidth is consumed due to multiple hypervisor hops
Solution Approach 1:
The centralized ADC functionality is segmented and distributed to individual host machines. Each host runs its own ADC agent that performs load balancing decisions locally, eliminating the need for centralized traffic management through multiple hypervisor hops and reducing request latency.
Solution Approach 2:
The architecture transitions from a single centralized ADC dimension to a distributed multi-dimensional architecture where ADC agents operate at multiple locations across the virtual network, enabling local decision-making and reducing the dimensional path length for traffic flow.
2Device complexity
If a centralized virtual ADC is used for load balancing, then traffic management is simplified, but network bandwidth is consumed due to traffic routing through the ADC
Solution Approach 1:
The ADC functionality is segmented across multiple host machines, allowing traffic to be balanced locally without being routed through a centralized ADC. This eliminates unnecessary network traffic and reduces bandwidth consumption while maintaining simplified traffic management through distributed agents.
3Speed
If physical ADCs are placed close to servers for optimal performance, then east-west traffic efficiency improves, but deployment flexibility is reduced
Solution Approach 1:
The ADC functionality is copied to each host machine as a lightweight agent, enabling multiple instances to operate simultaneously at different locations. This maintains the performance benefit of proximity to servers while preserving deployment flexibility through virtualization.
Solution Approach 2:
The ADC agent is designed as a universal component that can be deployed on any host machine regardless of location. This multi-functional design allows the same software component to serve both performance-critical and flexible deployment requirements across the virtual network.
4Reliability
If backup ADC instances are maintained for high availability, then system reliability improves, but resource utilization decreases due to idle backup ADCs
Solution Approach 1:
The ADC service is segmented into multiple distributed agents rather than relying on a single centralized ADC with backups. This segmentation allows any agent to handle traffic, eliminating the need for dedicated backup instances and improving resource utilization while maintaining high availability.
Solution Approach 2:
Each ADC agent operates autonomously and can independently handle traffic requests. This self-service capability means that any agent can take over if another fails, providing built-in failover without requiring dedicated backup resources.
Data Source
AI summary
A method, host machine, and a virtual network for distributing application delivery controller services in a virtual network are presented. The method includes activating a first application delivery controller (ADC) agent on at least a first host machine of a plurality of host machines included in the virtual network, wherein the first host machine is configured to host at least one client; intercepting, by the first ADC agent, a request from the at least one client, wherein the request is for a service provided by one server of a plurality of servers hosted by the plurality of host machines; selecting, by the first ADC agent, a server of the plurality of servers to serve the request; forwarding, by the first ADC agent, the intercepted request to the selected server; and relaying a response to the intercepted request received from the selected server to the at least one client.


