What is an Application Delivery Controller?

An application delivery controller (ADC)

What Is an Application Delivery Controller (ADC)?

An application delivery controller (ADC) is a network service that sits between users and your application servers. It spreads traffic across healthy servers, handles TLS encryption, checks server health, speeds up responses and filters attacks, so applications stay available, fast and secure. ADCs run as hardware, virtual appliances, software or a managed cloud service.

ADCs grew out of load balancers. Today the ADC is the control point for how users reach an application: it decides which server answers each request, what happens when one fails, and which traffic never gets through. Application delivery is the wider practice of keeping applications reachable and fast; the ADC is the component that does most of the work.

How an application delivery controller works

Follow one request from a user to your application:

1. The user’s browser looks up your domain in DNS. With global server load balancing (GSLB), DNS can answer with the nearest healthy site.

2. The request reaches the ADC’s virtual IP address (VIP). Users only ever see this address, never the servers behind it.

3. If the connection is encrypted, the ADC can terminate TLS and read the request.

4. It picks a server from the pool, based on its load balancing method and the latest health checks.

5. It forwards the request and returns the response, often compressed or served from cache.

6. If a server fails a health check, the ADC stops sending it traffic until it recovers.

How an application delivery controller routes a user request to a healthy server

An ADC can make its routing decision at two levels of the OSI model. At Layer 4, the transport layer, it routes on IP address and port. That is fast and works for any TCP or UDP application. At Layer 7, the application layer, it reads the request itself (host name, URL path, headers or cookies), so it can send /api requests to one pool of servers and /images to another.

What an application delivery controller does

Every ADC covers six jobs. Products differ in how deep each one goes.

Load balancing

The ADC spreads requests across a pool of servers so that no single server is overloaded or becomes a single point of failure. Common methods include round robin (each server in turn), least connections (the server with the fewest active sessions), weighted distribution (larger servers take more traffic) and content-based routing. Session persistence, also called sticky sessions, keeps a user on the same server when the application needs it. For the fundamentals, see what load balancing is and whether you need it.

Health monitoring and failover

An ADC checks every server continuously. A check can be as simple as a ping or a TCP connection, or as specific as an HTTP request that expects a particular response within a set time. When a server fails, the ADC takes it out of rotation and users carry on without noticing. When it recovers, it rejoins the pool. The same principle works between data centers: see automated datacenter failover and how DNS failover works.

SSL/TLS offloading

Encrypting and decrypting traffic takes processing power. The ADC terminates TLS on behalf of every server behind it, so certificates are managed in one place and servers spend their capacity on the application. Where traffic must stay encrypted all the way, the ADC re-encrypts it before passing it on. Current ADCs support TLS 1.3.

Application acceleration

An ADC makes applications respond faster without changing them. It caches frequently requested content, compresses responses, and reuses a small number of server connections for many users (TCP multiplexing). Many ADCs also speak HTTP/2 to browsers while the servers behind them stay on HTTP/1.1.

Security

Every request passes through the ADC, which makes it a natural place to stop attacks. A web application firewall blocks attacks such as SQL injection and cross-site scripting, the kinds of risk listed in the OWASP Top 10. Access control lists, rate limits and connection limits help absorb denial-of-service attacks before they reach your servers; CISA’s guide to DDoS attacks explains the main types. Some ADCs also authenticate users before they reach the application.

Traffic management

Beyond choosing a server, an ADC can route by host name or URL, rewrite headers and URLs, redirect HTTP to HTTPS, and show a maintenance page during planned work. Across regions, global server load balancing sends each user to the nearest healthy site. Inside Kubernetes, an ingress controller plays the same role for containerized applications; the Kubernetes documentation on Ingress explains the model.

ADC vs load balancer

A load balancer distributes traffic across servers and removes failed ones. An application delivery controller does that too, then adds TLS offloading, acceleration, security and Layer 7 traffic control. Every ADC is a load balancer, but not every load balancer is an ADC.

Capability

Basic load balancer

Application delivery controller

Spreads traffic across servers

Yes

Yes

Health checks and failover

Yes

Yes

Routing by URL, host or header (Layer 7)

Sometimes

Yes

SSL/TLS offloading

Sometimes

Yes

Caching, compression, TCP multiplexing

Rarely

Yes

Web application firewall

No

Built in or integrated

Global server load balancing

No

Often available

In practice the terms blur. Many products sold as load balancers now include Layer 7 features, and many people say “load balancer” when they mean an ADC. The useful question is which of these jobs your applications need.

ADC deployment models

ADCs come in four forms. The functions are much the same; what changes is where the ADC runs and who looks after it.

Model

Where it runs

Who maintains it

Best suited to

Hardware appliance

A dedicated device in your data center

Your team, with vendor hardware support

High, steady traffic in one location

Virtual appliance (virtual ADC)

A virtual machine on your hypervisor or in a public cloud

Your team

Appliance features without dedicated hardware

Software or container

Your servers, containers or Kubernetes clusters

Your team

DevOps teams automating delivery per application

ADC-as-a-service

The provider’s network, in front of your applications

The provider

Teams that want the outcome without running the infrastructure

A “global” ADC is not a fifth model: any of these can work across sites when it includes global server load balancing.

Total Uptime offers both ends of this range. ADC-as-a-service runs on our anycast network in front of applications on-premises, in colocation or in any cloud. edgeADC, our self-hosted ADC, gives your team Layer 4–7 load balancing, acceleration and security on your own infrastructure.

When do you need an ADC?

You probably need an ADC if any of these apply:

– You run an application on more than one server, or plan to.

– You have uptime commitments to customers or to internal users.

– You manage TLS certificates on many servers and want one place to do it.

– Your applications face the public internet and attract attacks.

– You serve users from more than one site, region or cloud. See how to increase application availability.

– Your hardware ADC is due for renewal or nearing end of life. Our comparisons with F5 and NetScaler set out the options.

Frequently asked questions

What does ADC stand for in networking?

In networking, ADC stands for application delivery controller: the service in front of your application servers that manages how users reach them. It balances load, offloads TLS, checks server health and filters attacks. In electronics, ADC means analog-to-digital converter, which is unrelated.

What is ADC in NetScaler?

NetScaler ADC is the application delivery controller made by NetScaler, now a business unit of Cloud Software Group. It was sold as Citrix ADC from 2018 until the NetScaler name returned in 2022. If you are weighing a NetScaler renewal, see our NetScaler comparison and our article on NetScaler vulnerabilities.

What is a virtual ADC?

A virtual ADC is ADC software packaged as a virtual machine. It runs on your own hypervisor or in a public cloud instead of on dedicated hardware, offers the same functions as an appliance, and can be scaled, copied or moved like any other virtual machine.

Where is an ADC deployed?

Traditionally, in the data center between the firewall and the application servers, often in a DMZ. Today ADCs also run in public clouds, inside Kubernetes clusters, and as a managed service in front of applications wherever they are hosted.

What is an ADC in cyber security?

An ADC is a traffic manager and a security control at once, because every request passes through it. It can terminate and inspect TLS traffic, run a web application firewall, block traffic by country or IP address, limit request rates and absorb denial-of-service attacks before they reach your servers.

Can I run an ADC as a managed service?

Yes. With ADC-as-a-service, the provider runs the ADC on its own network and you manage the configuration through a portal or API. Total Uptime’s ADC-as-a-service works with applications on-premises, in colocation or in any cloud.

Run your ADC managed or self-hosted

Total Uptime delivers ADCs both ways. ADC-as-a-service places a fully managed ADC in front of your applications. edgeADC runs on your own infrastructure. Compare managed pricing and self-hosted pricing, or talk to an engineer.

Table of Contents

You might also like