应用程序交付控制器 (ADC) 是一种网络设备,用于优化通过互联网交付应用程序,通常作为应用程序交付网络 (ADN) 的一部分。
ADC 可以是硬件设备或软件程序,通常置于企业网络的非军事区 (DMZ) 中,位于防火墙和一个或多个应用程序服务器之间。ADC 充当反向代理,在将加密响应发送回用户之前接收、解密、验证和路由客户端请求。
ADC 帮助企业实现网络应用程序现代化,加速客户端机器和 Web 服务器之间的连接,简化全局服务器负载均衡 (GSLB) ,并提高最终用户的整体应用可用性。
应用程序交付控制器的演变与 Web 应用程序、数据中心和更广泛的网络管理领域的发展密切相关。
在 20 世纪 90 年代末和 21 世纪初,随着互联网的商业化和网络流量的大幅增加,企业需要一种方法来确保网站和应用程序能够有效地处理大容量应用程序流量。主要挑战是找到一种方法,在多个服务器之间分配传入请求,以保证高可用性和网络弹性。
应对这一挑战的第一代设备称为负载均衡器。最初,它们很简单,可以在传输层运行。负载均衡器侧重于将传入流量分配给多个服务器,以平衡负载并防止它们压垮任何单个服务器。
然而,随着应用程序和网站变得越来越复杂,传统负载均衡器因其无法读取用户请求的内容(而不仅仅是 IP 地址和端口)并据此做出决策而不再受到青睐。这促使开发人员升级到第 7 层负载均衡解决方案,该解决方案可以在应用程序层检查消息内容。
高级负载均衡器可以根据 HTTP 标头、Cookie 甚至特定页面请求等因素来路由流量,从而促进更复杂的流量管理策略,例如会话持久性(或“粘性”)和基于内容的路由。随着时间的推移,随着开发人员不断添加功能,这些负载均衡器会成为我们现在称为 ADC 的智能控制器。
现代应用程序交付控制器是高度可用的弹性 IT 基础架构(尤其是网络数据中心)的重要组成部分。它们通过使用一系列复杂的流程和功能来管理应用程序流量,以确保客户端设备和后端服务器之间高效、安全的数据流。这些功能包括:
ADC 的主要功能之一是根据最少连接、循环法和服务器响应时间等算法,在多个服务器之间分配传入流量(负载均衡)。如果一个服务器过载或脱机,ADC 会将流量重定向到其他服务器,以防止运行状况不佳的服务器成为瓶颈,从而使网络性能和用户体验不受影响(或影响最小)。
负载均衡器还保持会话持久性,确保用户的会话数据得以缓存并在整个交互过程中保持在同一服务器上。
通过全局服务器负载均衡 (GSLB)(通常称为实现全局负载均衡的负载均衡),ADC 可以在位于不同地理位置的多个服务器之间分配请求,以便将用户自动定向到最近或性能最佳的数据中心。
传输层安全性 (TLS) 和安全套接字层 (SSL) 处理有时会给 Web 服务器的资源带来压力。借助 SSL 分载,ADC 可以取代后端服务器,并充当 SSL 或 TLS 端点来管理加密和解密,从而释放 CPU 资源,用于应用程序数据处理和提高服务器性能。
ADC 通过使用 TCP 多路复用进程来优化网络连接,该进程将大量客户端 TCP 连接(通过池化或重复使用它们)合并为较少数量的服务器端连接。使用一组持久的服务器连接,ADC 可以通过这些连接动态地多路复用客户端请求,以减少服务器开销。
ADC 可以将经常请求的内容(例如图像、视频和网站)缓存在更靠近用户的地方,无需重复从 Web 服务器生成或获取这些内容。这些缓存策略可以显著减少源服务器上的处理负载,并缩短最终用户的服务器响应时间。
ADC 在将 Web 内容(例如 HTML、CSS 和 JavaScript)发送到客户端之前对其进行压缩,从而减少带宽需求并加快内容交付速度,尤其是对于互联网连接速度较慢的用户。
ADC 通常包括 DNS 应用程序防火墙和 Web 应用程序防火墙 (WAF),它们通过检查传入流量中是否存在恶意模式和阻止潜在有害请求来防范常见安全漏洞,例如 SQL 注入、Cookie 中毒、跨站脚本 (XSS) 和其他应用层攻击。
ADC 还可以通过在恶意流量使应用程序基础设施不堪重负之前将其过滤掉,帮助保护应用程序免受分布式拒绝服务 (DDoS) 攻击。借助特定于应用程序的访问控制、速率限制协议和机器人管理功能,ADC 有助于创建零信任架构并防止网络滥用和攻击。
ADC 对流量进行优先排序,以确保关键应用程序即使在高峰流量时段也能获得所需带宽,以便时间敏感型和任务关键型数据能够更快地通过网络。使用服务质量 (QoS) 策略,ADC 还可以帮助管理带宽并防止网络拥塞。
ADC 可以与目录服务(如本地 Active Directory)交互,以控制用户应用程序访问,并为客户端身份验证和授权验证提供集中身份验证点。它们还支持多重身份验证 (MFA) 和单点登录 (SSO) 等新协议,以增强网络安全性。
向云原生应用程序的转变要求应用程序交付控制器不断发展以支持容器化环境和微服务架构。尽管基于硬件和软件的 ADC 在许多方面仍然有效,但传统 ADC 是为单片应用程序设计的,往往难以跟上当今云原生应用程序的动态特性。
为了解决这个问题,Citrix、VMWare、Amazon Web Services (AWS)、Microsoft Azure 和 IBM 等服务提供商开发了云原生 ADC(以 IaaS、PaaS 和 SaaS 的形式),用于提供高级敏捷性、可扩展性和自动化功能。现代 ADC 旨在与云提供商 API 和容器编排工具(如 Kubernetes)无缝集成,以提供卓越的服务发现、自动扩展和流量管理功能。
尽管应用程序交付控制器最初是基本的负载均衡器,但它一直在不断适应 IT 基础架构和应用程序交付解决方案的动态需求。当今的 ADC 是多方面应用程序交付平台,可在复杂的多云环境中提供应用程序性能、安全性和交付优化。
任何运营大规模、复杂或分布式内容交付网络 (CDN) 的企业都可以使用 ADC 来确保网络应用程序始终可用且性能良好。
ADC 可以帮助企业:
ADC 可以通过网络将网络流量重定向到数据中心的服务器集群。具体而言,它们可以与其他 ADC 合作,优化流量通过互联网的路径,从而允许每个 ADC 将请求路由到离客户端最近的数据中心,并最大限度地减少延迟和往返时间。
ADC 通过相应调整超时和缓冲区大小来处理快速和慢速客户端。控制器还可以终止连接以释放不需要的资源并多路复用连接以提高网络效率。
ADC 持续监控应用服务器的实时运行状况,以确保流量仅路由到响应迅速且可用的服务器。它们可以 ping Web 服务器,尝试建立 TCP 连接并发出应用程序级请求,以验证服务器是否处于最佳运行状态。
如果服务器出现故障或开始运行不正常,ADC 可以将流量重定向到其他服务器,甚至启动服务器重启和其他恢复操作(假设它们已配置为此操作)。
多租户设计允许组织内的不同小组(DevOps、营销和销售或特定的应用团队,例如客户服务、库存和支付)共享相同的应用程序基础架构。将更多服务整合到更少设备(无论是虚拟设备还是物理设备)上,有助于组织提高网络敏捷性,并降低与管理、采购和持续支持相关的成本。
ADC 已经演变得更具可编程性,更易于与 SDN 架构集成,SDN 架构将网络的控制层与数据层分开,以实现更加集中、灵活的资源管理。现在,ADC 可以通过软件控制器进行动态配置和管理,从而能够更灵活地应对网络流量波动和应用需求。
应用程序交付控制器帮助企业优化流量路由并最大限度地提高网络可用性,特别是对于处理大量 Web 流量、托管任务关键型应用程序或需要高级别数据安全性的企业。
ADC 为企业提供:
ADC 收集有关各种指标(例如流量、服务器运行状况和安全事件)的数据,这可以帮助企业深入了解网络功能。
ADC 使用内容切换等多种技术来压缩、回收和缓存数据,以加快网络应用程序和网站的运行速度。
ADC 可以自动扩展可用的应用程序服务,确保高性能流量路由,对于高延迟网络和移动网络尤其如此。
ADC 提供故障转移功能,以确保当服务器发生故障时,业务可以继续运营,并且将用户延迟降至最低。ADC 跨服务器复制和同步用户会话,以便在服务器脱机时,执行责任可以传递给会话副本。
实现本地、云端或大型机上任何应用程序的自动化软件交付
。使用开发运维软件和工具,在多种设备和环境中构建、部署和管理云原生应用程序。
利用 IBM 的云咨询服务发掘新功能并提升业务敏捷性。了解如何通过混合云战略和专家合作共同制定解决方案、加快数字化转型并优化性能。