The approaches described in this section could be pursued but are not necessarily approaches that have previously been conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Websites, web and mobile applications, cloud computing, and various web and mobile services have been rising in popularity. Some examples of fast growing consumer services include smart phone applications, location based services, navigation services, e-book services, video applications, music applications, Internet television services, Voice over IP, and so forth. Subsequently, more and more servers hosting these applications are deployed within data networks including the Internet to accommodate the increasing computing and data storage needs. These servers are typically arranged in data centers or web farms, which may include intermediate network devices such as Application Delivery Controllers (ADC), Global Server Load Balancers (GSLB) and/or Server Load Balancers (SLB).
In a typical load balancing scenario, an application or service hosted by a group of servers is front-ended by a load balancer (LB) (also referred to herein as a LB device) which represents this service to clients as a virtual service. Clients needing the service can address their packets to the virtual service using a virtual Internet Protocol (IP) address and a virtual port. For example, www.example.com:80 is a service that is being load balanced and there is a group of servers that host this service. An LB can be configured with a virtual IP (VIP) e.g. 100.100.100.1 and virtual port (VPort) e.g. Port 80, which, in turn, are mapped to the IP addresses and port numbers of the servers handling this service. The Domain Name Service (DNS) server handling this domain can be configured to send packets to the VIP and VPort associated with this LB.
Once an ADC, or any other network device, has been deployed in a network, it may need to be upgraded or downgraded for any number of reasons. For services that need to operate continuously, any change in the intermediate network device will disrupt the flow of traffic over the network and the user's ability to access the service over the network through a client device. Data may also be lost in transit. This disruption in service may affect the quality of the service, as well as increase the response time for the client. Furthermore, once a network device has had a software update, it may need to be restarted, which will cause the existing session to be lost.
Additionally, Layer 7 network sessions may be particularly data-intensive. Thus, it may not be feasible to prepare a network device providing an application layer service for an upgrade or downgrade by copying all of the data from the first network device to a second network device. For example, a client device may be streaming a video over the network, or accessing an encrypted file. Copying the entire network session to a second network device to also provide the streaming video or encrypted file for all users may use too many resources.
Thus, a mechanism is needed whereby planned changes may be made to a network device within a network without resulting in disruption to the service being provided by the network device.