如果你是个运维,企业的业务在不断增长,之前的架构已经开始不能承受业务增长,每天用户对网站流畅性的投诉越来越多。对于大型网站来说,在面对大量用户访问、高并发请求方面,基本解决方法集中为使用高性能的服务器、数据库与Web服务器,采用高效率的编成语言。但是这些并不能处理问题的根本,没得选终极方案——负载均衡。
负载均衡(Load Balance),其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行。在负载均衡中可以分为两种方式,硬件方式与软件方式。在软件方式中有一个让国人骄傲的软件LVS。LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,用来实现Linux平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。
负载均衡的方式
相对来说,对于一些网站和一些网络应用而言,需不需要负载均衡,要看网站的访问量是不是增长的很快,单个处理单元无法满足负载需求时,网络应用流量将要出现瓶颈时,负载均衡才会起到作用。其实在互联网行业中提升业务水平有两个选择,要么花钱买硬件,要么花钱找技术。其实这两个选择总结起来也就是一个——花钱。但是钱一定要花的有价值,买几台服务器增加带宽或者是请一位技术牛人帮你搞定一切是完全不同花钱路线。
负载均衡可以采用软件和硬件两种方式完成,目前市场上主要的硬件负载均衡主要是有F5、思科以及Radware当然梭子鱼的硬件产品也是相当不错的选择,而软件产品主要有LVS、Nginx以及使用量不大的HAProxy。
资深运维工程师刘晗昭谈负载均衡软/硬件
说到选择负载均衡产品大多数的中小企业还是会选择软件产品实现,当然免费的开源软件是比较受青睐的。这里我们采访到了2003年就已经参加工作的资深运维工程师刘晗昭老师。
刘晗昭:资深运维工程师,2003年开始在智联招聘从事运维工作,2008年转战央视国际,之后就职联通新时讯,目前在昆仑万维从事运维工作。
刘老师从2003年开始从事运维工作,从06年开始接触负载均衡,不过最初使用思科的LocalDirector,因业务扩展,原负载均衡设备不能满足业务增长需要,换成了netscaler。在当时的访问量下思科的产品使用效果还是不错的。
刘老师谈到在2008年的时候开始接触软件负载均衡LVS,之后做过的很多项目中在内部环境调度中都是使用LVS来完成的,但是对外面向客户的业务还是采用硬件设备完成。
一直以来有很多争议,负载均衡到底是用软件还是硬件。谈到这一问题刘老师说:“如果公司不差钱,当然选择硬件产品。首先硬件产品的售后服务和技术支持是毋庸置疑的,良好的技术保障也是产品的卖点。同时硬件厂商在GSLB方面都有很好的解决方案,企业可以很容易的实现全局负载均衡。不过使用硬件进行负载均衡也存在着缺点,有了硬件厂商的支持,一部分运维人员很可能把更多的精力放在如何设置硬件设备上,从而忽略了负载均衡的核心技术,毕竟掌握一门技术要比掌握一个产品更重要。”
对于还处于起步期的企业刘老师又说道:“如果企业没有太多的资金支持,选择软件的负载均衡是最合适不过的。首先是节省了一大笔费用,其次在一定条件下效果是不输给硬件负载均衡的。但对于维护软件负载均衡的运维同志们要求就要提高了。LVS是开源的,没有固定的厂商进行支持,所以需要我们充分熟习此项技术,要能解决生产线中遇到的所有问题。从我开始接触LVS以来,技术变化不大,不过围绕负载均衡,却产生很多了支持此功能的软件,像squid、nginx、haproxy、varnish等等,这就让系统架构更灵活更多样。”
其实,单纯说软件/硬件负载均衡是不全面的。然而,就国内的企业来说,使用软件的负载均衡技术更为多一些,一方面是因为成本问题,而另一方面软件负载均衡的优点更加突出。如果有一定运维经验的人都知道软件的扩展性比较好,硬件的承载是非常有限的。众所周知淘宝的并发量大的惊人,据听说他们现在已经把某硬件负载均衡设备全部换成LVS的架构了。
在最后刘晗昭老师还不忘为Linux20周年送上一句贺言:“希望能有越来越多的人加入到linux的阵营中,让开源走的更远。”