O que é um controlador de entrega de aplicações (ADC)?

22 de maio de 2024

Autores

Chrystal R. China

Writer, automation & ITOps

Michael Goodwin

Editorial lead, Automation & ITOps

O que é um controlador de entrega de aplicações (ADC)?

Um controlador de entrega de aplicações (ADC) é um dispositivo de rede usado para otimizar a entrega de aplicações pela internet, tipicamente como parte de uma rede de entrega de aplicações (ADN).

Um ADC pode ser um aparelho de hardware ou um programa de software e geralmente é colocado na zona desmilitarizada (DMZ) de uma rede empresarial, entre o firewall e um ou mais servidores de aplicações. Os ADCs atuam como proxies reversos que recebem, descriptografam, validam e direcionam solicitações de clientes antes de enviar respostas criptografadas de volta ao usuário.

Os ADCs ajudam as empresas a modernizar aplicações de rede, acelerar conexões entre máquinas clientes e servidores web, otimizar o balanceamento global de carga de servidores (GSLB) e aumentar a disponibilidade geral das aplicações para os usuários finais.

Vista aérea de rodovias

Fique por dentro da nuvem 


Receba o boletim informativo semanal do Think para ver orientações especializadas sobre a otimização das configurações multinuvem na era da IA.

ADCs e balanceadores de carga

A evolução dos controladores de entrega de aplicativos está intimamente ligada ao desenvolvimento de aplicações web, data centers e do amplo campo do gerenciamento de redes.

No final dos anos 1990 e início dos anos 2000, com a comercialização da internet e o aumento do tráfego web, as empresas precisavam de uma solução para garantir que sites e aplicativos pudessem lidar eficientemente com grandes volumes de tráfego de aplicações. O principal desafio era encontrar uma forma de distribuir as solicitações recebidas entre vários servidores para garantir alta disponibilidade e resiliência da rede.

A primeira geração de dispositivos criados para resolver esse desafio foi chamada de balanceadores de carga. Inicialmente, eles eram simples e operavam na camada de transporte. Os balanceadores de carga se concentravam em distribuir o tráfego recebido entre vários servidores para equilibrar as cargas e evitar sobrecarregar qualquer servidor individualmente.

Com o aumento da complexidade de aplicativos e sites, os balanceadores de carga legados perderam popularidade por não conseguirem analisar e tomar decisões com base no conteúdo das solicitações dos usuários (além de apenas endereços IP e portas). Isso levou os desenvolvedores a adotar soluções de balanceamento de carga na camada 7, que podiam inspecionar o conteúdo das mensagens na camada de aplicação.

Os balanceadores de carga avançados podiam rotear o tráfego com base em fatores como cabeçalhos HTTP, cookies ou até mesmo solicitações de páginas específicas, facilitando estratégias mais sofisticadas de gerenciamento de tráfego, como persistência de sessão (ou “stickiness”) e roteamento baseado em conteúdo. Com o passar do tempo, à medida que os desenvolvedores adicionavam mais funcionalidades, esses balanceadores de carga se transformaram nos controladores inteligentes que hoje chamamos de ADCs.

IBM DevOps

O que é DevOps?

Andrea Crawford explica o que é DevOps, seu valor e como suas práticas e ferramentas ajudam você a migrar suas aplicações por todo o pipeline de entrega de software, desde a concepção até a produção. Conduzido pelos principais líderes da IBM, o conteúdo foi concebido para ajudar os líderes empresariais a adquirir o conhecimento necessário para priorizar os investimentos em IA que podem estimular o crescimento.

Qual é a função de um controlador de entrega de aplicações?

Os controladores modernos de entrega de aplicativos são componentes essenciais em infraestruturas de TI resilientes e de alta disponibilidade, especialmente em data centers de redes. Esses controladores gerenciam o tráfego de aplicativos com uma série de processos e funcionalidades complexas, assegurando o fluxo eficiente e seguro de dados entre os dispositivos dos usuários e os servidores backend. Esses recursos são:

Balanceamento de Carga

Uma das principais funções de um ADC é distribuir o tráfego de entrada entre vários servidores (balanceamento de carga) com base em algoritmos como menos conexões, round-robin e tempo de resposta do servidor. Se um servidor estiver sobrecarregado ou ficar offline, o ADC redireciona o tráfego para outros servidores, evitando que o servidor problemático se torne um gargalo e mantenha o desempenho da rede e a experiência do usuário inalterados (ou minimamente afetados).

Os balanceadores de carga também mantêm a persistência de sessão, garantindo que os dados da sessão de um usuário sejam armazenados em cache e permaneçam no mesmo servidor durante toda a interação.

Com o balanceamento de carga global de servidores (GSLB), frequentemente chamado de balanceamento de carga para balanceadores, os ADCs podem distribuir as solicitações entre vários servidores localizados em diferentes regiões geográficas, direcionando automaticamente os usuários para o data center mais próximo ou com melhor desempenho.

Descarregamento de TLS e SSL

O processamento de segurança na camada de transporte (TLS) e de camada de sockets seguros (SSL) pode, por vezes, sobrecarregar os recursos de um servidor web. Com o descarregamento de SSL, os ADCs substituem os servidores backend e atuam como endpoints SSL ou TLS, gerenciando a criptografia e descriptografia, liberando recursos da CPU para o processamento de dados de aplicativos e melhorando o desempenho do servidor.

Multiplexação TCP

Os ADCs otimizam as conexões de rede usando processos de multiplexação TCP, que consolidam diversas conexões TCP do lado do cliente (agregando-as ou reutilizando-as) em um número menor de conexões do lado do servidor. Utilizando um conjunto de conexões persistentes de servidor, o ADC pode multiplexar dinamicamente as solicitações dos clientes sobre essas conexões para reduzir a sobrecarga do servidor.

Armazenamento em cache de conteúdo

Os ADCs podem armazenar em cache conteúdos solicitados com frequência (como imagens, vídeos e sites) mais próximos ao usuário, eliminando a necessidade de gerá-los ou buscá-los repetidamente nos servidores web. Essas políticas de cache podem reduzir significativamente a carga de processamento nos servidores de origem e melhorar o tempo de resposta dos servidores para os usuários finais.

Compressão de conteúdo

Os ADCs compactam o conteúdo web (como HTML, CSS e JavaScript) antes de enviá-lo ao cliente, reduzindo a demanda de banda e acelerando a entrega de conteúdo, especialmente para usuários com conexões de internet mais lentas.

Segurança de aplicativos

ADCs frequentemente incluem firewalls de aplicação DNS e firewalls de aplicação web (WAFs) que protegem contra vulnerabilidades comuns de segurança, como injeção de SQL, envenenamento de cookies, cross-site scripting (XSS) e outros ataques na camada de aplicação, inspecionando o tráfego recebido em busca de padrões maliciosos e bloqueando solicitações potencialmente prejudiciais.

Os ADCs também ajudam a proteger as aplicações contra distributed denial-of-service (DDoS), filtrando o tráfego malicioso antes que ele sobrecarregue a infraestrutura da aplicação. Com controles de acesso específicos para cada aplicação, protocolos de limitação de taxa e recursos de gerenciamento de bots, os ADCs são fundamentais na criação de arquiteturas de zero trust e na prevenção de abusos e ataques à rede.

Modelagem de tráfego

Os ADCs organizam o tráfego priorizando as aplicações críticas, garantindo que recebam a largura de banda necessária durante picos de tráfego, permitindo que dados sensíveis ao tempo e de missão crítica atravessem a rede mais rapidamente. Utilizando políticas de qualidade de serviço (QoS), os ADCs podem também ajudar a gerenciar a largura de banda e evitar a congestão da rede.

Autenticação central

Os ADCs podem interagir com serviços de diretório (como um Active Directory no local) para controlar o acesso do aplicativo do usuário e fornecer pontos de autenticação central para autenticação do cliente e verificação de autorização. Eles também suportam novos protocolos, como autenticação multifator (MFA) e logon único (SSO), para melhorar a segurança da rede.

ADCs em ambientes nativos da nuvem

A mudança para aplicações nativas da nuvem exigiu que os controladores de entrega de aplicações evoluíssem para oferecer suporte a ambientes conteinerizados e arquiteturas de microsserviços. Embora os ADCs baseados em hardware e software ainda sejam eficazes de várias maneiras, os ADCs tradicionais foram projetados para aplicativos monolíticos e frequentemente têm dificuldades para acompanhar a natureza dinâmica das aplicações nativas em nuvem de hoje.

Para resolver isso, provedores de serviços como Citrix, VMWare, Amazon Web Services (AWS), Microsoft Azure e IBM, entre outros, desenvolveram ADCs nativos em nuvem (na forma de IaaS, PaaS e SaaS) que oferecem agilidade, escalabilidade e recursos de automação avançados. Os ADCs modernos são projetados para se integrar sem dificuldades às APIs dos provedores de nuvem e às ferramentas de orquestração de containers (como o Kubernetes), oferecendo recursos superiores de descoberta de serviços, escalonamento automático e gerenciamento de tráfego.

Casos de uso do ADC

Mesmo tendo começado como simples balanceadores de carga, os controladores de entrega de aplicações têm se ajustado constantemente para atender às exigências dinâmicas das infraestruturas de TI e das soluções de entrega de aplicativos. Os ADCs de hoje são plataformas multifacetadas de entrega de aplicativos que oferecem desempenho de aplicações, segurança e otimização de entrega em ambientes complexos e multinuvem.

Qualquer empresa que opere uma Content Delivery Network (CDN) em grande escala, complexa ou distribuída pode usar ADCs para garantir que as aplicações de rede estejam sempre disponíveis e com bom desempenho.

Os ADCs podem ajudar as empresas em:

Balanceamento de carga global do servidor

Os ADCs podem redirecionar o tráfego da rede para clusters de servidores em data centers por toda a rede. Especificamente, eles podem colaborar com outros ADCs para otimizar o caminho que o tráfego percorre na internet, permitindo que cada ADC roteie as solicitações para o data center mais próximo do cliente, minimizando a latência e o tempo de ida e volta.

Gerenciamento de conexão

ADCs gerenciam clientes de diferentes velocidades ajustando os tempos limite e os buffers de acordo com a necessidade. Os controladores também podem encerrar conexões para liberar recursos desnecessários e multiplexar conexões para maior eficiência da rede.

Monitoramento do funcionamento

Os ADCs monitoram continuamente a integridade dos servidores de aplicativos em tempo real para garantir que o tráfego seja roteado apenas para servidores responsivos e disponíveis. Eles podem enviar pings para servidores web, tentar estabelecer conexões TCP e fazer solicitações no nível do aplicativo para verificar se um servidor está funcionando de forma otimizada.

Caso um servidor falhe ou comece a funcionar abaixo do esperado, o ADC consegue redirecionar o tráfego para outros servidores e até mesmo reiniciar o servidor ou executar outras ações de recuperação (se configurado para tal).

Suporte a multilocação

Os projetos de multilocação possibilitam que diversos grupos dentro de uma organização (DevOps, marketing e vendas ou equipes de aplicações específicas como serviço ao cliente, inventário e pagamentos) utilizem a mesma infraestrutura de aplicações. A consolidação de mais serviços em menos dispositivos, sejam eles virtuais ou físicos, ajuda as organizações a aumentarem a agilidade da rede e a reduzirem os custos relacionados à administração, aquisição e suporte contínuo.

ADCs na edge computing

A edge computing envolve o processamento de dados próximo à fonte (edge da rede), em vez de depender apenas de um data center central. Os ADCs implementados no edge da rede podem otimizar o tráfego local, gerenciar políticas locais de segurança e conformidade e garantir que os aplicativos funcionem de forma eficiente, mesmo em ambientes distribuídos. Isso é especialmente útil para aplicações e serviços de IoT que exigem recursos de processamento em tempo real.

Integração com a rede definida por software (SDN)

Os ADCs evoluíram para serem mais programáveis e facilmente integrados com arquiteturas SDN, que separam a camada de controle da rede da camada de dados para um gerenciamento de recursos mais centralizado e flexível. Agora, os ADCs podem ser configurados e gerenciados dinamicamente com controladores de software, permitindo respostas mais ágeis às flutuações do tráfego de rede e às demandas dos aplicativos.

Recursos de aprendizado de máquina (ML) e IA

A inteligência artificial (IA) e as tecnologias de ML podem ajudar os ADCs a prever padrões de tráfego, detectar possíveis ameaças à segurança e automatizar tarefas de gerenciamento de rede, melhorando a eficiência e reduzindo a necessidade de interação humana com a rede.

Benefícios dos ADCs

Os controladores de entrega de aplicativos ajudam as empresas a otimizar o roteamento de tráfego e maximizar a disponibilidade da rede, especialmente para aquelas que lidam com grandes volumes de tráfego web, hospedam aplicações de missão crítica ou necessitam de altos níveis de segurança de dados.

Os ADCs oferecem às empresas:

Análise de dados em tempo real

Os ADCs coletam dados de uma ampla gama de métricas (como volume de tráfego, integridade do servidor e eventos de segurança), o que pode ajudar as empresas a obter insights sobre o funcionamento da rede.

Aceleração de aplicações

Os ADCs utilizam diversas técnicas, como a troca de conteúdo, para comprimir, reciclar e armazenar dados em cache, acelerando aplicativos e sites da rede.

Desempenho do aplicativo melhorado

Os ADCs podem expandir automaticamente os serviços de aplicativos disponíveis para garantir um roteamento de tráfego de alto desempenho, especialmente para redes com alta latência e redes móveis.

Recuperação de desastres automatizada

Os ADCs oferecem recursos de failover para garantir que um negócio possa continuar operando e que os usuários sofram o mínimo de atrasos quando um servidor falhar. Os ADCs duplicam e sincronizam as sessões de usuários entre servidores, para que, se um servidor sair do ar, as responsabilidades de execução sejam transferidas para uma cópia da sessão.

Segurança de rede mais forte

ADCs oferecem a primeira linha de defesa contra ataques maliciosos, usando WAFs e funcionalidades de detecção e prevenção de intrusão para proteger os dados da rede.

Soluções relacionadas
IBM DevOps Accelerate

Automatize a entrega de software para qualquer aplicação no local, na nuvem ou no mainframe.

Explore o DevOps Accelerate
Soluções de DevOps

Utilize softwares e ferramentas de DevOps para desenvolver, implementar e gerenciar aplicativos nativos da nuvem em diversos dispositivos e ambientes.

Explore as soluções de DevOps
Serviços de consultoria em nuvem 

Libere novos recursos e aumente a agilidade dos negócios com os serviços de consultoria em nuvem da IBM. Descubra como cocriar soluções, acelerar a transformação digital e otimizar o desempenho por meio de estratégias de nuvem híbrida e parcerias especializadas.

Serviço de nuvem
Dê o próximo passo

Libere o potencial do DevOps para criar, testar e implementar aplicativos seguros nativos da nuvem com integração e entrega contínuas.

Explore as soluções de DevOps Descubra o DevOps em ação