細數從負載均衡到應用交付的演進歷程
近年來,IT互聯網技術發展日新月異,新興的技術概念層出不窮,有些新興的技術概念連不少IT業內的從業者都還沒來得及理解,便已經步入了廣泛深入的應用洪流中,應用交付便是其中之一。
提起應用交付,甚至很多IT經理還頗感陌生,但是提到負載均衡他們卻是相當熟悉,當向他們進一步解釋應用交付是比負載均衡更全面更系統的網絡優化產品時,他們之中的不少人估計都會像小沈陽一樣可愛的發問:“這是為什么呢?” 提出這樣的疑問可以理解,因為負載均衡的應用時間也還沒有多久,就要向著應用交付進化了。
那么,到底是什么促進了網絡優化產品如此快速的演進呢?國內新興應用交付廠商太一星晨對此有著深入的理解。
太一星晨核心技術團隊在10年前研發出國內***臺***的電信路由器,繼而又推出國內***臺萬兆UTM網關,如今又研發出國內性能***的T比特級應用交付設備,可謂是國內網絡優化產品發展歷程的資深見證者和研發者。對于,國內網絡優化產品的演進歷程,太一星晨產品總監于振波先生特別做出了詳細的解讀。
最初的DNS
在互聯網商用初期、專用的負載均衡設備實現商用之前,最常用的實現擴展性和高可用性的技術是DNS輪詢。
所謂DNS輪詢,就是依托于域名服務,將用戶訪問的URL(如www.example.com)轉換為機器可識別的IP地址(如192.0.2.11)的服務,它使每個域名解析請求能對應多個IP地址以不同順序應答。這樣,當不同用戶請求對應域名時,就自然而然地分配到了不同的服務器上。
于振波表示,雖然從解決擴展性的角度來看,這種方案非常有效,但無論是從提高擴展性還是持續性來說,DNS方案都有一些欠妥。
如果把DNS Sever理解為一位項目經理,那么他實在不是一位有領導力的頭兒。比如,每當接到大Boss新任務的時候,這位項目經理只知道硬性分配,把任務一個一個地分發到自己的下屬手上,卻完全沒有考慮過下屬的感受:如下屬是否善于這些工作,是否有其他安排,是否能保證結果……這些基本沒有考慮,結果可想而知。
更郁悶的是,大Boss***次請求是通過項目經理來安排的,但之后,大Boss就會記下下屬的名字,然后每次直接找同一個下屬完成。于是,同一位下屬身上的任務可能越積越多,要么降低了工作效率,要么就直接不堪重負。
由此,歸納下來,DNS輪詢作為負載技術的狀況下,弊端越積越多:
1.無法知道所列的服務器是否工作,所以用戶獲得的服務器地址可能已經不工作了。
2.缺乏對不同服務器動態的分配算法。
3.客戶端會緩存解析結果,后續訪問會始終使用舊的IP地址,導致流量分配不均勻。
4.在對業務可靠性要求不高的環境中,DNS輪詢方式因為簡單、低廉,依然還被使用。但對可靠性要求較高的業務,就不會科學地分配工作,導致后續出現眾多嚴重問題!
在這樣的情況下,網絡負載均衡應運而生了。
網絡負載均衡
所謂網絡負載均衡,從本質上講,就是負載均衡會對外部展現一個虛擬的服務器地址(如192.0.2.1:80),當用戶試圖連接時,它會將連接通過雙向網絡地址轉換(NAT)轉到最適合的真實服務器上,以完成用戶的請求。
網絡負載均衡的主要核心技術主要有以下三項:
1.健康檢查。
2.負載均衡算法。
3.會話保持算法。
基于這三個特定技術,網絡負載均衡以優質項目經理的身份,替代了DNS輪詢。
首先,在整個工作過程中,聰明的網絡負載均衡會不斷探測后臺服務器的工作狀態,看看哪位下屬有沒有別的事情,哪位下屬是否狀態不佳,并根據檢測到的結果實時分配任務,避免了大Boss的請求被分配到不工作的服務器上。
其次,根據服務器的流量、性能等,網絡負載均衡還會以它專有的算法對任務進行分配。這就好比是一位深諳人力資源利用的頭兒,當他掌握了自己不同下屬的能力后,會因人而異地分配工作,能力強的多擔當,能力弱的任務少點兒,以達到人力資源的***化。
再次,針對某些特殊應用,例如要求自始至終一臺服務器處理的,網絡負載均衡將使用會話保持技術,記住每個用戶的身份,以達到讓同一用戶始終在同一臺服務器上操作的目的。例如在網銀操作中,網絡均衡服務器這位聰明的頭兒,會通過用戶IP地址、Cookie等數據,指定某一位下屬始終為一位用戶服務,包括用戶的登錄、查詢、轉賬等等業務,都始終保持在小弟的這臺服務器上操作,保證了任務的順利完成。
換了這么一位聰明的頭兒以后,不但小弟們的工作狀態可以通過健康檢查得到相關數據,而且還能根據小弟們不同的能力,依靠特定的算法進行任務的分配,并且對于特定的業務需求,可以固定地使用某一位下屬去工作。后臺服務器得到了***化應用,大Boss自然滿意點頭。#p#
可是,好日子沒過多久,問題又出現了。
隨著互聯網技術的發展和用戶量的激增,無論是網絡帶寬還是硬件設備的性能都開始大幅提升。但是,在投入大價錢采購硬件設備后,用戶終端的應用效果卻始終不如人意。比如還是時常會出現打開頁面慢、響應時間長、系統效率低等多種不良情況。
那么,這又是哪里出了問題呢? 于振波表示,問題主要出現在以下三個方面。
1.跨運營商訪問
國內的移動通信分為“北聯通南電信”的格局,而運營商之間在相互訪問的時候常常會發生各種效率低下的問題。比如,玩網游時都會有這樣感受,在進入游戲之時,若聯通用戶誤入電信大廳,就會因為跨運營商造成網速巨慢而很快就會被別的玩家“踢”出去……
2.地域性限制
地域越遠,中間經過的節點越多,造成的損耗就越大,應用效果就越差。最明顯的是目前人氣超旺的海淘大軍——打開國內的百度騰訊等等網站毫不費勁,一旦進入國外購物網站,頁面速度慢得恨不得能自己直接飛機跑一趟。
3.寬窄帶并存
隨著智能終端的普及,同樣的應用,家用電腦和智能手機的訪問效果截然不同。究其原因,家用電腦走寬帶而手機終端用窄帶,并且手機信號是有變化的,當信號不好的時候,即使是直通羅馬的大道也會慢得嘆氣。
由此,傳統路由、交換設備工作在二三層、負載均衡設備工作在四層。當二三四層都被被各種問題弄得焦頭爛額之時,應用交付產品(ADC)順勢而生。
應用交付(ADC)步入快車道
所謂“應用交付”,指的是指應用交付網絡(Application Delivery Networking,簡稱ADN),它利用相應的網絡優化/加速設備,確保用戶的業務應用能夠快速、安全、可靠地交付給內部員工和外部服務群。應用交付的宗旨是保證企業關鍵業務的可靠性、可用性與安全性。
首先,基于內容的分發是應用交付的一大突出特性。
基于內容的分發,可以舉個這樣的例子。以前,到銀行辦理業務還需要自己排隊,后來銀行引入了自動排號機,這種起到了分發用戶作用的設備就類似于網絡負載均衡。雖然這樣的排號可以讓每個人都能按號辦理自己想要的業務,但是卻難免會出現業務分配不合理、無謂等待時間長、主次業務相混淆等問題。
后來,經過一番改進,銀行推出了大堂經理服務,采用“大堂經理+排號機”的組合式服務分配,就與應用交付功能頗為類似。用戶取號后,大堂經理會先詢問他所需要進行的業務,然后再按照不同的業務指引用戶到不同的窗口進行操作:小額存取款直接到柜員機操作,VIP客戶可到VIP窗口,銀行基金可至基金柜臺咨詢……基于不同內容進行業務分發,把相同的業務指引到固定的服務器上,這不但大大縮短了用戶的操作時間,更提高了應用效率。
與傳統的網絡負載均衡相比,應用交付工作在應用層,除了基于內容的分發外,應用交付對于負載均衡遇到的幾大問題有著智能化的解決方式。
以太一星晨T-force應用交付為例。針對跨運營商訪問問題,T-force應用交付平臺可以通過內部智能的DNS與智能選路功能,保證用戶不會跨運營商訪問。即電信用戶可以通過電信鏈路實現訪問,而網通來的用戶則可以通過網通鏈路實現訪問。
針對寬窄帶并存的情況,當用戶采用不同的移動終端來訪問數據中心核心應用時,T-force應用交付平臺可以通過智能客戶端識別技術,將移動終端的請求分發到移動終端的服務器上,從而保障每一個用戶效率體驗。
針對異地跨區域訪問問題,T-force擁有智能DNS解決方案。如一個廣東的客戶訪問核心應用時會發起一個DNS請求,該請求會通過分服務器轉發到應用交付設備上,應用交付設備會根據不同數據中心之間的探測與評估,找出最適合該用戶訪問的數據中心,并將該請求DNS解析出的IP地址指向廣州的數據中心。如此,便保證了該用戶訪問時候的地域就近性,以及網絡連通性,有效提升效率。
此外,應用交付依靠對應用協議的加速處理、應用安全的檢測,實現了從客戶端到服務器的完整的業務交付過程。未來,應用交付可能將提供更智能化的功能,并盡可能以***方式交付應用的所有方面。