1. 概述
T-Force应用优化解决方案,可以对应用处理平台中的服务器实现流量负载以及基于硬件的SSL卸载、HTTP缓存、压缩。支持串行、三角传输及旁路部署,极大的简化了网络的复杂性,有效减轻服务器压力,提升业务访问效率。
2. 服务器负载
通过T-Force服务器负载功能,可以将业务流量分配到多台服务器上,有效扩展性能的同时,提供了服务器之间的冗余,通过基于业务的健康检查算法,防止业务系统死机、中断,有效保障业务的连续性。
2.1 服务器负载
2.1.1 负载分担算法
T-FORCE应用交付平台支持丰富的负载分担策略,即可以根据预先配置的静态算法,也可以根据当前的运行状态进行动态算法的负载分担。
静态算法包括:
轮询(Round Robin)-依次按照顺序把流量分配给每台服务器。
比率(Ratio)-根据服务器的性能为每个服务器指定一个权值,按照这个比率给服务器分配流量。
优先级(Priority)-当使用多组服务器时,为每个服务器组指定一个优先级,默认情况下优先向高优先级的服务器组分配流量,当该组服务器失效时选择备份服务器组。
动态算法包括:
最小连接(Least Connection)-ADC优先把流量分配给当前连接数最少的服务器。
最快模式(Fastest)-ADC通过比对服务器返回数据包的延迟情况,选择一个当前响应最快的服务器来分配流量。
SNMP监控-设备上通过SNMP客户端来读取服务器的实时运行状态,包括CPU,内存和I/O信息,为每种实时信息配置门限值,当超过这个门限值时不再向这台服务器分配报文。
观察模式(Observed)-结合最小连接和最快模式两种结果,选择***平衡为依据为新的请求选择服务器。
服务器平滑接入和退出:
当有新的服务器接入或者服务器重新启动时,ADC系统可以把流量逐步分配给新接入的服务器,避免服务器的某些进程还没有加载完成而导致系统资源占用过高,或者应用响应缓慢的情况,实现服务器的平滑接入。管理员也可以手工方式操作把某台服务器退出流量分担机制,此时ADC系统不再分配新的流量给该服务器,该服务器的现有连接继续保持,直至连接结束。
2.1.2 健康检查策略
健康检查是指对服务器的运行状态定期进行实时检测,一旦发现服务器故障,将把该服务器移出流量分担的队列。T-FORCE应用交付平台提供丰富的健康检查策略,和负载分担算法组合到一起,就可以实现非常灵活的负载分担策略。
TCP SYN-向目标服务器发送TCP SYN报文,如果得到正确的回复表示服务器工作正常。
Ping-向目标服务器发送ICMP请求报文,如果得到正确回复表示服务器工作正常。
HTTP/HTTPS Get-向目标系统发送HTTP或HTTPS协议的Get报文,请求一个指定的URL,如果得到正确回复表示服务器工作正常。
2.1.3 会话保持测试
会话保持是指流量一旦按照负载分担策略分配给某个服务器后,后续的相关请求报文同样分配给同一台服务器,以保障业务的连续性。比如,很多电子商务相关的应用系统或者需要用户身份认证的系统,用户和服务器间会进行多次的数据交互才能完成一笔交易或者身份认证过程,必须把这个过程的交互报文分配给同一个服务器。
T-FORCE应用交付平台支持6类共8种会话保持的方法,即可以根据源IP地址,ServerID等静态信息来做会话保持,也可以通过Cookie插入和重写来实现更高级的会话保持方法。每种会话保持的效率,粒度和应用场景有所不同,对应用服务器的配置要求也不一样。基于源IP的会话保持只需要处理数据包的四层信息,所以效率***,也不需要服务器做任何配置,但粒度比较粗。如果客户端存在普遍的NAT转换,或者某些IP段的业务请求量比较大,那么这些流量被保持发送给固定一台服务器,就会造成流量负载的不均衡。
基于Cookie插入,Cookie重写,ServerID等七层信息的会话保持方式,使保持策略和浏览器的信息相互关联,可以做到细粒度和更均衡的流量分配,基于七层信息的会话保持方式,工作效率不如源IP会话保持。除Cookie插入方式以外,其他如serverid,sessionid, Cookie重写等方式一般需要应用程序做相应的配置。
T-FORCE ADC支持的会话保持方式:
基于源地址-来自同一个源IP地址的相关报文,分配给同一个服务器。
基于ServerID-记录服务器返回的serverid信息,然后从请求报文的URL或Cookie信息中查找serverid,进行解码得到后台服务器的信息,保证带有固定serverid信息的请求被分别到固定的服务器。Serverid需要在web服务器上进行人工配置。ADC不需要对数据包进行修改
基于SessionID-类似于ServerID的方式,记录从服务器返回的SessionID信息,然后从请求报文的URL或Cookie信息中查找SessionID,进行解码得到后台服务器的信息,保证带有固定SessionID信息的请求被分别到固定的服务器。SessionID是服务器自动生成的,ADC产品不需要对数据包进行修改。
基于Cookie插入-这种方式通过修改服务器返回的报文,向其插入一个固定的Cookie信息返回给客户的浏览器,客户端后续的报文请求中都携带了这个Cookie信息,ADC根据这个信息发送给指定的服务器。这种保持方式修改了数据包的长度,但不需要应用服务器端做任何的配置改动就可以实现。
基于Cookie重写-服务器端接收到HTTP请求后,响应报文中会增加一个空白的Cookie返回给ADC设备,ADC在这个空白的Cookie里面写入会话保持的数值,返回给客户端。后续的过程和Cookie插入类似,客户端后续的请求报文会携带这个重写的Cookie,ADC根据这个信息来选择指定的服务器。Cookie重写和Cookie插入的区别是,Cookie重写不需要修改报文的长度,效率会高一些。
基于自定义头部-应用服务自身定义了一个URL Header信息,并希望ADC以此来做负载分担。这种方式下ADC设备记录服务器返回的Header信息,并在客户端的后续请求中进行匹配,匹配成功则转发给指定的服务器。这种方式允许应用服务程序定制自己的会话保持策略。
基于SSL SessionID-当***次请求到来时,按负载均衡算法分配一台后台服务器。在服务器的响应中,按照SSL协议,取出SSL SessionID,并把SSL SessionID分配的后台服务器信息、所配置的超时时间存在一张表中。当后续请求到来,根据请求中的SSL SessionID在表中查找后台服务器的信息,若找到并且时间在超时时间之内,则取出后台服务器信息,并更新超时时间,把请求发往那台服务器。
2.2 内容交换
四层交换主要是依赖IP和TCP/UDP层的信息进行流量的分配,而随着应用自身的复杂性和不断改善用户体验的需求,有时候需要为不同的用户类型返回不同的呈现内容,例如:
把移动用户的手机/pad浏览器请求分发给专门经针对性过优化的服务器。
把请求图片,文档,视频等静态内容分发给缓存服务器。
根据浏览器自身的语言设置,为不同语言区域的用户返回相应的页面
可以根据HTTP请求的方法实现读写分离,HTTP读(get)请求分配给缓存服务器,HTTP写(post)请求分配给处理动态内容的服务器。
T-FORCE应用交付平台的七层内容交换可以识别用户请求报文的内容,如URL信息,应用数据类型,Cookie信息,浏览器类型,HTTP方法等内容,将流量分配给相应的应用服务器。
T-Force应用交付平台通过http-class来标识一个业务分类,http-class根据主机地址,URI路径,头信息和Cookie来定义,每个http-class可以关联一个服务器地址池,然后再虚拟服务(VS)的配置中,引用一个或者多个http-class。当客户端请求访问虚拟服务时,ADC设备进行http-class匹配,匹配成功的请求被分配给对应的地址池。
3. 应用优化与加速
为了保障业务的安全性,很多业务采用SSL(安全套接字)做加密处理,服务器在处理加密后数据时需要耗费大量的资源来做加解密的处理,在T-Force应用优化解决方案中,用户可选择通过专用的高性能硬件SSL加速,代替服务器处理加密数据。此外,通过开启TCP连接复用、HTTP管线、缓存、压缩等功能,可有效减轻服务器负担,提升系统性能,节省服务器投资,改善用户体验。
3.1 SSL硬件加速与卸载
T-FORCE应用交付平台通过内置的专业级高性能硬件加速芯片,完成对SSL协议的加速和卸载,而在数据中心内部,ADC和服务器之间通过明文进行传输,极大的提升服务器的业务处理能力。企业可以把应用全部应用实现SSL协议,实现高安全性的同时,不会给业务带来任何的性能瓶颈。
3.2 本地RAM Cache
本地高速缓存(Cache),通过在ADC设备上开辟一段专用的内存空间(RAM)来存储服务器上的一些静态文件,如图片,文档,视频文件等,开启本地Cache后,客户端请求首先在本地Cache中查找,***以后直接返回给客户端。***失败才向服务器端发送请求,同时对服务器返回的内容进行本地Cache。T-FORCE ADC支持为不同的应用提供各自的Cache空间及参数设置,这样可以把服务器从重复的处理中解脱出来,提升整体效能。
3.3 内容压缩
通过压缩HTTP响应的数据,可以有效提升带宽利用率和缩短下载时间。T-FORCE应用交付平台提供的高性能压缩技术,***可以使带宽利用率增加80%,应用性能提升4倍以上。同时在客户端浏览器和ADC设备间经过一定的算法进行压缩,也起到一定安全传输的作用。
T-FORCE ADC把原本由服务器完成的压缩过程搬到自身的高性能硬件平台,避免了每台服务器都执行一次重复的压缩过程,达到服务器卸载的效果。
T-FORCE ADC支持浏览器最常用的GZIP和DEFLATE两种压缩算法,提供基于七层的精细化压缩控制策略,包括URI,Content Type等。管理员可以定义对“\.txt”,“\.doc”“\.htlm”等文档类型和静态页面数据进行压缩,也可以排除PDF,IMG等压缩效果不明显的不必要操作。
3.4 TCP连接复用
TCP连接复用技术使多个客户端共享一个到服务器的TCP连接,可以提升应用服务器的整体性能,使应用服务器从维护海量的TCP连接,并不断的进行TCP建立和拆除维护中解脱出来,极大的提升单台服务器的承载能力。
T-FORCE ADC设备在接到一个客户端HTTP请求后,通过负载分担算法会选择一台服务器建立连接。如果接收到正常的服务器响应,ADC设备会把这个连接放入到“连接复用池”里面,当另外一个新的客户端发起HTTP连接请求时,ADC设备从现有的连接池里面选择一个可用的连接来和服务器的进行数据交互,而不是重新创建一个到服务器的连接。通过这种优化,可以把服务器负载降低到原来的1/10-50。
3.5 TCP单边加速
标准TCP协议在设计时很少的考虑到高带宽和夸Internet传输的问题,现在随着高速带宽的普及,标准的TCP协议表现出很多的不足,在网络拥塞控制和丢包重传机制上,往往效率比较低下,而且基本不具备根据网络环境实时进行调解的能力。T-FORCE应用交付平台提供智能单边加速的功能,通过对标准TCP协议的慢启动控制,拥塞避免,重传和恢复几个方面进行优化,来达到整体网络加速的效果。同时,T-FORCE ADC设备可以根据当前的网络状态,和承载的协议类型智能的选择一种效率***的算法。
T-FORCE应用交付平台的单边加速对客户端和服务器来说都是透明的,ADC和服务器之间仍然按照标准TCP协议运行,ADC和客户端之间进行单边加速,客户端不需要做任何修改。
3.6 HTTP管线(Pipelining)
传统的HTTP协议是当一个请求发出,等接收到完整的响应数据后,才进行下一个请求,这在高延迟的网络环境中会导致整个数据交互的效率比较低。HTTP管线技术(Pipelining)可以将多个HTTP请求同时提交,而不用等待顺序的请求回应。
(不带Pipelining的HTTP流程)
T-FORCE应用交付平台可以和支持Pipelining的客户端浏览器智能协商开启,ADC和服务器间还是正常的HTTP协议流程。
3.7 窄带用户应用加速
当客户端通过窄带线路比如通过ADSL拨号或者智能手机,pad移动终端上网时,对于应用服务器的响应,可能会由于客户端侧带宽不足,或者带宽质量不好而导致报文的拥塞和丢包。这时客户端就会发起重传请求,如果大量的窄带用户同时访问,就会出现应用服务器反复处理这些重传请求的压力增大而降低效率。
T-FORCE应用交付平台使用TCP数据缓存技术,自动检测客户端对服务器响应的处理能力,对于窄带用户,ADC会在自身平台开辟出缓存空间来存储服务器返回的数据,以客户端能够适应的速度完成数据交互,避免出现大量的重传。服务器只要处理完成用户的请求后,就可以释放出来处理其他工作,不用再去处理丢包重传的情况。
3.8 重写Rewrite
Http协议的请求阶段和响应阶段都可以对URI进行重写,在请求http请求阶段,可以把符合预置条件的所有http请求发送到一个指定的URL,比如是提示用户进行登录的页面或者其他信息提示页面。又或者是当服务器某些文件已经不存在或者目录发生更改,而用户通过其他网站或者搜索引擎的旧链接进行访问时,可以把这类请求直接重定向到一个指定的错误信息提示页面,减轻了服务器的负担。
部署了T-FORCE应用交付平台以后,企业可以把原来基于http协议的应用,全部迁移到安全https协议。通过http请求重定向结合SSL卸载功能,可以实现企业服务器和客户端都不需要任何更改的情况下完成http到https的无缝迁移。
在http响应阶段,可以把服务器返回的404(客户端语法错误)等重定向到一个指定的页面。