从AlphaGo世纪之战谈如何选择负载均衡设备
作为为一场比赛,“阿法狗”对弈李世石已经结束。作为一次人工智能秀,这个热潮才刚刚袭来。
我们在为谷歌人工智能技术为之叹服“4:1”
这是在与前世界围棋第一人、韩国九段名将李世石的对弈中,谷歌人工智能“阿法狗”(AlphaGo)机器最终取得的战绩。
但很多人不知道,AlpaGo的胜利和分布式计算集群系统的成熟息息相关,这是之前,谷歌在《Nature》杂志上就发布了不同版本的AlphaGo对弈的结果:
不同版本的AlphaGo对弈的结果
在分布式版AlphaGo和对弈单机版AlphaGo的对弈过程中,分布式版的胜率达到了77%,由此看来:多机系统比单机的性能高出很多,而且依赖于优秀的分布式系统,我们可以让计算能力Scale-out扩展无极限。
其实随着云计算与大数据的爆发式增长,分布式计算越来越受到大家的关注,而传统业务不进行软件改造就想获得分布式的好处,服务器负载均衡技术是最早受到行业用户的关注的智能化数据交换技术,通过各种新技术集成到一起集中交付给用户,负载均衡设备也被一些厂家称之为应用交付设备,并且越来越多的技术集成支持传统业务和云计算、大数据业务,形成应用交付中心方案和云应用交付平台方案,并保障数据中心更加通畅可靠的运行。
不过,负载均衡作为一种集硬件设备和解决方案于一体的系统型产品,并不像服务器或是PC那样可通过配置参数来辨别。在一大堆厂商负载均衡设备参数中,究竟选择哪家的产品才适合?
云负载均衡(应用交付)的专业公司鸬鹚科技技术总监罗总介绍,向大家介绍
负载均衡产品的几大类别和如何选择专业的负载均衡硬件以及未来对应负载均衡技术在欧美的趋势。
负载均衡的分类
首先,我们介绍一下负载均设备基本分类的两种类型
1、 链路负载均衡设备
2、 服务器负载均衡,又被叫做应用交付设备,有些厂家称之为智能交换机,
服务器负载均衡根据数据包处理能力又可以分为
a、 四层负载均衡
b、 七层负载均衡
根据用户需要负载本地服务器还是负载多区域数据机房又分为
a、本地服务器负载均衡(Server Load Balance)
b、全局负载均衡(Global Server Load Balance )
根据产品形态又分为
a、 负载均衡硬件设备
b、 负载均衡容器服务器
c、 云负载均衡(虚拟化版)
那么这么多产品都叫负载均衡,如何区分并选择我们需要的产品呢?
链路负载均衡的选择
在选择负载均衡产品之前,首先要明确这个产品的主要应用范围是链路负载还是服务器负载。这两种场景的网络应用模式差异很大,将直接影响选型的参数。
在链路负载中,负载均衡的选型更多地接近于普通的网络设备。一般情况下,网络显示出流量大,但新建并不高。
因此,在链路负载场景中,吞吐量是最重要的指标。实际选择中,用户可以根据网络出口带宽、实际峰值流量、还有在线最大的并发用户数(会话数)来计算。
在链路部署中,负载均衡通过根据IP地址、协议类型做转发,主要工作在四层模式,因此用户可以根据四层吞吐量来选择合适的产品型号。如果设备既使用作为链路负载均衡功能又开启应用负载均衡的话,对应的换算就比较困难,其实对应的链路负载均衡本身设备的因为只涉及四层网络数,同时更多倾向于常规的防火墙防护,使用嵌入式(非X86)构建的硬件会更加稳定和专业,使用专业的硬件链路负载均衡,可以避免了一次买过高性能设备的资金浪费,有效地?;ち俗约旱耐蹲?。
需要注意的是,厂商标称吞吐量的方式并不相同,有些标注的是HTTP有效吞吐,有些则标称的是UDP吞吐。标称UDP吞吐的值会更高一些,但无法真实反映产品实际处理能力。所以,如果要通过UDP吞吐来选择产品,建议将所需要的值双倍、甚至三倍来计算最终需要的设备吞吐值。
在链路负载,对应是传统交换机厂家的强项,各个厂家一般都会以背板带宽作为链路负载均衡的性能标准。
因为使用的是嵌入式网路硬件(成本低、功耗小、稳定性高),同样的性能参数,只需要付出传统服务器负载均衡1/10-1/50的成本(企业级产品的性价比超高,行业级产品对应冗余电源等行业要求成本增加,但依然有着优越的性价比).在处理四层数据能力上,性价比和稳定性远远超过X86构架,而且对应的应用负载均衡在欧美会越来越软件化(变成虚拟机纳入云平台,这个我们在后面的章节说明),而链路负载均衡会越来越硬件化(边界的设备,硬件形态才是最好的)。为什么链路负载和服务器负载需要分开采购,总结起来有几个原因
1、 成本的巨大差距:链路负载和服务器负载成本差距巨大,如果按照链路负载参数选择服务器负载会大大浪费资金
2、 硬件软件方向分化:链路负载往往强调边界能力,专业的用户会倾向选择更加稳定的和专业的硬件,而对应成本意识强的客户会选择现有的路由器和防火墙的功能??榫湍苁迪至绰犯涸氐囊?,服务器负载均衡未来会向云数据中心集中,虚拟化是服务器负载均衡必然的趋势,这也是国外很数据中心云化后的业界趋势。
3、 各自稳定性要求:边界设备的稳定性更加重要,服务器负载更多侧重于七层数据,链路负载只是处理四层的数据,如果因为服务器负载的负荷过大,影响到链路负载为边界设备稳定性偏弱导致网络瘫痪,甚至业务中断往往得不偿失。
4、 专业化分工要求:客户选择服务器负载均衡和链路负载均衡的位置以及需求往往差别很大,随着业务需求提升,用户会不光会把服务器负载均衡和链路负载均衡区分开,而且会把web服务器的负载、中间件应用层服务器的负载、数据库服务器的负载分开,各自使用单独的负载均衡,这个时候绝大部分的负载均衡考虑是对应用本身的优化,链路负载功能都不再需要。
应用服务器负载均衡的选择
如果说链路负载均衡主要了解吞吐和并发以及对应硬件构架和性价比后,服务器负载则需要考虑得更多,它首先需要的是用户数、数据吞吐能力和全面的功能。
对于服务器应用来说,其典型特点是,高新建、高并发、低流量。一个应用,可以在短短几分钟时间内,新建连接峰值达到6000个,并发超过12万,但峰值流量却只有不到300Mbps。
所以在服务器负载的选择中,首先要看负载产品的新建连接数。该指标就像一个瓶子的瓶口:瓶口越大,服务器所能处理的用户数就越高。
同时带宽吞吐能力,因为涉及到综合能力的考量也是性能中很重要的参数。
不过,会很多工程师说,“我不知道应用场景里每秒新建连接数有多少???根本拿不到这个数据。”这是事实,很多时候,对业务的新建连接数,只有通过专业设备才能统计出来,很多用户是不知道当前业务的新建连接数量的。
这该怎么办呢?其实,这是可以推算出来的。
需要设备性能=并发用户数*每个业务会话数*业务总数*1.5+未来用户数*每个业务会话数*业务总数
例如,虽然不知道新建连接数,但用户数是可以了解的。比如:某业务的用户数有2000人,根据业务性质估算出大概同时会有500人在线,再估计一下每个用户访问业务发起的连接数为20个(可以通过抓包查看)一共10个类似的业务系统(一般一个人不会同时登陆所以对应参数设置为3),那最终该系统的负载设备新建连接选型就应该是:
(500*20)*3*1.5 +1500*20*3=45K-135K
也就是说,首先要选择一个新建数不低于45K/S的负载设备(对应如果是七层性能需要在要求性能乘以2的样子)。在这个基础上,考虑下吞吐带宽。
比如以下系列产品
LCA系列企业版
产品型号 |
LCA118 |
LCA418 |
LCA1018 |
吞吐量(Gbps) |
1 |
4 |
10 |
千兆以太网端口数 |
4 |
2 |
4 |
10 GB 光纤端口(SFP+) |
无 |
无 |
2 |
TLS (SSL) TPS (2K 密钥) |
200 |
1500 |
10,000 |
TLS (SSL) TPS (1K 密钥) |
1,000 |
3000 |
17,000 |
并发连接数(Mpps) |
4 |
6 |
26 |
Web 应用防火墙(WAF) |
无 |
支持 |
支持 |
SSO统一身份验证 |
支持 |
支持 |
支持 |
全局负载 |
支持 |
支持 |
支持 |
SDN 支持 |
无 |
支持 |
支持 |
TCP单边加速 |
支持 |
支持 |
支持 |
内容缓冲加速 |
支持 |
支持 |
支持 |
设备外观 |
1U |
1U |
2U |
冗余热插拔电源 |
不支持 |
不支持 |
支持 |
需要注意的是:服务器负载要考虑负载设备上开启的业务,例如纯四层业务就只需要考虑四层新建,如果开启七层业务就要考虑七层新建。
补充一下
四层负载均衡和七层负载均衡的区别:
四层负载均衡:是通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器与请求客户端建立TCP连接,然后发送Client请求的数据。
由上图可知:在四层负载设备中,把client发送的报文目标地址(原来是负载均衡设备的IP地址),根据均衡设备设置的选择web服务器的规则选择对应的web服务器IP地址,这样client就可以直接跟此服务器建立TCP连接并发送数据。
七层负载均衡也称内容交换,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的服务器。
由上图可知,其实七层负载均衡起了一个代理服务器的作用,我们知道建立一次TCP连接要三次握手;而client要访问webserver要先与七层负载设备进行三次握手后建立TCP连接,把要访问的报文信息发送给七层负载均衡;然后七层负载均衡再根据设置的均衡规则选择特定的webserver,然后通过三次握手与此台webserver建立TCP连接,然后webserver把需要的数据发送给七层负载均衡设备,负载均衡设备再把数据发送给client;所以,七层负载均衡设备起到了代理服务器的作用。
七层的负责均衡设备的优点:
使整个网络更“智能化”,能把对图片类的请求转发到图片服务器,对文字的请求转发到文字服务器,销售用户的访问自动转发到交付销售服务器,财务用户的访问自动转发到财务服务器,所以七层负载均衡很多厂家又叫做智能交换机,在智能的基础上又会有很多深层应用交付能力,比如单边TCP加速、缓冲加速、SSL加速、SDN扩展支持、SSO统一认证支持等等。如果开启对应的HTTP的缓存、压缩,也会带来的性能损耗?;褂蠸SL卸载,如果有相应的业务开启时,SSL新建、SSL吞吐的参数(1K和2k的密钥加密强度也有区别)也要一并考虑。所以这个时候最终带宽性能就决定了设备中高低端的区别。
在功能上选择一个好应用负载产品会有以下几点重要的功能性需要关注
(1) 七层负载算法需要识别源IP地址、HTTP包头、HTTP包头+源IP地址、服务器Cookie、服务器Cookie+源IP地址、活动Cookie、活动Cookie+源IP地址、Cookie的散列、Cookie+源IP地址的散列、URL的散列、HTTP Post的包头、HTTP查询字符串的散列、自定义HTTP包头等信息,算法计算程度更丰富
(2) 七层负载对Microsoft Exchange、Microsoft Lync、Microsoft ADFS、Microsoft RDS Templates、VMware Horizon View、VMware Horizon Workspace等专业厂家会有天然的支持和建议配置,免去传统企业用户使用负载均衡优化的烦恼
(3) 七层负载的安全性同样至关重要,因为目前负载均衡已经成为网络的核心组件,成为服务器业务连续性、完整性、可靠性的?;ど?。七层负载均衡的安全性需要从两个方面体现:一是系统本身的安全性,软件系统应采用自主研发,无系统漏洞和后门;二是可以提供必要的网络安全防护,减少服务器被直接攻击的威胁,这样可以减少服务器区设备串联堆叠带来的单点故障。专业的负载可以支持IPS,IPS防御库可在线更新;有效防止DDOS 、SYN Flood攻击,支持WAF(网络应用防火墙)等使网站更安全。
(4) 对业务优化的帮助,单边TCP加速、缓冲加速、SSL加速、SDN扩展支持、SSO统一认证支持等等功能对业务的优化和加速是商业版负载均衡能力很重要的考量,如果这些能力不够成熟还完善,用户往往宁愿选择免费的开源负载均衡来解决一时之需。
像上面互联网金融平台,在没有出现安全漏洞和合规性问题前,他们也是使用开源的pache在业务能力上也基本满足要求,但随着用户访问原来越多,信息安全问题越来越突出,考虑向传统金融企业合规性的学习,在边界他们使用SSL加速/卸载能力加强加密强度,以提高访问的安全级别,同时降低边界web服务器的负荷,用单边TCP加速和缓冲加速等能力提高客户的访问体验。IPS和WAF的能力对?;に峭居τ玫陌踩园镏埠艽?,同时未来考虑到数据灾备的方案时候,全局负载的能力以及SDN、VPN的能力又能帮助他们更智能的兼顾应用交付全面性的问题。
商业化负载均衡十多年的产品沉淀和服务能力以及对新技术的敏感力能够很好的帮助传统企业用上最好最专业的IT产品,达到事半功倍的效果。
而专业的商业负载均衡虚拟化能力的成熟性,替换掉原有的开源虚拟化的负载均衡也是一蹴而就的简单事情。
(5) 网络的稳定性主要通过设备关键部件的冗余设计,以及双机、集群部署方式实现要很重要。
(6) 对X86平台的优化能力,由于七层对CPU的负载要求更高,这就需要更高性能的产品。虽然目前硬件平台已经发展到多核,国内传统负载均衡厂商在多核平台的应用开发上存在着较大差距,严重制约负载均衡设备多核之间计算能力的协调分配和使用,即使是负载均衡的老大F5目前也是刚从嵌入式平台转移到X86平台(刚才我们说了链路负载嵌入式平台的好处,但为什么迁移的X86平台,其实主要是为了云计算服务),能否在X86平台上优化好,对七层负载均衡尤其重要。
(7) 对云计算的支持,在海外随着业务并发数不断提升,用户关键业务的高可用性越来越重要,企业对服务器集群后如何更加有效的使用,应用负载均衡(国外链路负载的工作因为没有国内南北互联、多重内外网等问题,相对来说都是交给专业的链路负载均衡能力的边界设备来支持)已经变成企业核心业务系统必不可少的组件。虚拟化的负载均衡变成每个应用的标配。出了传统的硬件设备提供外、是否提供各种虚拟化版本支持和优化(尤其是通用如vmware联动版本的支持等)、公有云版本、容器模式(传统服务器变成专业负载均衡服务器)的支持,也是有远见的用户必须要考虑的。
(8)全局负载的能力对应用负载均衡也至关重要
如果说本地服务器负载均衡是把多台服务器通过一台负载均衡交付出去变成“一台服务器”,那么全局就是帮助用户通过多重技术实际的帮助用户把多个机房交付出去变成“一个机房”,全局负载均衡提供多个数据中心的业务系统的高可用性和容灾,同时适合于私有云和公有云的业务系统迁移切换,全局负载的好坏决定了本地服务器集群的扩展性(如何智能又安全的扩展到私有云、异地(灾备)机房、公有(灾备)云)某些不专业的厂家只是具备简单的智能DNS功能就号称自己有全局负载的能力,其实专业的全局负载还有一下需要关注的能力:
a、 全局负载均衡内嵌哪些算法包括:轮询,权重轮询,固定权重,业务系统的负荷,根据用户访问位置的经纬度,根据用户访问位置离数据中心的就近性.
b、 是否可以根据数据中心站点是否为公有站点和私有站点设定访问策略.
c、 是否支持自定义站点不可用时的恢复模式:即手动恢复或自动恢复.
d、 全局负载均衡是否支持会话保持
e、 是否支持和DNS的无缝集成,实现自动寻址
f、 是否内置IP(IPv6和IPv4)的位置数据库,并定时更新,
g、 是否支持外置部署方式:即将设备部署在数据中心外,统一提供高可用性和容灾.
h、 是否支持自定义地区,自定义IP地址和地区的映射. 实现异地多数据机房的统一
i、 是否支持集群部署,在每个数据中心均部署设备提供全局负载均衡,对外作为一台逻辑的设备.
j、 是否集群部署模式下,支持设备之间的配置自动同步,支持设备的统一内核升级管理.
这些能力都决定最后是否可以把多个平台和机房更加智能的交付成”一个机房“甚至“一台服务器”。
(9)本地化的用户需要本地化的服务能力
因为国外产品分工非常细致,所以有些产品在本地化能力方面不够,比如本地化大数据审计的能力,本地地址库更新的能力,单点登录的能力、应用虚拟化整合的能力、多设备集中管理和升级的能力,这些个性化的本地化能力也是用户选择专业厂家的重要因素。
(10) 厂家对负载均衡的使用专业度以及对整体方案(云演近、云应用交付中心、灾备、SDN扩展支持等)的理解力也是用户选择的关键。为什么传统金融和行业用户,因为合规等需求而大量采购商业化负载均衡硬件和软件,而不选择开源方案,就站在这个专业角度和专业服务方面考虑的。
综上所述,如果真正了解了负载均衡产品性能参数的含义,做负载均衡产品选型其实并不难,但综合考虑企业的合规、高要求的需求后,选择一个合适的安全且功能强大的商业化产品,选择一个有远见和专业度高的厂家尤其是重要。
Luccitech鸬鹚科技介绍
公司注册资金1000万,十余年的专业交付和安全产品经验,国内首家云应用交付产品解决方案提供商,拥有一批国内外最早参与云计算整体解决方案的专家。公司总部和研发基地位于深圳,在广州和深圳分别设立营销中心和服务中心,同时在南宁、南昌等地设有办事处。公司核心员工来自微软、IBM、联想、中国电信、电信研究院等一线行业IT服务公司。鸬鹚科技致力于通过云应用交付平台为整体解决方案,为行业企业客户提供有前瞻性、云演进性的专家级行业应用交付服务,迄今已为中国多家行业信息化领军企业提供整体交付方案和服务,以帮助中国企业提供全球化IT支持方案的领军企业为目标的专业公司。
公司名取自在中国常被寓意勤劳美好之鸟,鸬鹚,秉承IT服务精神。
以成为帮助传统企业实现互联网+帮助国内企事业实现跨越式IT构架,
提供中国企业全球化IT支持方案的专业信息化产品领军企业。