查看原文
其他

负载均衡要为“现代应用”服务

Miles Zhang BFE开源项目 2024-04-14

摘要:

      负载均衡是数据中心的基础设施,已经有很多年的历史。随着云计算技术的发展和应用的发展,传统的负载均衡方案已经无法现代应用的需求。为了更好的支持现代应用,需要新一代的负载均衡技术方案,即面向云原生的流量管理平台。


1. 传统负载均衡的问题

    负载均衡出现于上世纪90年代,一开始主要形态为硬件设备[1]。代表性的企业包括F5A10Radware等。

随着时代的发展,基于硬件设备的解决方案体系结构已经落后,表现为以下方面:

  • 购置成本高

    负载均衡设备使用专用硬件,中高端的设备价格达到几十万甚至上百万。

  • 功能升级困难

    对硬件设备做功能升级非常困难,是一个高危操作,容易在升级中出现故障。

  • 动态扩缩容困难

    硬件的购置和部署周期很长(以月为单位),难以满足业务动态快速增加容量的需求。

  • 集群化能力弱,只能支持主备模式

    主备模式一方面限制了扩容的规模,另一方面造成了资源的浪费

  • 四七层功能都支持,七层处理功能/性能弱

    由于七层功能的逻辑较为复杂,难以用硬件加速,所以在硬件设备中七层的处理属于“慢路径”。在开启了七层功能后,往往会发现设备的性能出现明显的下降。另外,由于和应用层关系密切,七层功能经常需要修改,而硬件设备无法像普通软件一样方便的升级。

数据面和控制面耦合,扩容和升级困难

    在设备中数据面和控制面耦合在一起,这给系统的扩容和功能的升级都造成了困难。


2. 现代应用的定义

    随着互联网的发展和技术的进步,越来越多的业务已经转向“现代应用”(Modern Application)。“现代应用”具有以下4个特征[2]

(1) Scalability: 可扩展

    应用可以快速扩容以满足用户流量的快速增长

(2)Portability: 可迁移

    应用在多云和混合云的环境下都可以运行

(3)Resilience:高可用,快速恢复

    在各种可能的故障情况下都可以保证应用的高可用

(4)Agility:敏捷迭代

    “快速迭代”已经成为应用得以生存和发展的必须能力


3. 现代应用对负载均衡的需求

    作为数据中心的基础设施,负载均衡要为现代应用服务

    为了满足“现代应用”的需求,负载均衡需要具备以下十个特征或能力:

(1) 软件化[3]

    只有实现了软件化,才能实现容量可扩展,并支持多云部署和迁移

(2) 四七层分离[4]

    四七层分离后,容量更容易扩展,功能也更容易更新

(3) 多主集群

    相比主备模式,多主的集群模式容量更易扩展,也减少了资源的浪费

(4) 数据平面和管理平面分离

    两个平面分离后,容量更容易扩展,功能升级也更容易

(5) 多云/多集群调度能力[6]

    这个能力是多云/多集群环境下实现高可用和快速迭代的必须

(6) 强大的路由管理能力[7]

    微服务化后,应用的数量爆炸式的增长,需要有很强的路由能力。另外,应用的敏捷迭代需要灰度发布能力,也需要很强的路由管理能力[8]

(7) 流量洞察能力

    现代应用的高可用和敏捷迭代,都对数据报表能力提出了很高的要求。提升服务质量和迭代速度,需要“数据驱动”的运营。

(8) 安全能力

    为了满足现代应用高可用的要求,负载均衡需要提供强大的安全能力,为应用提供保护。

(9) 多租户能力[7]

    “多租户”是云的一个基本特征,多租户为应用的敏捷迭代提供了支持。

(10) 平台化 / API接口

    平台化和完备的API接口是高可用和敏捷迭代的重要需求,越来越多的工作不是由人来手工操作,而是由程序来自动完成。


4. 传统负载均衡无法支持现代应用

    传统的负载均衡已经无法满足现代应用的需求。除了在第1部分中描述的问题外,传统负载均衡系统还存在以下问题

(1) 多租户能力弱,配置变更困难

    “多租户”是云的基本功能。缺乏多租户功能导致所有的配置都耦合在一起,增加了配置变更的风险;另外由于缺乏多租户间的权限隔离,也难以实现租户的自助配置修改,而需要经过负载均衡运维团队的处理,无法满足敏捷迭代的需要。

(2) 流量统计能力弱,难以支持精细运营

    传统的负载均衡系统只有SNMP MIB数据,一方面能够提供的信息量比较少,另外也缺乏时序数据,无法满足精细运营的需要。

(3) 缺乏安全能力,组网难度高,风险大

    传统的负载均衡缺乏安全能力,所以必须串联第三方的安全系统或设备。

    典型的架构如下图所示,在部署中需要串联SSL卸载系统和防火墙系统。这两个环节容易成为性能的瓶颈,也容易成为故障点。例如,对应用层防火墙(WAF),检测规则的变更是一个经常要发生的操作,容易导致性能下降,也存在系统崩溃的隐患。这些问题都可能影响正常的转发。

(4) 多数据中心的流量调度能力弱,速度慢,精度低

    在传统负载均衡方案中,多数据中心调度主要基于DNSDNS的生效要数分钟,并且无法做精细的调度。

(5) 仍然基于SNMP、命令行等传统管理方式

    传统的负载均衡系统中主要基于SNMP和命令行的方式来管理,虽然部分系统支持Open API的方式,但是API的功能和性能往往存在局限。


5. 建设面向云原生的流量管理平台

    负载均衡要为现代应用服务。为了更好的支持现代应用,需要新一代的负载均衡技术方案,即面向云原生的流量管理平台

    在BFE开源项目的设计中,充分考虑了现代应用的各种需求。详细的说明可以参考“BFE:企业级七层负载均衡开源软件[5]


参考文献

[1]What is load balancinghttps://avinetworks.com/what-is-load-balancing/

[2]Demystifying Modern Application Developmenthttps://www.reworked.co/information-management/demystifying-modern-application-develpment/

[3]“软件化”是负载均衡发展的必然趋势BFE开源项目公众号

[4]负载均衡为什么要“四七层分离”BFE开源项目公众号

[5]BFE:企业级七层负载均衡开源软件BFE开源项目公众号

[6]借助BFE,招商银行提高了应用可用性和运营效率CNCF公众号(英文,也可以参考中文翻译版

[7]为什么BFE可以取代Nginx – 从设计的视角BFE开源项目公众号

[8]如何基于BFE做灰度发布BFE开源项目公众号



欢迎关注BFE开源项目的公众号,获得本项目的更多信息。谢谢!

BFE开源项目的地址为:https://github.com/bfenetworks/bfe


继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存