An application delivery controller is a data center network device that helps manage client connections to complex Web and enterprise applications. Enterprises typically deploy an application delivery controller behind a firewall and in front of one or more application servers.
The application delivery controller has the core functionality of a server load balancer, which directs clients to individual servers based on total existing connections, CPU utilization and other factors. It also performs computationally intensive application delivery and session management functions that negatively affect server performance, such as application acceleration, SSL VPN offloading and application layer security.
The application delivery controller evolved from traditional load balancers and multilayer switches. Application delivery controllers are traditionally hardware appliances, but many vendors have begun selling virtual appliances -- software-based versions of their products -- in order to offer customers competitive prices and more deployment flexibility. Virtual application delivery controllers are particularly useful in highly virtualized data centers and cloud computing environments where customers need to install new application delivery controllers quickly and scale their capacity up and down as application demand fluctuates. Some vendors recommend virtual application delivery controllers only in test and development environments, while others have built software that is appropriate for production environments.