DYNAMIC LOAD BALANCING AND SCALING OF ALLOCATED CLOUD RESOURCES IN AN ENTERPRISE NETWORK
Various exemplary embodiments relate to a workload distribution system for an enterprise network extended in to a cloud network and a related method. The enterprise network may include a series of servers in a private enterprise network and a scalable series of servers in a cloud network. The enterprise network may employ one or more load balancers in both a private enterprise network and cloud network that are connected to each series of servers to distribute work amongst the servers in both networks based on criteria such as overall system performance and costs. The enterprise network may also employ one or more controllers to scale the number of cloud servers allocated to the enterprise network based on the system workload and other user-defined criteria, such as revenue generated per work request.
1 . A system for managing resources in a cloud network allocated to a private enterprise network, the system comprising:
a first series of servers comprising virtual machines in the cloud network allocated to the private enterprise network;
a second series of servers comprising computing resources in the private enterprise network;
a load balancer in the private enterprise network for distributing work among members in the first and second series of servers based on performance data of the first and second series of servers; and
a controller in the private enterprise network comprising a performance monitor for collecting the performance data of the first and second series of servers.
2 . The system of claim 1 , further comprising:
a second load balancer in the cloud network for distributing work among members of the first series of servers, wherein the first load balancer in the private enterprise network identifies and distributes work to the second load balancer as a single server in the cloud network.
3 . The system of claim 1 , the controller further comprising:
a scaling manager for deciding when to add or remove servers from the first series of servers, wherein the decision by the scaling manager is based upon user-specified criteria; and
an instance manager for adding and removing servers from the first series of servers based on the decision of the scaling manager.
4 . A load balancer for managing workloads in an enterprise network, the load balancer comprising:
a load balancing module for dispatching work requests among a first series of servers in a cloud network allocated to a private enterprise network and a second series of servers in the private enterprise network; and
a monitoring module for tracking performance of servers comprising the enterprise network by collecting performance data from the first and second series of servers.
5 . The load balancer of claim 4 , further comprising:
a server list comprising entries for each server in the first series and second series of servers.
6 . The load balancer of claim 4 , wherein the load balancer connects to the first series of servers through at least a data plane connection.
7 . The load balancer of claim 4 , wherein the load balancing module, in dispatching requests, uses an procedure consisting of at least one member of the group of:
a first procedure comprising the load balancing module choosing a destination server with the least outstanding connections or requests;
a second procedure comprising the load balancing module choosing a destination server that has the smallest response time; and
a third procedure comprising load the balancing module choosing a destination server based on a weighted round-robin allocation method.
8 . A controller for managing resources in an enterprise network, the controller comprising:
a scaling manager for determining a number of servers in a first series of servers in a cloud network allocated to a private enterprise network and in a second series of servers in the private enterprise network that should be active, the determination based on performance of the first and second series of servers; and
an instance manager for adding or removing at least a server from the first series of servers based on the decision of the scaling manager.
9 . The controller of claim 8 , further comprising:
a performance monitor for collecting performance data of the first and second series of servers and providing calculated performance metrics based on the collected performance data to the scaling manager.
10 . The controller of claim 8 , wherein the instance manager connects to the first series of servers through at least a control plane connection.
11 . A method of sending a work request to a server in an enterprise network, the method comprising:
formulating, by a load balancing module hosted by a load balancer, a request decision rule based on criteria specified by a user;
choosing, by the load balancing module, a destination server, the destination server chosen from a server list hosted by the load balancer through the execution of the decision rule by the load balancing module; and
dispatching, by the load balancing module, the work request to the destination server.
12 . The method of claim 11 , wherein the user-specified criteria comprises a system performance metric consisting of a least one member of the group of:
average number of completed requests per second;
response time;
energy usage;
server load;
bandwidth costs;
processing costs;
storage usage costs; and
active time connected.
13 . The method of claim 11 , wherein the request decision rule uses a method consisting of at least one member of the group of:
a first rule comprising a preference to always send a request to a server in a private enterprise network before sending a request to a server in a cloud network allocated to the private enterprise network;
a second rule comprising choosing a server that would maximize performance in the enterprise network;
a third rule comprising choosing a server that would maximize performance in the enterprise network per dollar spent; and
a fourth rule comprising choosing a server that would maximize revenue generated.
14 . A method of adding at least a server to an enterprise network, the method comprising:
determining, by a controller, that an application operating within the enterprise network comprising a private enterprise network and an allocated portion of a cloud network is operating below a threshold performance metric;
determining, by the controller, a number of servers in the cloud network to add to a series of servers in the cloud network allocated to the private enterprise network that would raise the performance metric of the application above the threshold value;
starting, by the controller, at least one new server, the controller determining the number of servers to be started;
checking, by the controller, the series of servers in the cloud network for a choke point; and
monitoring, by the controller, the enterprise network to determine whether to add or remove servers from the series of servers in the cloud network.
15 . The method of claim 14 , the checking step further comprising:
sending, by a load balancer module, a first set of requests to the server added by the controller;
removing, by the controller, the added server when the response time of the added server is substantially similar to the average response time of the enterprise network;
sending, by the load balancer module, a second set of requests to the added server;
increasing, by the controller, a value on a choke counter recording the number of choke events when the second set of requests causes the added server to choke; and
removing, by the controller, the added server when the choke counter passes a threshold value.
16 . The method of 14 , wherein the load balancer module sends the second set of requests at a rate equal to the average throughput of the enterprise network.
17 . A method of removing a server from an enterprise network, the method comprising:
comparing, by a controller, the workload of the enterprise network, the enterprise network comprising a first series of servers in a cloud network allocated to the enterprise network and a second series of servers in private enterprise network to the total throughput of the enterprise network;
marking, by the controller, at least a server in the first series of servers for termination when the total system workload is below a threshold value of the total throughput of the enterprise network; and
removing, by the controller, the marked server from the first series of servers.
18 . The method of claim 17 , further comprising:
dispatching, by a load balancer module, a series of work requests amongst the first and second series of servers that were not terminated by the controller.