從亞馬遜到Zillow以及所有其他你喜歡的網(wǎng)站,想想看在這些網(wǎng)站后面有多少臺web服務(wù)器在處理你的操作,幾十臺?幾百臺?
當(dāng)然,好在你并不需要知道具體數(shù)量。
ADC肩負(fù)重任
為什么你不需要知道呢?因為應(yīng)用交付控制器(ADC)會在你和web服務(wù)器之間來管理你和任何后端服務(wù)器之間的流量。簡而言之,ADC控制著web應(yīng)用到你的交付,它也因此得名。
在應(yīng)用交付控制器的發(fā)展初期,這些設(shè)備的處理需求非常大,以至大多數(shù)供應(yīng)商都需要開發(fā)自定義ASIC來完成這項工作。這通常意味著高成本,對于較小型企業(yè)來說,這些設(shè)備太昂貴而負(fù)擔(dān)不起。然而,現(xiàn)在處理能力已經(jīng)顯著提高,擁有先進(jìn)功能的應(yīng)用交付控制器可部署在軟件中,并可在符合成本效益的通用處理器上運行。這讓IT人員可部署現(xiàn)在的ADC作為單獨的硬件設(shè)備,還可非常有效地作為虛擬設(shè)備或托管服務(wù)來使用。進(jìn)一步降低了部署成本,同時不會影響功能。
網(wǎng)絡(luò)交換機(jī)通常被稱為網(wǎng)絡(luò)或LAN交換機(jī),但ADC不是這樣。事實上,這個名稱隨著功能的增加一直在演變,從負(fù)載均衡器,到4-7層網(wǎng)絡(luò)交換機(jī),再到ADC。
ADC工作原理
在起初作為負(fù)載均衡器時,應(yīng)用交付控制器只是做負(fù)載均衡的工作。該設(shè)備提供單個前端IP地址以讓用戶交互。事實上,ADC通常只處理入站請求,讓web服務(wù)器直接響應(yīng)用戶以更有效地利用資源。
在后端,ADC使用多種算法來分配用戶到后端web服務(wù)器。后端交互最終包含負(fù)載均衡器和服務(wù)器之間的某種“heartbeat”消息,這讓負(fù)載均衡器確保它沒有將客戶信息發(fā)送到掛起或不響應(yīng)或不可用的服務(wù)器。
多年來,ADC供應(yīng)商利用外部客戶端和內(nèi)部服務(wù)器之間設(shè)備的定位來提高安全性和性能。
ADC選購
鑒于ADC技術(shù)已經(jīng)出現(xiàn)很久,你可以放心選購具有核心功能的ADC。事實上,即使是相對低端的ADC都有很多功能。更高端的ADC(針對具有巨大數(shù)據(jù)需求的運營商或數(shù)據(jù)中心)還提供額外的功能,例如IP聲譽(yù)、應(yīng)用緩存以及聯(lián)合身份服務(wù)等。然而,由于ADC部署的每個功能都是專有功能,比較ADC產(chǎn)品并不容易。
雖然通過ADC傳輸?shù)牧髁?HTTP、FTP、DNS)都是標(biāo)準(zhǔn)化,但并沒有標(biāo)準(zhǔn)來確定處理流量的方式。所以,根據(jù)采購清單來選購ADC并不可行,重點是在決定購買前測試你所評估的ADC。幸運的是,大多數(shù)供應(yīng)商現(xiàn)在都提供支持用于測試目的的虛擬設(shè)備。
ADC功能
下面讓我們來看看哪些功能ADC必須擁有以及哪些值得擁有。
應(yīng)用和內(nèi)部協(xié)議:你會想要確定ADC能夠支持企業(yè)特定的應(yīng)用需求,雖然所有的都支持HTTP,但并非全都支持XML。
同時,你的企業(yè)可能計劃未來遷移到IPv6,所以要確保對IPv6的支持。
SSL卸載:理想情況下,后端服務(wù)器的資源應(yīng)該用于提供應(yīng)用服務(wù),而不是網(wǎng)絡(luò)“家政服務(wù)”。解密和加密安全套接字層(SSL)會話可消耗大量資源。
很多ADC會讓你從單個服務(wù)器卸載SSL負(fù)擔(dān)到ADC。SSL(HTTPS)流量終止于服務(wù)器,而未加密HTTP流量發(fā)送到后端服務(wù)器。由于這在你的數(shù)據(jù)中心范圍內(nèi)進(jìn)行,通常沒有安全問題。后端服務(wù)器的CPU和其他資源現(xiàn)在可用于應(yīng)用處理,而不是處理網(wǎng)絡(luò)安全任務(wù)。
HTTP緩存:同樣地,應(yīng)用服務(wù)器可被調(diào)用來反復(fù)發(fā)送相同信息。無論是主頁還是最近的新聞文章,數(shù)百或數(shù)千用戶在短時間內(nèi)請求相同的內(nèi)容都很不尋常。
很多ADC足夠智能可識別對已請求過信息的額外請求,這些信息可進(jìn)行緩存或保留在ADC,ADC可從其緩存發(fā)送數(shù)據(jù)而不是發(fā)送請求到目標(biāo)服務(wù)器來響應(yīng)客戶端。如果操作正確,這可對用戶快速響應(yīng),同時減少在后端服務(wù)器的負(fù)載。
應(yīng)用監(jiān)控:雖然所有ADC無疑都會提供某種版本的應(yīng)用監(jiān)控,但請一定要了解監(jiān)控的程度。高級監(jiān)控功能可幫助ADC更智能地平衡其負(fù)載。
可擴(kuò)展性能:你不希望看到為了獲得更高性能,你需要更換整個設(shè)備。
幸運的是,很多供應(yīng)商可通過簡單的許可證升級來處理性能升級。他們會在開始向你銷售可處理超過你需求的吞吐量的產(chǎn)品,并相應(yīng)地對許可證進(jìn)行定價。如果你需要更多吞吐量,你可升級你的許可證,而不需要更換或取代任何硬件。另外,如果你正在部署ADC作為虛擬設(shè)備或托管服務(wù)(這也可能是虛擬設(shè)備),你可能需要更多的ADC資源來滿足任何高峰需求或處理用戶流量的增長。
DDoS保護(hù):分布式拒絕服務(wù)(DDoS)攻擊可通過向服務(wù)器發(fā)送大量假請求,讓服務(wù)器沒有足夠的資源來處理有效請求,而讓服務(wù)器崩潰。
這種相同的DDoS攻擊也可搞垮你的ADC,讓你整個服務(wù)器群無法使用。因此,你會希望確保你的ADC可抵御DDoS。
全局負(fù)載均衡:根據(jù)你的企業(yè)以及需求,全局功能可能是你必須擁有的功能。雖然這個功能變得相當(dāng)復(fù)雜,其目的是允許你的后端服務(wù)器不僅包含與ADC在相同位置的服務(wù)器,還允許服務(wù)器位于WAN鏈接的其他位置。
虛擬設(shè)備:雖然不是必須具備的功能,但這是值得擁有的功能,因為你可以將ADC作為虛擬設(shè)備來運行。即使你不打算以這種方式部署ADC,使用虛擬設(shè)備用于測試目的可方便升級以及維護(hù)ADC,你可方便地嘗試新代碼,而不會影響你的ADC。
數(shù)據(jù)丟失防護(hù):有些ADC現(xiàn)在提供數(shù)據(jù)丟失防護(hù)(DLP)功能,它們可檢查出站數(shù)據(jù),根據(jù)公司政策標(biāo)記或阻止違反政策的出站數(shù)據(jù)。重要的是要記住,DLP可以是非常復(fù)雜的功能,它可能不是所有ADC都提供的功能。
總結(jié)
在過去,應(yīng)用交付控制器沒有得到廣泛部署,但現(xiàn)在情況已經(jīng)發(fā)生改變。如果你只有少數(shù)應(yīng)用服務(wù)器(即使它們只服務(wù)內(nèi)部客戶端),你都應(yīng)該考慮部署應(yīng)用交付控制器。入門級系統(tǒng)成本很低,而帶來的優(yōu)勢包括提高最終用戶響應(yīng)時間以及系統(tǒng)可用性,ADC無疑是明智的基礎(chǔ)設(shè)施投資選擇。