随着软件定义网络的出现,有关应用交付控制器(ADC)的需求问题也出现了。应用交付控制器(ADC)分布在一组Web服务器中,功能是保持这些服务器的负载均衡。软件定义网络(SDN)控制器是否可以接管应用交付控制器ADC的角色,成为有影响力的软件定义网络负载均衡器,从而消除应用交付控制器在网络中的位置呢?
像应用交付控制器一样,软件定义网络控制器可以基于队列长度和处理延迟来监控Web服务器的单个负载,并将收到的数据请求发送给负载最轻的服务器。
如果简单的负载均衡是应用交付控制器的唯一功能,那么软件定义网络控制器真的可能将其淘汰掉。然而,应用交付控制器可以做的不仅仅是分配服务器之间的应用需求。
在常规网络中,数据流经做路由决策的设备。因为应用交付控制器直接位于数据流经路径中,它们可以实现某些特定的应用程序及软件驱动的功能,这些功能都不容易嫁接给软件定义网络控制器。软件定义网络将数据运动和网络控制功能分离开来,这就意味着一个软件定义网络控制器虽然可以基于服务器活动进行简单的负载均衡决策,但并不能基于数据本身的内容进行决策。
应用交付控制器一直以来都是独立的网络设备。行业领先的供应商已经意识到到虚拟化系统的成长,以及软件定义网络被越来越多人接受的现实,于是开发虚拟化应用交付控制器来响应这一趋势。
这些应用交付控制器厂商形成联盟,将产品与虚拟网络环境整合起来。他们还增加了脚本驱动功能,让网络管理员可以开发应用交付控制器可执行的特定应用程序功能。
网络安全和监控
防火墙,防病毒扫描和入侵防御系统一直以来都存在于不同的设备中。应用交付控制器存在于数据路径中,而且它可以执行特定应用的脚本能力让其成为扫描输入数据,并确定其是否为恶意软件的理想工具。省去各自独立的安全组件降低了网络复杂性和资金成本。
应用交付控制器还可以通过阻挡有问题的请求来保护服务器免受拒绝服务攻击。一个大型的,分布式攻击可能会消耗应用交付控制器的资源,以致于许多合法的请求无法通过,但是服务器可以支持他们收到的请求。
另外,由于应用交付控制器的位置处于数据路径中,所以非常适合收集性能和使用数据。他们可以监控服务器的延迟,也可以测量应用程序、终端用户网络或个人终端的流量。
ADC如何提高网络效率
应用交付控制器还可以在其它方面改善网络效率。在一个没有应用交付控制器的环境中,每个终端用户的浏览器都会创建一个或多个传输控制协议连接到一个Web服务器。在终端用户界面到因特网连接中使用网络地址转换(NAT,-network-address-translation)可以减少连接的数量,但由于终端用户数量多,大量的连接还是会给网站管理造成负担。
此外,每个请求都会创建一个传输控制协议连接,是一个资源密集型操作。
使用传输控制协议复用,应用交付控制器建立与后端服务器的持久连接。个人浏览器或网络地址转换(NAT)功能创建连接到应用交付控制器,从Web服务器断掉TCP连接管理,从而减少所需服务器的总数。
传输控制协议慢启动算法可以防止网络免受一个新的连接暴发而卡死。通过复用传输控制协议连接,慢启动只发生一次。如果没有一个应用交付控制器,每个浏览器到Web服务器的连接都需要经历慢启动过程。
如今基于Web的应用程序通常需要排一个很长的请求和响应队伍。
当一个初始请求到达Web服务器,服务器会在其中创建一个存储请求信息的会话。简单的负载均衡可以直接传送下一组请求到不同的服务器。当这个会话在初始服务器上超时并最终被删除时,第二个服务器创建另一个会话。这显然是没有效率的。
流量整形是应用交付控制器提高整体网络和应用性能的另一种方式。传输控制协议包含延迟,选择确认信号,自适应调整窗口大小以及显式拥塞通知这些机制。应用交付控制器使用这些技术,通过减少脉冲串和将短分组整合成较大组来提高效率。
基于请求类型来区分服务器可以通过简化应用软件来提高可靠性。每个应用程序将处理一种类型的请求。网络管理员会提供应用交付控制器脚本来扫描输入数据,并指示每个请求到设计好的应用程序进行处理。
ADC准备迎接SDN
应用交付控制器目前还是以预装在硬件设备中的形式来出售,但领先的供应商,为了适应软件定义网络,还开发了在虚拟化服务链中可以快速插入的虚拟单元。
这些服务链,连同其它网络功能虚拟化组件,可以根据需求通过云自动化系统移动。
如果“软件定义网络”可以扩展,而不仅仅是通过OpenFlow连接到交换机的一个控制器,那么我们当然可以考虑虚拟化应用交付控制器,以增强的脚本作为组件融入SDN中。
佚名
……