ADC 只負責 Load Balance?探討虛擬化下 ADC 可行性
隨著軟件定義網路(SDN)的出現,有關應用交付控制器(ADC)的需求問題也出現了。ADC 分佈在一組 Web 伺服器中,功能是保持這些伺服器的負載平衡。SDN 控制器是否可以接管 ADC 的角色,成為有影響力的 SDN 負載等化器;然而這是否就能取代 ADC 在網路中的位置呢?
ADC 作用不止平衡負載
像 ADC 一樣,SDN 控制器可以基於佇列長度和處理延遲來監控 Web 伺服器的單一負載,並將收到的資料請求發送給負載最輕的伺服器。如果簡單的負載平衡是 ADC 的唯一功能,那麼 SDN 控制器真的可能將其淘汰掉。然而,ADC 可以做的不僅僅是分配伺服器之間的應用需求。
因為 ADC 直接位於資料流程路徑中,它們可以實現某些特定的應用程式及軟件驅動的功能,這些功能都不容易轉到 SDN 控制器進行。SDN 將資料運動和網路控制功能分離開,這就意味著一個 SDN 控制器雖然可以基於伺服器活動進行簡單的負載平衡決策,但卻不能基於資料本身的內容進行決策。
與其 SDN 控制,不如虛擬化 ADC?
ADC 一直以來都是獨立的網路設備。行業領先的供應商已經意識到虛擬化系統的成長以及 SDN 被越來越多人接受的現實,於是開發虛擬化 ADC 以應付大勢所趨。這些 ADC 廠商形成聯盟,將產品與虛擬網路環境整合起來,如來自 Cisco、VMware 和 OpenStack 的新產品。他們還增加了腳本驅動功能,讓網路系統管理員可以開發 ADC 可執行的特定應用程式功能。
網路安全和監控
防火牆,防病毒掃描和入侵防禦系統一直以來都存在於不同的設備中。ADC 存在於資料路徑中,而且它可以執行特定應用的腳本能力讓其成為掃描輸入資料,並確定其是否為惡意軟件的理想工具。省去各自獨立的安全性群組、降低了網路複雜性和資金成本。
ADC 還可以通過阻擋有問題的請求來保護伺服器免受 DDoS。另外,由於 ADC 的位置處於資料路徑中,所以非常適合收集性能和使用資料。他們可以監控伺服器的延遲,也可以測量應用程式、終端使用者網路或個人終端的流量。
ADC 如何提高網路效率
除了平衡負載,ADC 還可以在其它方面改善網路效率。在一個沒有 ADC 的環境中,每個終端使用者的瀏覽器都會建立一個或多個傳輸控制協議 TCP 並連接到一個 Web 伺服器之中。在終端使用者介面到網際網路連接中使用網路位址轉譯(NAT, network address translation)可以減少連接的數量,但由於終端使用者數量多,大量的連接還是會為網站管理造成負擔。此外,每個請求都會建立一個傳輸控制協定(TCP)連接,是一個資源密集型操作。
使用傳輸控制協定(TCP)複用,ADC 建立與後端伺服器的持久連接;個人瀏覽器或網路位址轉譯(NAT)功能建立連接到 ADC,從 Web 伺服器斷掉 TCP 連接管理,從而減少所需伺服器的總數。
傳輸控制協定(TCP)慢啟動演算法可以防止網路避免因為突如其來的連接流量而卡死。通過複用傳輸控制協議(TCP)連接,慢啟動只發生一次。如果沒有一個 ADC,每個瀏覽器到 Web 伺服器的連接都需要經歷慢啟動過程。
如今基於 Web 的應用程式通常需要排一個很長的請求和回應隊伍。當一個初始請求到達 Web 伺服器,伺服器會在其中建立一個存儲請求資訊。簡單的負載平衡可以直接傳送下一組請求到不同的伺服器。當這個會話在初始伺服器上超時並最終被刪除時,第二個伺服器建立另一個會話。這顯然是沒有效率的。ADC 維護正在進行的交易資訊,並確保每個後續請求可以定向到同一台伺服器。
這種技術被稱為會話持久,專門用於支援安全通訊端層(SSL)。有了會話持久和傳輸控制協議(TCP)複用,ADC 可以斷掉會話創建和握手,就像資料加密和解密一樣。如果沒有一個 ADC,Web 伺服器將承擔這一負擔。如果沒有傳輸控制協議(TCP)複用,每次會話移動到不同的伺服器時就需要重複握手。
流量整形
傳輸控制協議(TCP)包含延遲,選擇確認信號(ACK, acknowledgement signals),自我調整調整視窗大小以及顯式擁塞通知這些機制。ADC 使用這些技術,通過減少脈衝串和將短分組整合成較大組來提高效率。
基於請求類型來區分伺服器可以通過簡化應用軟件來提高可靠性。每個應用程式將處理一種類型的請求。網路系統管理員會提供 ADC 腳本來掃描輸入資料,並指示每個請求到設計好的應用程式進行處理。
ADC 廠商已經準備好迎接 SDN
ADC 目前還是以預裝在硬體設備中的形式來出售,但供應商為了適應 SDN 還開發了在虛擬化服務鏈中可以快速插入的虛擬單元。這些服務鏈,連同其它網路功能虛擬化(NFV)元件,可以根據需求通過雲自動化系統流動。
如果 SDN 可以擴展,而不僅僅是通過 OpenFlow 連接到交換機的一個控制器,那麼我們當然可以考慮虛擬化 ADC,以增強的腳本作為元件融入 SDN 之中。