可扩展性对于业务和应用来说都是一项关键能力。 从业务方面来看,扩大运营规模是实现新应用经济及其几乎持续不断的狂热部署状态的关键。 在应用方面,可扩展性是我们支持消费者和企业用户增长的方式,确保两者都具有一流的性能和可用性。
可扩展性的核心是负载均衡。 自 20 世纪 90 年代中期以来,负载均衡一直是我们扩展应用的方式,通过在越来越大的服务器、网络、应用和服务之间分配工作负载。
在过去,负载均衡完全与网络有关。 负载均衡基于现有的扩展网络技术和协议,专注于可用于分配工作负载的客户端-服务器通信方面。 普通老式负载均衡(POLB)诞生了。
它起作用了,并且效果很好。 如果没有 POLB,我们几乎不可能知道我们所知的网络是否会实现。 它过去和现在对于支持当今的企业和消费者群体以及支持未来的企业和消费者群体都至关重要。
21 世纪初期,负载均衡器的战略位置使其成为扩展到其他应用程序体验增强功能的完美平台。 最终添加了应用加速、优化、缓存和压缩。 安全性也将进入这个平台,其在网络中的地位太完美了,不容忽视。 作为应用的守门人,它检查、提取、修改和转换应用流量的能力使其具有独特的洞察力,这些洞察力对于安全性和性能同样适用。
21 世纪初期,我们超越了 POLB,进入了其他领域。 负载均衡器成为应用交付平台,能够像使用 POLB 扩展应用程序一样,提供安全、快速、可用的应用程序。
这些现代平台被称为 ADC(应用交付控制器) ,不仅能够提供 POLB 功能,还提供丰富的功能,这些功能对于当今负责部署应用程序和交付应用程序的人们来说非常有价值。
越来越多地,这不是网络团队,而是架构师和运营。
这种转变是由过去十年兴起的多种技术推动的。 从敏捷到云到 DevOps 到移动,当今的最佳实践正在将一些应用服务推向网络之外并进入应用领域。
在将可扩展性的责任从网络转移到架构师和运营人员的过程中,ADC 的部署就好像停留在 20 世纪 90 年代一样。 将其作为 POLB 处理时,它为架构师和操作员在提高性能和安全性方面提供的大部分价值都被搁置了(或者更确切地说,搁置了)。
这通常是因为现在负责扩展应用的架构师和运营团队不熟悉 ADC 能为他们做什么,更重要的是,他们的应用程序和架构。 现在是时候改变这种状况并超越 POLB 了。
POLB 的目标很简单:可用性。 无论是通过实现基于冗余的 HA(高可用性)架构还是使用 N+1 扩展架构,目标都是相同的:无论如何都要保持网站(或应用程序)正常运行并可用。
今天的目标仍然是可用性,但它与效率和灵活性相结合。 以上三个都是现代商业及其支持关键应用的架构的主要特征。 然而,要实现这一点,我们必须超越 POLB,进入应用路由和负载分配的世界,为应用程序架构和基础设施带来关键的效率。 这些功能基于网络堆栈的第 7 层 -应用层 - 在现代架构中这意味着 HTTP。
L7 LB 代理不仅能够根据应用变量(如连接负载、响应时间和应用状态)分配负载,还能够根据 URL、HTTP 标头甚至 HTTP 消息中的数据进行调度(路由)。
L7 负载均衡器能够解析、提取和处理这些不同类型的应用层数据,目前可以通过多种方式参与和增强应用和微服务架构,包括:
由于 L7 LB 在逻辑上位于其所服务的应用的上游,因此它可以看到每个请求和响应。 这意味着它能够在请求被允许进入所需的应用之前对其进行各种检查和平衡。 这些制衡机制对于确保检测和拒绝恶意流量至关重要,可防止其不利影响影响后端应用的稳定性、可用性和完整性。
但它不仅仅是阻止恶意流量到达服务器,它还可以阻止不良行为者。 这意味着能够识别他们——不仅是那些没有有效证件的人,而且还有那些使用不属于他们的证件的人。 随着因凭证被盗而导致的违规行为数量不断增加,访问控制的作用也越来越大。 云计算也再次引发了跨应用全局管理凭证的紧迫性,以减少来自孤立账户和测试账户的潜在风险,这些账户有权访问存储在基于 SaaS 的应用中的公司数据。 身份联合已不仅仅是一种提高生产力的策略,它已经成为整个企业安全策略中的一个关键策略。
可以添加到 L7 LB 的功能包括分析客户端的行为和身份以及客户端和后端服务之间交换的消息的实际内容。 这使得 L7 LB 能够执行以下功能:
性能是应用成功的关键因素,因此也是业务成功的关键因素。 早期,企业会在应用前部署多个应用加速解决方案,以加快交付过程。 ADC 将这些相同的解决方案作为可选(附加)组件纳入,但最终将这些功能直接集成为核心负载均衡功能的一部分;反映了性能对于交付应用和服务的核心关注的重要性。
因此,L7 LB 具有多种专注于提高性能的特性和功能。 其中一些功能(特别是那些对返回客户端的应用程序响应执行的操作)专注于内容。 其中许多是用于缩小内容的核心开发技术,而其他技术则专注于减少客户端和服务器之间所需的往返次数。
同样,值得注意的是,L7 代理不仅专注于优化内容,也是性能为中心的架构的关键推动因素,包括数据库负载均衡技术以及内存缓存(如 memcached)的集成,以提高整体应用性能。 那些适合支持这些架构的 L7 代理通常都具备数据路径脚本语言,能够定制分发和路由。
其他功能专注于减少后端服务器的开销以提高性能,以及能够根据性能阈值分配负载。
L7 LB 的优化特性和能力包括:
客户端(响应优化) |
后端服务器端 |
• 最小化 • HTTP 压缩 • 缓冲 • 脚本聚合 • SSL 卸载 |
• TCP 多路复用 • 缓存 • 基于性能的负载分配 • 自动可扩展性 |
如果要将任何基础设施更加集成到应用架构中,那么它绝对必须能够集成到 CI/CD 管道中。 这意味着支持现代、DevOps 和 Agile 相关方法以及支持执行自动发布和交付策略的工具集。
为此,L7 LB 不仅必须提供可供管理的 API,还必须提供可供监控和部署的手段,以确保能够持续反馈和交付,满足当今严格的时间表和预算。
F5 支持多种用于配置、部署、管理和监控 L7 LB 基础设施的编程选项,其中包括:
有多种原因导致 POLB 和 L7 LB 等应用基础设施的责任从网络团队转移到应用和运营团队。 无论是采用敏捷还是 DevOps 来响应业务对更多应用程序和更短交付时间的需求,还是满足比以往更快的扩展需求,超越 POLB 都将提供更广泛的安全性、性能和可用性选项,以在适合现代 CI/CD 管道的单一、可管理、可编程的平台上支持现代应用程序和交付架构。
现在是时候考虑超越 POLB 并开始利用越来越多地属于您的领域的基础设施了。