An application delivery controller (ADC) is a network device that manages client connections to complex Web and enterprise applications. In general, a controller is a hardware device or a software program that manages or directs the flow of data between two entities.
An ADC essentially functions as a load balancer, optimizing end-user performance, reliability, data center resource use and security for enterprise applications. Typically, ADCs controllers are strategically placed behind a firewall and in front of one or more application servers to be a single point of control that can determine the security needs of an application and provide simplified Authentication, Authorization and Accounting (AAA).
An ADC can accelerate the performance of applications delivered over the wide area network (WAN) by implementing optimization techniques such as compression and reverse caching. With reverse caching, new user requests for static or dynamic Web objects can often be delivered from a cache in the ADC rather than having to be regenerated by the servers.
Virtual application delivery controllers are particularly useful in highly virtualized data centers and cloud computing environments where customers need to be able to scale capacity up and down as application demand fluctuates. Many ADC vendors are working with cloud providers to deliver cloud load balancers for application acceleration, availability assurance and rapid scalability.