虚拟云网络

软件定义的负载均衡器 — NSX Advanced Load Balancer

2019年6月,VMware 收购了多云应用交付服务领导企业 Avi Networks,其主要产品是基于软件的应用交付控制器 (ADC – Application Delivery Controller)。说起应用交付控制器可能很多人还不太了解,它的另一个名字叫负载均衡器,这个就人尽皆知了。VMware 完成收购之后,把 Avi Networks 的产品整合到了 NSX 产品家族,并且改名为 NSX Advanced Load Balancer。

负载均衡器的主要功能

典型的负载均衡器位于客户端和应用之间,主要用于控制客户端对于后台应用服务的访问,主要提供以下功能:

  • 动态流量分发:当业务的访问量很大的时候,通常通过增加后端应用服务器的数量来提高系统的业务处理能力,这时候就需要负载均衡器按照一定的规则把客户端的服务请求平均分配给后端应用服务器,这是负载均衡器最常见的应用场景。
  • 健康状态检查:负载均衡器把前端的服务请求转发给后端,所以它对后端服务器的健康状态非常了解,如果后端有一台服务器宕机了,负载均衡器就会把原来发给它的服务请求转发给其他服务器,由此实现了业务的高可用性。实际上,负载均衡器是应用高可用 HA 解决方案中的一个常见设计元素。
  • 高级安全特性:负载均衡器需要开放在公网上,这样它才能被所有的客户端访问到, 而后台应用服务一般都是在内网中,这样也一定程度上提高了应用安全性。因为所有的访问请求都要经过它,很多负载均衡器也内置了一些安全特性,如提供 Web 应用防火墙 WAF (Web Application Firewall) 等。
  • 提高新应用发布的用户体验:现代应用涉及到的用户数量庞大,为了保持良好的用户体验,往往采用蓝绿发布、金丝雀发布这些手段来减少新版本发布对于现有用户的影响,这种场景下负载均衡器就起到了一个很关键的作用,它可以灵活控制服务请求在新旧版本之间的切换,简化新版本的发布过程和优化用户体验。

负载均衡器示意图

传统负载均衡器的局限

传统的负载均衡器都是基于硬件的,虽然在性能上能够满足业务需求,但是也逐渐暴露出一些局限性:

  • 价格昂贵:硬件负载均衡器采用专用的硬件构建,普遍要比软件的解决方案更加昂贵;并且为了搭建高可用解决方案,需要配置两套硬件互为备份,这就更加增加了部署成本。
  • 缺乏灵活性:为了满足业务高峰期的访问需求,负载均衡器都需要按照峰值业务量来进行配置;但是在业务高峰期过去之后 (想想春运订票和双11购物节),花大价钱采购的硬件就只能闲置在那里了。
  • 管理和配置复杂:传统的负载均衡器都是需要管理员手工来配置的,每台负载均衡器需要逐一配置 (没有工具),系统的软件升级更是管理的一大负担。

新一代软件定义的负载均衡器

基于 Avi Networks 技术的 VMware NSX Advanced Load Balancer 给我们带来了新一代软件定义的负载均衡器,采用的是控制平面 (控制器) 和数据平面 (服务引擎) 分开的设计,控制器负责管理和控制,服务引擎负责转发网络流量。这种软件的应用交付控制方案具有以下优点:

  • 配置简便:管理员只需要在控制台上做一次参数设置,配置就会自动下发到各个服务引擎。
  • 弹性架构:当业务量上升的时候,控制器会自动地增加服务引擎来提升系统的处理容量;当业务量下降时,可以降低服务引擎数量来减少资源消耗。
  • 灵活性:基于软件的架构让用户购买的处理能力可以在多个应用间共享,而不存在硬件方案所需要重新部署和配置的问题,大大减少了处理能力闲置的情况。
  • 支持多云环境:Avi 的方案不仅支持私有云,也支持 AWS、Azure 等公有云环境,可以灵活地在多云环境下部署使用。

如果对 VMware NSX Advanced Load Balancer 有兴趣的话,可以做一下云中动手试验 HOL-2037-91-NET – VMware NSX Advanced Load Balancer (Avi Networks) Lightning Lab,增加一些对于这个产品的感性认识。