太一星晨推T-Force應用優化解決方案
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插入和重寫來實現更高級的會話保持方法。每種會話保持的效率,粒度和應用場景有所不同,對應用服務器的配置要求也不一樣?;谠碔P的會話保持只需要處理數據包的四層信息,所以效率***,也不需要服務器做任何配置,但粒度比較粗。如果客戶端存在普遍的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(客戶端語法錯誤)等重定向到一個指定的頁面。