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.
An ADC can accelerate the performance of applications delivered over the wide area network (WAN) by implementing optimization techniques such as application classification, compression and reverse caching. 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 application delivery controller can be purchased physically as a hardware appliance or virtually as a software program. Virtual application delivery controllers are particularly useful in large enterprise data centers and cloud computing environments where customers need to be able to scale capacity up and down as application demand fluctuates.