开源ADC vs 商业ADC,怎么选?

2015-11-24 eNet&Ciweek

  主流开源和商业ADC系统有哪些   对于绝大多数的互联网企业来说,负载均衡已经成为其系统网络架构中不可或缺的组成部分。负载均衡技术是终端用户与业务系统之间沟通的桥梁,也是实现系统处理能力快速扩展的最佳技术。目前负载均衡的主流解决方案分为两大阵营:   1、开源ADC阵营:主要有LVS、HAProxy、NGINX等,功能简单但获取容易,投资成本低   2、商业ADC阵营:目前国内外有很多专业品牌的ADC产品,如A10 Networks的Thunder,与开源方案相较在功能和性能上更具优势,但一次性采购成本较高。   以上只是泛泛的比较,也是业内的共识,接下来我们从业务层面和系统架构层面进行详细对比。   便宜没好货?真是这样吗?   对于国内绝大多数的初创互联网企业来说,尽管开源软件配置管理比较复杂,仍然成为实现应用系统负载均衡功能的首选。但随着企业业务的快速发展和增长,网站的访问量和流量也会快速增长,这时候,开源的负载均衡软件的弱点就暴露出来了。   IP地址开销   LVS处理性能较强,但只能做简单的四层处理,并且配置和实施比较复杂,除了要配置LVS之外,应用服务器本身也要做相应的配置。如果后端的应用的种类比较多,会消耗大量的公网IP地址。这对于公网IP地址都不太富裕的中小企业来说,LVS基本成为不可能选择的方案。   性能软肋   HAProxy和NGINX类似,能够做Web应用的七层处理,这就能够解决多个Web应用映射到同一个公网IP的需求,而且能够做比较复杂的逻辑处理。但是,受限于Linux本身,其处理性能又是其软肋。   尽管这类开源的负载均衡软件部署成本比较低,当企业的网站访问量达到一定规模后,性能处理不足的弊端会凸显出来。这时候,企业会考虑采用商业的负载均衡产品来处理不断增长的Web流量。   商用ADC太贵,要割肾的节奏?   相较于开源软件,商业的负载均衡产品投资成本比较高。对于初创企业来说,并不是特别好的选择,但是,为了实现业务的快速增长,支撑不断增长的业务流量,商业负载均衡却成为企业不得不考虑的选择。   由于采用了专用的硬件和系统设计,商业负载均衡从性能、功能、安全性、可靠性上,都比开源负载均衡软件要强大很多。以A10 Networks的Thunder 6430(S)为例,单机处理能力高达155Gbps,而体积却只有1U大小。虽然在性能价值比上颇令人心动,而且也很好的解决了运营成本(电源能耗、机架空间、运营人员等)的问题,但如果所有的流量都通过商业负载均衡产品处理,投资成本也是互联网企业不得不慎重考虑的因素。   鱼和熊掌也能兼得?一号店的如意算盘   实际上,商业负载均衡和开源的负载均衡软件,在网站的整体架构中并不是对立的两面。充分发挥各自的专长,不仅能够降低网站的投资和运维成本,也能够实现网站性能的高扩展。   1号店充分利用商业和开源负载均衡各自的特点和优势,从架构上进行整合,不仅提高了整体网站的性能扩展能力,也大大降低了原有负载均衡的管理复杂度。从开源负载均衡软件到商业的负载均衡设备,再到开源和商业负载均衡的融合,1号店摸索出了一套自己的方式。   发展初期先吃“鱼”   和大多数的互联网公司一样,在发展初期,为了降低整个网站的投资成本,整个网络中大量部署了HAProxy。随着公司业务的快速发展,HAProxy成为网络架构中的瓶颈。单台HAProxy的处理能力不足,导致关键业务时常出现问题。如果部署多套HAProxy,网络出口又没有足够的公网IP地址。当网站进行促销或遭受到攻击时,HAProxy会成为第一个趴下的节点。   遇到瓶颈换“熊掌”   在新的流量压力下,1号店考察了A10 Networks的负载均衡产品,并在现网进行了一些测试。测试结果发现,商业的负载均衡的确有不俗的表现:   1、性能强大,原来HAProxy顶不住的流量,在商业负载均衡上能够极为轻松的应对。   2、管理和配置简单,直观的命令行和GUI页面展示,大大降低了原有的管理难度。   3、一些针对Web应用的高级功能,如:压缩、SSL卸载、连接复用等,有效的降低了后端服务器的负载。   4、安全防护功能能够轻松有效的应对经常发生的DDoS攻击。   由于专业的负载均衡产品具有诸多的优点,运维人员很快将所有应用的负载均衡功能都迁移到A10 Networks的负载均衡设备上。利用A10负载均衡具有的可自定义脚本功能,运维人员又写了若干脚本,解决诸如URL跳转、URL变换、攻击源阻止等等问题。   峰回路转,鱼和熊掌一起来   随着业务的发展,又出现麻烦事了……原来的运维人员离职了,新接手的工程师对A10 Networks负载均衡的配置不太熟悉,更不敢对原有的配置(为处理一些特殊问题添加的脚本、配置)进行任何调整。因此,一号店决定借此契机对负载均衡的架构再次进行升级、调整。   新的架构中,重新引入了HAProxy,并最大限度的发挥商业负载均衡和开源负载均衡各自的特点。调整主要包括以下几个方面:   1、商业负载均衡性能出色,部署整个网络出口,负责处理来自互联网客户端的访问请求。主要实现基于域名的转发、防DDoS攻击、SSL卸载和高性能的请求转发。   2、HAProxy成本低廉,用于内部应用之间的API调用。   3、所有复杂的URL变换、目录改写、缓存、压缩等工作,交由HAProxy或NGINX来处理。如果单台HAProxy或NGINX的处理性能不足,则部署多台,前端通过A10 Networks的负载均衡实现HAProxy的负载均衡。   4、利用A10 Networks负载均衡的API功能,建立基于应用业务的性能监控和配置管理平台,使负载均衡的配置管理模块化、流程化。   大结局:英雄莫问出处,都为应用服务   经过调整之后,整个系统架构中,负载均衡的定位更加清晰,使用方式相对固化,也更加简单。运维工程师对负载均衡的管理复杂度也大大降低,出现问题后的故障定位也变得更加简单。   新的架构调整,充分发挥了商业和开源负载均衡各自的优势,在降低总体投资成本的同时,也提高了原有系统的处理能力和扩展的灵活性。

您对本文或本站有任何意见,请在下方提交,谢谢!

投稿信箱:tougao@ciweek.com