太一星晨推T-Force應(yīng)用優(yōu)化解決方案
1. 概述
T-Force應(yīng)用優(yōu)化解決方案,可以對應(yīng)用處理平臺中的服務(wù)器實(shí)現(xiàn)流量負(fù)載以及基于硬件的SSL卸載、HTTP緩存、壓縮。支持串行、三角傳輸及旁路部署,極大的簡化了網(wǎng)絡(luò)的復(fù)雜性,有效減輕服務(wù)器壓力,提升業(yè)務(wù)訪問效率。
2. 服務(wù)器負(fù)載
通過T-Force服務(wù)器負(fù)載功能,可以將業(yè)務(wù)流量分配到多臺服務(wù)器上,有效擴(kuò)展性能的同時,提供了服務(wù)器之間的冗余,通過基于業(yè)務(wù)的健康檢查算法,防止業(yè)務(wù)系統(tǒng)死機(jī)、中斷,有效保障業(yè)務(wù)的連續(xù)性。
2.1 服務(wù)器負(fù)載
2.1.1 負(fù)載分擔(dān)算法
T-FORCE應(yīng)用交付平臺支持豐富的負(fù)載分擔(dān)策略,即可以根據(jù)預(yù)先配置的靜態(tài)算法,也可以根據(jù)當(dāng)前的運(yùn)行狀態(tài)進(jìn)行動態(tài)算法的負(fù)載分擔(dān)。
靜態(tài)算法包括:
輪詢(Round Robin)-依次按照順序把流量分配給每臺服務(wù)器。
比率(Ratio)-根據(jù)服務(wù)器的性能為每個服務(wù)器指定一個權(quán)值,按照這個比率給服務(wù)器分配流量。
優(yōu)先級(Priority)-當(dāng)使用多組服務(wù)器時,為每個服務(wù)器組指定一個優(yōu)先級,默認(rèn)情況下優(yōu)先向高優(yōu)先級的服務(wù)器組分配流量,當(dāng)該組服務(wù)器失效時選擇備份服務(wù)器組。
動態(tài)算法包括:
最小連接(Least Connection)-ADC優(yōu)先把流量分配給當(dāng)前連接數(shù)最少的服務(wù)器。
最快模式(Fastest)-ADC通過比對服務(wù)器返回數(shù)據(jù)包的延遲情況,選擇一個當(dāng)前響應(yīng)最快的服務(wù)器來分配流量。
SNMP監(jiān)控-設(shè)備上通過SNMP客戶端來讀取服務(wù)器的實(shí)時運(yùn)行狀態(tài),包括CPU,內(nèi)存和I/O信息,為每種實(shí)時信息配置門限值,當(dāng)超過這個門限值時不再向這臺服務(wù)器分配報文。
觀察模式(Observed)-結(jié)合最小連接和最快模式兩種結(jié)果,選擇***平衡為依據(jù)為新的請求選擇服務(wù)器。
服務(wù)器平滑接入和退出:
當(dāng)有新的服務(wù)器接入或者服務(wù)器重新啟動時,ADC系統(tǒng)可以把流量逐步分配給新接入的服務(wù)器,避免服務(wù)器的某些進(jìn)程還沒有加載完成而導(dǎo)致系統(tǒng)資源占用過高,或者應(yīng)用響應(yīng)緩慢的情況,實(shí)現(xiàn)服務(wù)器的平滑接入。管理員也可以手工方式操作把某臺服務(wù)器退出流量分擔(dān)機(jī)制,此時ADC系統(tǒng)不再分配新的流量給該服務(wù)器,該服務(wù)器的現(xiàn)有連接繼續(xù)保持,直至連接結(jié)束。
2.1.2 健康檢查策略
健康檢查是指對服務(wù)器的運(yùn)行狀態(tài)定期進(jìn)行實(shí)時檢測,一旦發(fā)現(xiàn)服務(wù)器故障,將把該服務(wù)器移出流量分擔(dān)的隊列。T-FORCE應(yīng)用交付平臺提供豐富的健康檢查策略,和負(fù)載分擔(dān)算法組合到一起,就可以實(shí)現(xiàn)非常靈活的負(fù)載分擔(dān)策略。
TCP SYN-向目標(biāo)服務(wù)器發(fā)送TCP SYN報文,如果得到正確的回復(fù)表示服務(wù)器工作正常。
Ping-向目標(biāo)服務(wù)器發(fā)送ICMP請求報文,如果得到正確回復(fù)表示服務(wù)器工作正常。
HTTP/HTTPS Get-向目標(biāo)系統(tǒng)發(fā)送HTTP或HTTPS協(xié)議的Get報文,請求一個指定的URL,如果得到正確回復(fù)表示服務(wù)器工作正常。
2.1.3 會話保持測試
會話保持是指流量一旦按照負(fù)載分擔(dān)策略分配給某個服務(wù)器后,后續(xù)的相關(guān)請求報文同樣分配給同一臺服務(wù)器,以保障業(yè)務(wù)的連續(xù)性。比如,很多電子商務(wù)相關(guān)的應(yīng)用系統(tǒng)或者需要用戶身份認(rèn)證的系統(tǒng),用戶和服務(wù)器間會進(jìn)行多次的數(shù)據(jù)交互才能完成一筆交易或者身份認(rèn)證過程,必須把這個過程的交互報文分配給同一個服務(wù)器。
T-FORCE應(yīng)用交付平臺支持6類共8種會話保持的方法,即可以根據(jù)源IP地址,ServerID等靜態(tài)信息來做會話保持,也可以通過Cookie插入和重寫來實(shí)現(xiàn)更高級的會話保持方法。每種會話保持的效率,粒度和應(yīng)用場景有所不同,對應(yīng)用服務(wù)器的配置要求也不一樣?;谠碔P的會話保持只需要處理數(shù)據(jù)包的四層信息,所以效率***,也不需要服務(wù)器做任何配置,但粒度比較粗。如果客戶端存在普遍的NAT轉(zhuǎn)換,或者某些IP段的業(yè)務(wù)請求量比較大,那么這些流量被保持發(fā)送給固定一臺服務(wù)器,就會造成流量負(fù)載的不均衡。
基于Cookie插入,Cookie重寫,ServerID等七層信息的會話保持方式,使保持策略和瀏覽器的信息相互關(guān)聯(lián),可以做到細(xì)粒度和更均衡的流量分配,基于七層信息的會話保持方式,工作效率不如源IP會話保持。除Cookie插入方式以外,其他如serverid,sessionid, Cookie重寫等方式一般需要應(yīng)用程序做相應(yīng)的配置。
T-FORCE ADC支持的會話保持方式:
基于源地址-來自同一個源IP地址的相關(guān)報文,分配給同一個服務(wù)器。
基于ServerID-記錄服務(wù)器返回的serverid信息,然后從請求報文的URL或Cookie信息中查找serverid,進(jìn)行解碼得到后臺服務(wù)器的信息,保證帶有固定serverid信息的請求被分別到固定的服務(wù)器。Serverid需要在web服務(wù)器上進(jìn)行人工配置。ADC不需要對數(shù)據(jù)包進(jìn)行修改
基于SessionID-類似于ServerID的方式,記錄從服務(wù)器返回的SessionID信息,然后從請求報文的URL或Cookie信息中查找SessionID,進(jìn)行解碼得到后臺服務(wù)器的信息,保證帶有固定SessionID信息的請求被分別到固定的服務(wù)器。SessionID是服務(wù)器自動生成的,ADC產(chǎn)品不需要對數(shù)據(jù)包進(jìn)行修改。
基于Cookie插入-這種方式通過修改服務(wù)器返回的報文,向其插入一個固定的Cookie信息返回給客戶的瀏覽器,客戶端后續(xù)的報文請求中都攜帶了這個Cookie信息,ADC根據(jù)這個信息發(fā)送給指定的服務(wù)器。這種保持方式修改了數(shù)據(jù)包的長度,但不需要應(yīng)用服務(wù)器端做任何的配置改動就可以實(shí)現(xiàn)。
基于Cookie重寫-服務(wù)器端接收到HTTP請求后,響應(yīng)報文中會增加一個空白的Cookie返回給ADC設(shè)備,ADC在這個空白的Cookie里面寫入會話保持的數(shù)值,返回給客戶端。后續(xù)的過程和Cookie插入類似,客戶端后續(xù)的請求報文會攜帶這個重寫的Cookie,ADC根據(jù)這個信息來選擇指定的服務(wù)器。Cookie重寫和Cookie插入的區(qū)別是,Cookie重寫不需要修改報文的長度,效率會高一些。
基于自定義頭部-應(yīng)用服務(wù)自身定義了一個URL Header信息,并希望ADC以此來做負(fù)載分擔(dān)。這種方式下ADC設(shè)備記錄服務(wù)器返回的Header信息,并在客戶端的后續(xù)請求中進(jìn)行匹配,匹配成功則轉(zhuǎn)發(fā)給指定的服務(wù)器。這種方式允許應(yīng)用服務(wù)程序定制自己的會話保持策略。
基于SSL SessionID-當(dāng)***次請求到來時,按負(fù)載均衡算法分配一臺后臺服務(wù)器。在服務(wù)器的響應(yīng)中,按照SSL協(xié)議,取出SSL SessionID,并把SSL SessionID分配的后臺服務(wù)器信息、所配置的超時時間存在一張表中。當(dāng)后續(xù)請求到來,根據(jù)請求中的SSL SessionID在表中查找后臺服務(wù)器的信息,若找到并且時間在超時時間之內(nèi),則取出后臺服務(wù)器信息,并更新超時時間,把請求發(fā)往那臺服務(wù)器。
2.2 內(nèi)容交換
四層交換主要是依賴IP和TCP/UDP層的信息進(jìn)行流量的分配,而隨著應(yīng)用自身的復(fù)雜性和不斷改善用戶體驗(yàn)的需求,有時候需要為不同的用戶類型返回不同的呈現(xiàn)內(nèi)容,例如:
把移動用戶的手機(jī)/pad瀏覽器請求分發(fā)給專門經(jīng)針對性過優(yōu)化的服務(wù)器。
把請求圖片,文檔,視頻等靜態(tài)內(nèi)容分發(fā)給緩存服務(wù)器。
根據(jù)瀏覽器自身的語言設(shè)置,為不同語言區(qū)域的用戶返回相應(yīng)的頁面
可以根據(jù)HTTP請求的方法實(shí)現(xiàn)讀寫分離,HTTP讀(get)請求分配給緩存服務(wù)器,HTTP寫(post)請求分配給處理動態(tài)內(nèi)容的服務(wù)器。
T-FORCE應(yīng)用交付平臺的七層內(nèi)容交換可以識別用戶請求報文的內(nèi)容,如URL信息,應(yīng)用數(shù)據(jù)類型,Cookie信息,瀏覽器類型,HTTP方法等內(nèi)容,將流量分配給相應(yīng)的應(yīng)用服務(wù)器。
T-Force應(yīng)用交付平臺通過http-class來標(biāo)識一個業(yè)務(wù)分類,http-class根據(jù)主機(jī)地址,URI路徑,頭信息和Cookie來定義,每個http-class可以關(guān)聯(lián)一個服務(wù)器地址池,然后再虛擬服務(wù)(VS)的配置中,引用一個或者多個http-class。當(dāng)客戶端請求訪問虛擬服務(wù)時,ADC設(shè)備進(jìn)行http-class匹配,匹配成功的請求被分配給對應(yīng)的地址池。
3. 應(yīng)用優(yōu)化與加速
為了保障業(yè)務(wù)的安全性,很多業(yè)務(wù)采用SSL(安全套接字)做加密處理,服務(wù)器在處理加密后數(shù)據(jù)時需要耗費(fèi)大量的資源來做加解密的處理,在T-Force應(yīng)用優(yōu)化解決方案中,用戶可選擇通過專用的高性能硬件SSL加速,代替服務(wù)器處理加密數(shù)據(jù)。此外,通過開啟TCP連接復(fù)用、HTTP管線、緩存、壓縮等功能,可有效減輕服務(wù)器負(fù)擔(dān),提升系統(tǒng)性能,節(jié)省服務(wù)器投資,改善用戶體驗(yàn)。
3.1 SSL硬件加速與卸載
T-FORCE應(yīng)用交付平臺通過內(nèi)置的專業(yè)級高性能硬件加速芯片,完成對SSL協(xié)議的加速和卸載,而在數(shù)據(jù)中心內(nèi)部,ADC和服務(wù)器之間通過明文進(jìn)行傳輸,極大的提升服務(wù)器的業(yè)務(wù)處理能力。企業(yè)可以把應(yīng)用全部應(yīng)用實(shí)現(xiàn)SSL協(xié)議,實(shí)現(xiàn)高安全性的同時,不會給業(yè)務(wù)帶來任何的性能瓶頸。
3.2 本地RAM Cache
本地高速緩存(Cache),通過在ADC設(shè)備上開辟一段專用的內(nèi)存空間(RAM)來存儲服務(wù)器上的一些靜態(tài)文件,如圖片,文檔,視頻文件等,開啟本地Cache后,客戶端請求首先在本地Cache中查找,***以后直接返回給客戶端。***失敗才向服務(wù)器端發(fā)送請求,同時對服務(wù)器返回的內(nèi)容進(jìn)行本地Cache。T-FORCE ADC支持為不同的應(yīng)用提供各自的Cache空間及參數(shù)設(shè)置,這樣可以把服務(wù)器從重復(fù)的處理中解脫出來,提升整體效能。
3.3 內(nèi)容壓縮
通過壓縮HTTP響應(yīng)的數(shù)據(jù),可以有效提升帶寬利用率和縮短下載時間。T-FORCE應(yīng)用交付平臺提供的高性能壓縮技術(shù),***可以使帶寬利用率增加80%,應(yīng)用性能提升4倍以上。同時在客戶端瀏覽器和ADC設(shè)備間經(jīng)過一定的算法進(jìn)行壓縮,也起到一定安全傳輸?shù)淖饔谩?/p>
T-FORCE ADC把原本由服務(wù)器完成的壓縮過程搬到自身的高性能硬件平臺,避免了每臺服務(wù)器都執(zhí)行一次重復(fù)的壓縮過程,達(dá)到服務(wù)器卸載的效果。
T-FORCE ADC支持瀏覽器最常用的GZIP和DEFLATE兩種壓縮算法,提供基于七層的精細(xì)化壓縮控制策略,包括URI,Content Type等。管理員可以定義對“\.txt”,“\.doc”“\.htlm”等文檔類型和靜態(tài)頁面數(shù)據(jù)進(jìn)行壓縮,也可以排除PDF,IMG等壓縮效果不明顯的不必要操作。
3.4 TCP連接復(fù)用
TCP連接復(fù)用技術(shù)使多個客戶端共享一個到服務(wù)器的TCP連接,可以提升應(yīng)用服務(wù)器的整體性能,使應(yīng)用服務(wù)器從維護(hù)海量的TCP連接,并不斷的進(jìn)行TCP建立和拆除維護(hù)中解脫出來,極大的提升單臺服務(wù)器的承載能力。
T-FORCE ADC設(shè)備在接到一個客戶端HTTP請求后,通過負(fù)載分擔(dān)算法會選擇一臺服務(wù)器建立連接。如果接收到正常的服務(wù)器響應(yīng),ADC設(shè)備會把這個連接放入到“連接復(fù)用池”里面,當(dāng)另外一個新的客戶端發(fā)起HTTP連接請求時,ADC設(shè)備從現(xiàn)有的連接池里面選擇一個可用的連接來和服務(wù)器的進(jìn)行數(shù)據(jù)交互,而不是重新創(chuàng)建一個到服務(wù)器的連接。通過這種優(yōu)化,可以把服務(wù)器負(fù)載降低到原來的1/10-50。
3.5 TCP單邊加速
標(biāo)準(zhǔn)TCP協(xié)議在設(shè)計時很少的考慮到高帶寬和夸Internet傳輸?shù)膯栴},現(xiàn)在隨著高速帶寬的普及,標(biāo)準(zhǔn)的TCP協(xié)議表現(xiàn)出很多的不足,在網(wǎng)絡(luò)擁塞控制和丟包重傳機(jī)制上,往往效率比較低下,而且基本不具備根據(jù)網(wǎng)絡(luò)環(huán)境實(shí)時進(jìn)行調(diào)解的能力。T-FORCE應(yīng)用交付平臺提供智能單邊加速的功能,通過對標(biāo)準(zhǔn)TCP協(xié)議的慢啟動控制,擁塞避免,重傳和恢復(fù)幾個方面進(jìn)行優(yōu)化,來達(dá)到整體網(wǎng)絡(luò)加速的效果。同時,T-FORCE ADC設(shè)備可以根據(jù)當(dāng)前的網(wǎng)絡(luò)狀態(tài),和承載的協(xié)議類型智能的選擇一種效率***的算法。
T-FORCE應(yīng)用交付平臺的單邊加速對客戶端和服務(wù)器來說都是透明的,ADC和服務(wù)器之間仍然按照標(biāo)準(zhǔn)TCP協(xié)議運(yùn)行,ADC和客戶端之間進(jìn)行單邊加速,客戶端不需要做任何修改。
3.6 HTTP管線(Pipelining)
傳統(tǒng)的HTTP協(xié)議是當(dāng)一個請求發(fā)出,等接收到完整的響應(yīng)數(shù)據(jù)后,才進(jìn)行下一個請求,這在高延遲的網(wǎng)絡(luò)環(huán)境中會導(dǎo)致整個數(shù)據(jù)交互的效率比較低。HTTP管線技術(shù)(Pipelining)可以將多個HTTP請求同時提交,而不用等待順序的請求回應(yīng)。
(不帶Pipelining的HTTP流程)
T-FORCE應(yīng)用交付平臺可以和支持Pipelining的客戶端瀏覽器智能協(xié)商開啟,ADC和服務(wù)器間還是正常的HTTP協(xié)議流程。
3.7 窄帶用戶應(yīng)用加速
當(dāng)客戶端通過窄帶線路比如通過ADSL撥號或者智能手機(jī),pad移動終端上網(wǎng)時,對于應(yīng)用服務(wù)器的響應(yīng),可能會由于客戶端側(cè)帶寬不足,或者帶寬質(zhì)量不好而導(dǎo)致報文的擁塞和丟包。這時客戶端就會發(fā)起重傳請求,如果大量的窄帶用戶同時訪問,就會出現(xiàn)應(yīng)用服務(wù)器反復(fù)處理這些重傳請求的壓力增大而降低效率。
T-FORCE應(yīng)用交付平臺使用TCP數(shù)據(jù)緩存技術(shù),自動檢測客戶端對服務(wù)器響應(yīng)的處理能力,對于窄帶用戶,ADC會在自身平臺開辟出緩存空間來存儲服務(wù)器返回的數(shù)據(jù),以客戶端能夠適應(yīng)的速度完成數(shù)據(jù)交互,避免出現(xiàn)大量的重傳。服務(wù)器只要處理完成用戶的請求后,就可以釋放出來處理其他工作,不用再去處理丟包重傳的情況。
3.8 重寫Rewrite
Http協(xié)議的請求階段和響應(yīng)階段都可以對URI進(jìn)行重寫,在請求http請求階段,可以把符合預(yù)置條件的所有http請求發(fā)送到一個指定的URL,比如是提示用戶進(jìn)行登錄的頁面或者其他信息提示頁面。又或者是當(dāng)服務(wù)器某些文件已經(jīng)不存在或者目錄發(fā)生更改,而用戶通過其他網(wǎng)站或者搜索引擎的舊鏈接進(jìn)行訪問時,可以把這類請求直接重定向到一個指定的錯誤信息提示頁面,減輕了服務(wù)器的負(fù)擔(dān)。
部署了T-FORCE應(yīng)用交付平臺以后,企業(yè)可以把原來基于http協(xié)議的應(yīng)用,全部遷移到安全https協(xié)議。通過http請求重定向結(jié)合SSL卸載功能,可以實(shí)現(xiàn)企業(yè)服務(wù)器和客戶端都不需要任何更改的情況下完成http到https的無縫遷移。
在http響應(yīng)階段,可以把服務(wù)器返回的404(客戶端語法錯誤)等重定向到一個指定的頁面。