隨著軟件定義網路(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廠商形成聯盟,將產品與虛擬網路環境整合起來,如來自思科,VMware和OpenStack的新產品。他們還增加了腳本驅動功能,讓網路系統管理員可以開發ADC可執行的特定應用程式功能。
網路安全和監控
防火牆,防病毒掃描和入侵防禦系統一直以來都存在於不同的設備中。ADC存在於資料路徑中,而且它可以執行特定應用的腳本能力讓其成為掃描輸入資料,並確定其是否為惡意軟件的理想工具。省去各自獨立的安全性群組件降低了網路複雜性和資金成本。
ADC還可以通過阻擋有問題的請求來保護伺服器免受拒絕服務攻擊。一個大型的,分散式攻擊可能會消耗ADC的資源,以致於許多合法的請求無法通過,但是伺服器可以支援他們收到的請求。另外,由於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中。
ADC只負責Load Balance?探討虛擬化下ADC可行性
https://www.facebook.com/hkitblog