博客

现代应用代理的三个关键特征

Lori MacVittie 缩略图
洛里·麦克维蒂
2015 年 9 月 14 日发布

保持热的一侧热,冷的一侧冷。

您可能还记得(如果您年龄足够大,不用担心,我不会让您举手)几年前麦当劳曾发起过一项活动,宣传其部分产品的包装“热的一面热,冷的一面冷”。

热侧 热 冷侧 冷

这个概念其实很简单:将冷热水分开,但放在一个容器里,以便于运输。

同一“容器”内分离的概念实际上是应用代理成为代理的基础。 保持客户端为客户端,应用程序为应用程序。

好吧,这可能翻译得不如我想要的那样清楚。

不过,这个概念是有效的,并且对于理解应用代理非常重要。

从根本上来说,代理是一种在通信交换中逻辑上位于两个参与者之间的软件。 应用程序代理位于应用程序和客户端之间。 现在,并非所有代理都是完整代理。 完整代理需要内部分离两侧;本质上,完整代理在单个设备内包含两个独立的网络堆栈。 客户端(热端)和应用程序端(冷端)。 

客户端应用程序端

我知道,这个比喻确实不太恰当,不是吗? 和我一起工作吧,这是我现在所能拥有的一切。

这是(或应该是)应用程序代理的要求的原因是,它为代理提供了参与客户端和服务器之间交换的能力。 这对于提供诸如缩小(可提高应用程序性能)、安全功能(如数据清理)和 TCP 多路复用(优化)等功能以及广泛的其他服务是必要的。

奇迹就在客户端和应用程序端之间的内部“间隙”中发生。 这里有许多服务 – 从基本的负载均衡到高级应用防火墙,再到应用访问控制 – 发挥作用。 请求在应用代理的客户端被有效终止。 此后,会发生一个类似于服务链的过程,只是所有过程都在内部总线和处理器速度下(几乎总是比网络速度快)进行。 检查随即开始。 政策已应用。 发生转变。 已做出决定。 代理和应用程序之间建立了单独的连接,并按其方式发送请求。

当该请求返回到代理时,就会发生相反的情况。 检查随即开始。 数据已被清除。 政策已应用。 然后它回到客户端,并可以被传输回客户端。

由于这一切都发生在代理内部,所以这一切都在亚秒级的时间内。

因为应用程序代理的目的是提供广泛的应用服务——可用性、安全性、移动性、身份和访问以及性能——所以它实际上应该是一个完整的代理。 只有完整的代理才被设计来参与每一个请求和响应。 简单代理(如果你想深入了解的话,它们实际上是无状态代理)仅在创建客户端和应用程序之间的连接时参与初始对话。 其目的是选择一个应用程序实例,然后将两者之间的连接“缝合”在一起。 此后,代理不再参与。 它将“流”视为一种“流”(在讨论 SDN 时您可能听说过的第 4 层 TCP 构造,这是另一个讨论话题),并简单地来回转发数据包,不加区分地混合热数据包和冷数据包。 (看? 我知道这个比喻最终会起作用。)

现在,总而言之,现代(且可扩展)的应用代理应该是一个完整的代理,并具有三个关键特征:可编程性、性能和协议。

可编程性对于现代数据中心和云来说至关重要,以支持自动化、编排和标准化。 它也是数据路径中实现安全性和服务的关键,可以为业务和运营提供独特的价值,支持自定义协议并增强现有协议。 性能听起来应该很简单,但事实并非如此。 由于应用代理与每个请求进行交互,所以它不仅要快,而且要非常快。 它必须快速地完成它该做的事情,而不增加应用体验并降低交换的延迟。 这并不像听起来那么容易,特别是在如此推崇使用通用计算作为部署基础的情况下。

最后,协议很重要。 当我们说“应用程序”时,我们首先想到的可能是 HTTP。 这并不奇怪;HTTP 是新的 TCP 和互联网的通用语言。 但它并不是唯一使用的协议,特别是在互联网通信时代。 也有 SIP 和 UDP。 更不用说 SMTP(您还发送电子邮件,对吗?)和 LDAP。 那么 SSL 和 TLS 怎么样? 随着对 SSL 无处不在的关注度(和紧迫性)不断增加,应用代理使用 SSL/TLS 就变得更加必要,而且要非常流利地使用。 因为否则的话,该性能要求可能无法得到满足。

 

应用代理可以提供现代数据中心所需的平台,以解决安全和性能挑战,以自动化和协调的方式降低运营成本,并确保消费者和企业客户获得最佳的应用体验。 但它必须是一个具有可编程性、性能和协议支持的完整应用代理,以确保没有任何应用被遗漏。