让热端保持热,让冷端保持冷。
如果您年纪够大,或许还记得多年前麦当劳的一则宣传活动(别担心,我不会让您举手示意)。当时,麦当劳推广其部分产品所采用的包装,号称能让“热的一边保持热,冷的一边保持冷”。

这个理念其实很简单:将热食和冷食分开,但仍放在同一个容器中,便于携带。
在同一个“容器”内实现分离,正是应用代理之所以称为代理的基础:客户端侧归客户端,应用侧归应用……各司其职。
好吧,这句话翻译出来可能终究没我想的那么巧妙。
不过,这一概念仍然成立,也是理解应用代理的重要基础。
从根本上说,代理是一种在逻辑上位于通信双方之间的软件。应用代理位于应用与客户端之间。并非所有代理都是全代理。全代理要求在内部将两端分隔开来;也就是说,全代理在一台设备中包含两个相互独立的网络协议栈,分别是客户端侧(热端)和应用侧(冷端)。

我知道,这个类比确实不太恰当,对吧?先将就一下吧,我暂时也想不到更好的了。
之所以将这一点作为(或应当作为)应用代理的一项要求,是因为它使代理能够参与客户端与服务器之间的数据交换。这是提供代码压缩(可提升应用性能)、安全功能(如数据清理)、TCP多路复用(优化)以及其他多种服务的必要条件。
真正发挥作用的,正是客户端侧与应用侧之间的内部“间隙”。从基本的负载均衡,到高级应用防火墙,再到应用访问控制,各类服务都在这里运行。请求实际上会在应用代理的客户端侧终止。随后会执行一个类似于服务链的流程,但整个过程都在内部完成,并以内部总线和处理器的速度运行(几乎总是快于网络速度)。接下来,系统会执行检查、应用策略、进行转换并做出决策。然后,代理与应用之间会建立单独的连接,并将请求转发出去。
当该请求返回代理时,系统会执行相反的流程:进行检查、清理数据并应用策略。随后,数据回到客户端侧,再传回客户端。
所有这些操作都在不到1秒内完成,因为它们全部在代理内部进行。
应用代理旨在提供广泛的应用服务,包括可用性、安全性、移动性、身份与访问以及性能,因此它确实应该是全代理。只有全代理才会参与每一次请求和响应。简单代理(如果深入探究,其实就是无状态代理)只参与初始通信,也就是客户端与应用建立连接的阶段。它的作用是选择一个应用实例,然后将客户端与该实例之间的连接“拼接”起来。此后,代理便不再参与。它只会看到一个“流”(一种第4层TCP结构,讨论SDN时可能听说过;这个话题留待以后再谈),并在两端之间来回转发数据包,不加区分地将冷热内容混在一起。(看吧?我就知道这个类比最终会说得通。)
综上所述,现代且可扩展的应用代理应采用全代理架构,并具备三个关键特性:可编程性、性能和协议支持。
在现代数据中心和云环境中,可编程性对于支持自动化、编排和标准化至关重要。它也是在数据路径中实现安全功能和服务的关键,这些功能和服务可为业务和运营带来独特价值,并支持自定义协议及增强现有协议。性能听起来似乎很简单,实则不然。应用代理需要处理每一个请求,因此不仅要快,还要极快。它必须迅速完成必要的处理,同时避免给交互过程增加影响应用体验的延迟。这远没有听起来那么容易,尤其是在大力推动以通用计算作为部署基础的情况下。
最后,协议也很重要。提到“应用”,首先想到的可能是HTTP。这并不奇怪;HTTP已成为新的TCP,也是互联网的通用语言。但它并不是目前使用的唯一协议,在互联网通信时代尤其如此。此外还有SIP和UDP,更不用说SMTP(您现在还会发送电子邮件,对吧?)和LDAP了。SSL和TLS也同样重要。随着业界日益重视并迫切推动SSL Everywhere真正覆盖各处,应用代理更需要支持SSL/TLS,而且必须非常熟练地处理这些协议,否则可能无法满足性能要求。
应用代理可以提供现代数据中心所需的平台,帮助应对安全和性能挑战,通过自动化和编排降低运营成本,并确保个人和企业客户都能获得理想的应用体验。但它必须是具备可编程性、高性能和协议支持的完整应用代理,确保所有应用都能得到支持。
关于作者

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。
Lori Mac Vittie 的更多博客文章相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。