Page1of15网站应用加速解决方案——应用ArrayTMX助力网站应用负载管理和性能增强功能实现ArrayNetworks,Inc.Page2of151.网站应用发展及所面临的挑战随着互联网应用的不断丰富,及网络基础设施建设推广的不断深入,越来越多的企业和个人逐渐改变了获取信息的方式、甚至是生活方式。网站已经逐渐成为人们传递信息、联系交流不可缺少的组成部分,并逐渐成为社会活动、生产生活不可缺少的重要环节。在当前网站实现方式中,绝大多数采用浏览器方式,通过Http或Https协议进行内容发布和多样化的信息传输。随着应用类型的丰富,多媒体内容的逐渐增多,图片、视频、甚至动态页面已经成为网站实现的应用亮点。越来越多的网站借助丰富多样的技术实现和个性化的应用模式来吸引用户的关注,满足业务实现需求。伴随着互联网应用类型和内容的丰富,网站的访问量与日俱增,所有访问请求都涌向内容服务提供商网站,导致网站运维压力增大,响应速度逐渐减慢,并面临以下应用压力和挑战:1.1.网站应用服务器“多米诺”现象在网站应用系统平台中,单台服务器设备的应用,会随着各种条件的影响,不可避免的出现单点故障等问题,而在网站应用中,任何无备份系统的单点故障都将直接影响到业务的正常提供,造成极大的损失。考虑到服务器的冗余备份,需要服务器冗余设置来处理和接管出现故障主机的工作。传统方式是通过一台或多台服务器,采用冷备份方式来实现,当主服务器出现故障时,进行人工切换到备份服务器上。但这样做,除了会产生实效性的问题外,还将无法同时利用所有服务器的资源,应用投资得不到充分保护。且当出现超过主服务器的负载情况时,所得到的将是“多米诺效应”,即包括冷备份服务器在内的服务器将依次被过高的负载压垮,直至无服务器可用。1.2.处理能力有限且扩容能力有限随着网站应用用户的增多和系统应用负载的增大,各个应用服务器,特别是前置服务器上所要处理的数据量将增大,从而影响针对使用者的响应效率,造成对访问者的请求回应越来越慢等严重影响网站应用服务质量的现象。在服务器端则直接表现为可容纳的连接数越来越小,系统性能严重下降。此时,将需要考虑增加应用服务器和数据库服务器的数量来满足不断增大的应用负载需求。当仅通过服务器集群(Cluster)的方式实现扩容时,将存在成本较高,严重影响正常网站应用服务的提供等问题,且扩容能力有限,无法满足不断增长的网站应用的需要。Page3of151.3.网站应用系统发展与网络结构调整的不平衡性随着新功能的加入和用户数的增多,网站应用系统维护和网络拓扑的变化将随时有可能发生,完全依靠专业技术队伍通过更改服务器配置或网络拓扑等方式进行网络调整的方式,将存在大风险、非实时性、缺乏灵活性等缺陷。如何能够在业务正常运行的情况下进行按需增长的、动态的、且对网站应用用户是透明的网络调整和更新扩容,已经成为网站应用中迫切需要解决的问题。1.4.应用服务器“峰值”问题网站应用处理过程中,各个应用服务器的负载存在“波峰”和“波谷”的规律或不规律的变化,即便在波峰时,负载的大小又是不规律的,这就很容易使服务器面临“峰值阻塞”的问题。传统方式是通过更换为具有更高处理能力的单台服务器主机的方式来满足峰值的负载访问请求,但这种方式投资成本极大,并存在很大的资源浪费情况。1.5.系统维护升级等问题将给相关人员造成极大的压力网站应用平台的稳定运行,离不开应用系统的日常维护,而在线系统的维护操作,将会给正常应用中的网站应用带来了安全隐患。在主机操作系统和应用程序的调整和升级过程中,将会由于需要重新启动正在提供服务的应用程序,甚至重新启动操作系统而使此类工作很难进行下去。有限的维护、升级时间,将对应用造成很大风险的同时,给各个方面的相关人员造成很大的压力。1.6.同各大网络的高速互联所产生的链路负载分担需求网络运营中心一般都具有很高带宽资源,通过高速光纤直接接入骨干网,并根据需要可随时扩充带宽。为了避免单条专线链路故障,通常需要通过多条高速专线链路连接到互联网,以提供备份容灾的功能,并在正常情况下能够同时提供服务。传统实现方法是通过复杂的路由协议(如BGP协议)来实现链路负载分担功能,这种电信级的实现方式需要复杂的配置和网络实现,通常不能被企业用户所接受。而目前比较常见的方式是通过专用链路负载分担设备来实现链路冗余和灾难恢复的功能。但传统链路负载分担设备所能够实现的功能单一,无法满足网站应用中多样化的流量管理Page4of15和性能增强功能,在仅仅实现了链路负载分担功能的同时,将增加网站网络拓扑的复杂程度,加大了设备通信延迟。1.7.服务器组扩容的速度远远赶不上访问负载增加的速度较为成熟的内容服务提供商们,通常通过流量负载分担设备和与之结合的服务器组,来满足日渐增多的访问用户的应用需求。但随着用户数和访问负载的增大,内容服务提供商逐渐发现,通过增加服务器的方式已经难以满足用户负载增长的需求,即便在一定时期内满足了应用负载的需要,也存在性能价格比底,设备和资源浪费严重,网络架构逐渐庞大和复杂等问题。如何更为有效的实现网站应用的内容加速功能,使现有的主机服务器系统能够响应更多用户的访问请求,已经成为内容提供商所主要考虑的问题之一。1.8.单一物理位置的网站建设的瓶颈和制约作为仅在某一固定地点接入互联网的内容提供商网站,虽然其服务对象面向整个互联网用户,但由于互联网发展在各地的不平衡和异地之间通信带宽的影响,使得绝大多数网站的访问速度和服务质量随着距离和带宽限制,呈现逐渐减弱的趋势。这种情况极大的制约了网站的发展和服务质量的提高。同时还存在由于不可抗力而造成整个网站应用系统瘫痪的可能。2.ArrayNetworks网站应用优化解决方案网站应用系统通常采用WebServer/ApplicationServer/DatabaseServer多层结构设计,在应用过程中,通过WebServer来响应用户浏览器的访问请求,而ApplicationServer被用来执行应用程序或调用后台数据库中的信息资源。网站机房内将包括数据库服务器主机、应用服务器主机、web服务器主机、工作流服务器、负载均衡设备、存储阵列和备份磁带库等,从而组成一个完整的网站应用体系。在网站应用系统中,通过ArrayTMX系列产品的应用,将流量管理技术和性能增强技术进行无缝结合,能够实现并保证通常网站架构中所采用的三层结构具有良好的扩展性,从处理能力、扩展能力、安全性、应用的便利性等方面提供了全面的主流负载管理和性能增强功能,能够在满足网站应用平台对持续性和稳定性的需求的基础上,提高网站应用系统的处理能力,在同样主机及网络平台下满足更多用户应用的访问需求。Page5of15(Array网站应用平台优化拓扑结构图)2.1.通过ArrayTMX服务器负载均衡功能实现网站应用系统的高可靠性ArrayTMX产品解决方案中所指的高可用性,同时也是企业确保网站应用系统正常运行所需考虑的,主要是指以下几点:a)使数据始终以一个稳定、安全的方式处理,在网站应用系统平台中,通常使用前台应用服务器通过对后台数据库中数据的读取来满足浏览器用户的访问处理请求,通过ArrayTMX产品负载均衡功能的处理,即便存在单台设备不能提供服务时,仍能保持数据的完整性。通过智能识别检查,使整体应用持续稳定运行,即便发生单点或多点故障仍然能够保证正常提供服务。b)使包括应用服务器和数据库服务器的整个网站应用网络环境能够更好的被管理,提供TMX设备本身容灾集群(cluster)功能、服务器集群共享、应用和后台服务器方便维护等特点。c)使web服务器,应用服务器和数据库服务器设备投入有更好的效益和最佳的扩充能Page6of15力,即在保证数据完整性的同时,提供网站应用系统持续运行的能力,并实现当用户量的增大时,在不影响应用的情况下,通过按需增加应用服务器或数据库服务器的方式,响应用户负载的增加,保证了原有企业投资具有很高回报。d)网站应用系统需要经常更改应用流程和实现模式,在线进行相关功能实现则不可避免的存在某些问题,通过TMX系列产品的应用,能够使应用服务器软件不够完善,如经常出现故障不能提供服务的情况下,仍然能够持续保证应用系统持续在线能力。首先在网站应用服务器故障切换方面,通过多台网站应用服务器与ArrayTMX产品的负载分担功能和安全冗余增强功能相结合,实现稳定可靠的网站应用功能实现。三层架构的网站应用系统平台正常工作情况下,ArrayTMX产品对Web服务器、应用服务器和数据库实现了服务负载分担功能和应用性能增强功能。当网站应用服务器组中的所有应用服务器均正常提供服务,ArrayTMX设备能够隐藏后台应用服务器组的IP地址和拓扑结构,仅向访问用户提供有限的一个或几个IP地址和端口,以供用户进行访问。在应用服务器组均能够正常提供服务时,ArrayTMX设备能够根据预先配置,将用户访问请求发送到后台最合适的应用服务器上进行处理,在实现了将大量访问负载分担到多台应用服务器上进行处理的同时,还可以通过增加应用服务器数量的方式来提高整个网站应用平台的处理能力和响应速度。而网站应用系统中的任何一台或几台应用服务器需要离线进行维护或出现故障时,ArrayTMX设备能够通过预先配置的多种智能健康检查机制,及时发现不能正常处理应用的应用服务Page7of15器,并将接下来的用户访问请求发送到其它能够正常处理的应用的服务器上,从而避免了由于某台服务器的故障而影响了整体的网站业务的提供,保证了网站业务应用的高可用性。2.2.1.SLB的负载均衡算法SLB的负载均衡算法分为Policy和Method两种,Policy是指virtualservice和Group的之间,对不同组的均衡选择算法,而Method是指在一个组内部的多个服务器之间的均衡算法。我们先看Method,ArrayTMX支持多种服务器负载均衡算法(持续性的和非持续性的),包括轮循算法、最少连接算法、最短响应时间算法、散列算法等等。此外实际服务器可以被分配不同的加权值来调整被分配的流量。可以使性能高的大型服务器支持更多的负载。为了避免服务器因过载而崩溃,可为实际服务器指定最大连接阈值来避免该服务器过载。任何服务器可被指定为另一台服务器的备份服务器或溢出服务器,从而进一步保证了应用可用性。非持续性算法(Non-Persistent):一个客户端的不同的请求可能被分配到一个实服务组中的不同的实服务器上进行处理。主要有:轮循算法、最少连接算法、响应速度算法等。轮循算法(RoundRobin):每一次来自网络的请求轮流分配给内部中的每台服务器,从1至N然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相Page8of15同的软硬件配置并且平均服务请求相对均衡的情况;最少连接算法(LeastConnection):客户端的每一次请求服务在服务器停留的时间都可能会有较大的差异,随着工作时间的加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不同。最少连接数均衡算法对内部中有负载的每一台服务器记录正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时间处理的请求服务。最短响应时间算法(ResponseTime):负载均衡设备对内部各服务器发出一个探测请求(例如Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好地反映服务器的当前运行状态,但最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。持续性算法(Persistent):从一个特定的客户端发出的请求都被分配到一个实服务组中的同一个实服务器上进行处理。主要包括:A.基于IP的算法PersistentIP(pi):基于用户IP地址来选择服务器。HashIP(hi):基于用户IP地址的HASH值,来选择服务器ConsistentHashIP(chi