隨著軟件定義網(wǎng)絡(luò)的出現(xiàn),有關(guān)應(yīng)用交付控制器(ADC)的需求問(wèn)題也出現(xiàn)了。應(yīng)用交付控制器(ADC)分布在一組Web服務(wù)器中,功能是保持這些服務(wù)器的負(fù)載均衡。軟件定義網(wǎng)絡(luò)(SDN)控制器是否可以接管應(yīng)用交付控制器(ADC)的角色,成為有影響力的軟件定義網(wǎng)絡(luò)(SDN)負(fù)載均衡器,從而消除應(yīng)用交付控制器(ADC)在網(wǎng)絡(luò)中的位置呢?
像應(yīng)用交付控制器(ADC)一樣,軟件定義網(wǎng)絡(luò)(SDN)控制器可以基于隊(duì)列長(zhǎng)度和處理延遲來(lái)監(jiān)控Web服務(wù)器的單個(gè)負(fù)載,并將收到的數(shù)據(jù)請(qǐng)求發(fā)送給負(fù)載最輕的服務(wù)器。如果簡(jiǎn)單的負(fù)載均衡是應(yīng)用交付控制器(ADC)的唯一功能,那么軟件定義網(wǎng)絡(luò)(SDN)控制器真的可能將其淘汰掉。然而,應(yīng)用交付控制器(ADC)可以做的不僅僅是分配服務(wù)器之間的應(yīng)用需求。
在常規(guī)網(wǎng)絡(luò)中,數(shù)據(jù)流經(jīng)做路由決策的設(shè)備。因?yàn)閼?yīng)用交付控制器(ADC)直接位于數(shù)據(jù)流經(jīng)路徑中,它們可以實(shí)現(xiàn)某些特定的應(yīng)用程序及軟件驅(qū)動(dòng)的功能,這些功能都不容易嫁接給軟件定義網(wǎng)絡(luò)(SDN)控制器。軟件定義網(wǎng)絡(luò)(SDN)將數(shù)據(jù)運(yùn)動(dòng)和網(wǎng)絡(luò)控制功能分離開(kāi)來(lái),這就意味著一個(gè)軟件定義網(wǎng)絡(luò)(SDN)控制器雖然可以基于服務(wù)器活動(dòng)進(jìn)行簡(jiǎn)單的負(fù)載均衡決策,但并不能基于數(shù)據(jù)本身的內(nèi)容進(jìn)行決策。
應(yīng)用交付控制器(ADC)一直以來(lái)都是獨(dú)立的網(wǎng)絡(luò)設(shè)備。行業(yè)領(lǐng)先的供應(yīng)商已經(jīng)意識(shí)到到虛擬化系統(tǒng)的成長(zhǎng),以及軟件定義網(wǎng)絡(luò)(SDN)被越來(lái)越多人接受的現(xiàn)實(shí),于是開(kāi)發(fā)虛擬化應(yīng)用交付控制器(ADC)來(lái)響應(yīng)這一趨勢(shì)。這些應(yīng)用交付控制器(ADC)廠商形成聯(lián)盟,將產(chǎn)品與虛擬網(wǎng)絡(luò)環(huán)境整合起來(lái),如來(lái)自思科,VMware和OpenStack的新產(chǎn)品。他們還增加了腳本驅(qū)動(dòng)功能,讓網(wǎng)絡(luò)管理員可以開(kāi)發(fā)應(yīng)用交付控制器(ADC)可執(zhí)行的特定應(yīng)用程序功能。
網(wǎng)絡(luò)安全和監(jiān)控
防火墻,防病毒掃描和入侵防御系統(tǒng)一直以來(lái)都存在于不同的設(shè)備中。應(yīng)用交付控制器(ADC)存在于數(shù)據(jù)路徑中,而且它可以執(zhí)行特定應(yīng)用的腳本能力讓其成為掃描輸入數(shù)據(jù),并確定其是否為惡意軟件的理想工具。省去各自獨(dú)立的安全組件降低了網(wǎng)絡(luò)復(fù)雜性和資金成本。
應(yīng)用交付控制器(ADC)還可以通過(guò)阻擋有問(wèn)題的請(qǐng)求來(lái)保護(hù)服務(wù)器免受拒絕服務(wù)攻擊。一個(gè)大型的,分布式攻擊可能會(huì)消耗應(yīng)用交付控制器(ADC)的資源,以致于許多合法的請(qǐng)求無(wú)法通過(guò),但是服務(wù)器可以支持他們收到的請(qǐng)求。
另外,由于應(yīng)用交付控制器(ADC)的位置處于數(shù)據(jù)路徑中,所以非常適合收集性能和使用數(shù)據(jù)。他們可以監(jiān)控服務(wù)器的延遲,也可以測(cè)量應(yīng)用程序、終端用戶網(wǎng)絡(luò)或個(gè)人終端的流量。
應(yīng)用交付控制器(ADC)如何提高網(wǎng)絡(luò)效率
除了平衡負(fù)載,應(yīng)用交付控制器(ADC)還可以在其它方面改善網(wǎng)絡(luò)效率。在一個(gè)沒(méi)有應(yīng)用交付控制器(ADC)的環(huán)境中,每個(gè)終端用戶的瀏覽器都會(huì)創(chuàng)建一個(gè)或多個(gè)傳輸控制協(xié)議(TCP, Transmission Control Protocol)連接到一個(gè)Web服務(wù)器。在終端用戶界面到因特網(wǎng)連接中使用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT, network address translation)可以減少連接的數(shù)量,但由于終端用戶數(shù)量多,大量的連接還是會(huì)給網(wǎng)站管理造成負(fù)擔(dān)。此外,每個(gè)請(qǐng)求都會(huì)創(chuàng)建一個(gè)傳輸控制協(xié)議(TCP)連接,是一個(gè)資源密集型操作。
使用傳輸控制協(xié)議(TCP)復(fù)用,應(yīng)用交付控制器(ADC)建立與后端服務(wù)器的持久連接。個(gè)人瀏覽器或網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)功能創(chuàng)建連接到應(yīng)用交付控制器(ADC),從Web服務(wù)器斷掉TCP連接管理,從而減少所需服務(wù)器的總數(shù)。
傳輸控制協(xié)議(TCP)慢啟動(dòng)算法可以防止網(wǎng)絡(luò)免受一個(gè)新的連接暴發(fā)而卡死。通過(guò)復(fù)用傳輸控制協(xié)議(TCP)連接,慢啟動(dòng)只發(fā)生一次。如果沒(méi)有一個(gè)應(yīng)用交付控制器(ADC),每個(gè)瀏覽器到Web服務(wù)器的連接都需要經(jīng)歷慢啟動(dòng)過(guò)程。
如今基于Web的應(yīng)用程序通常需要排一個(gè)很長(zhǎng)的請(qǐng)求和響應(yīng)隊(duì)伍。當(dāng)一個(gè)初始請(qǐng)求到達(dá)Web服務(wù)器(+微信關(guān)注網(wǎng)絡(luò)世界),服務(wù)器會(huì)在其中創(chuàng)建一個(gè)存儲(chǔ)請(qǐng)求信息的會(huì)話。簡(jiǎn)單的負(fù)載均衡可以直接傳送下一組請(qǐng)求到不同的服務(wù)器。當(dāng)這個(gè)會(huì)話在初始服務(wù)器上超時(shí)并最終被刪除時(shí),第二個(gè)服務(wù)器創(chuàng)建另一個(gè)會(huì)話。這顯然是沒(méi)有效率的。應(yīng)用交付控制器(ADC)維護(hù)正在進(jìn)行的交易信息,并確保每個(gè)后續(xù)請(qǐng)求可以定向到同一臺(tái)服務(wù)器。
這種技術(shù)被稱為會(huì)話持久,專門(mén)用于支持安全套接字層(SSL)。有了會(huì)話持久和傳輸控制協(xié)議(TCP)復(fù)用,應(yīng)用交付控制器(ADC)可以斷掉會(huì)話創(chuàng)建和握手,就像數(shù)據(jù)加密和解密一樣。如果沒(méi)有一個(gè)應(yīng)用交付控制器(ADC),Web服務(wù)器將承擔(dān)這一負(fù)擔(dān)。如果沒(méi)有傳輸控制協(xié)議(TCP)復(fù)用,每次會(huì)話移動(dòng)到不同的服務(wù)器時(shí)就需要重復(fù)握手。
流量整形(Traffic shaping)是應(yīng)用交付控制器(ADC)提高整體網(wǎng)絡(luò)和應(yīng)用性能的另一種方式。傳輸控制協(xié)議(TCP)包含延遲,選擇確認(rèn)信號(hào)(ACK, acknowledgement signals),自適應(yīng)調(diào)整窗口大小以及顯式擁塞通知這些機(jī)制。應(yīng)用交付控制器(ADC)使用這些技術(shù),通過(guò)減少脈沖串和將短分組整合成較大組來(lái)提高效率。
基于請(qǐng)求類型來(lái)區(qū)分服務(wù)器可以通過(guò)簡(jiǎn)化應(yīng)用軟件來(lái)提高可靠性。每個(gè)應(yīng)用程序?qū)⑻幚硪环N類型的請(qǐng)求。網(wǎng)絡(luò)管理員會(huì)提供應(yīng)用交付控制器(ADC)腳本來(lái)掃描輸入數(shù)據(jù),并指示每個(gè)請(qǐng)求到設(shè)計(jì)好的應(yīng)用程序進(jìn)行處理。
應(yīng)用交付控制器(ADC)廠商已經(jīng)準(zhǔn)備好迎接軟件定義網(wǎng)絡(luò)
應(yīng)用交付控制器(ADC)目前還是以預(yù)裝在硬件設(shè)備中的形式來(lái)出售,但領(lǐng)先的供應(yīng)商,為了適應(yīng)軟件定義網(wǎng)絡(luò)(SDN),還開(kāi)發(fā)了在虛擬化服務(wù)鏈中可以快速插入的虛擬單元。這些服務(wù)鏈,連同其它網(wǎng)絡(luò)功能虛擬化[注](NFV[注])組件,可以根據(jù)需求通過(guò)云自動(dòng)化系統(tǒng)移動(dòng)。
如果“軟件定義網(wǎng)絡(luò)”可以擴(kuò)展,而不僅僅是通過(guò)OpenFlow連接到交換機(jī)的一個(gè)控制器,那么我們當(dāng)然可以考慮虛擬化應(yīng)用交付控制器(ADC),以增強(qiáng)的腳本作為組件融入軟件定義網(wǎng)絡(luò)(SDN)中。