應(yīng)用交付控制器(ADC)對(duì)于數(shù)據(jù)中心的流暢運(yùn)行十分關(guān)鍵,它提供了包括服務(wù)器負(fù)載平衡、監(jiān)控服務(wù)器和應(yīng)用健康、保護(hù)數(shù)據(jù)中心免遭分布式拒絕服務(wù)(DDOS)攻擊、執(zhí)行SSL加解密等關(guān)鍵功能。通過(guò)管理連接、運(yùn)行專(zhuān)用應(yīng)用腳本和提升應(yīng)用速度,應(yīng)用交付控制器可提高服務(wù)器運(yùn)行效率。ADC就如同粘合劑一樣,將數(shù)據(jù)中心網(wǎng)絡(luò)和應(yīng)用層粘合在一起。
即便應(yīng)用轉(zhuǎn)向公有云,它們?nèi)匀恍枰褂肁DC所提供的所有服務(wù)。如果在轉(zhuǎn)向公有云時(shí)不使用關(guān)鍵的ADC功能,應(yīng)用和服務(wù)將處于風(fēng)險(xiǎn)之中。以下敘述基于這樣的情況:在使用混合云解決方案時(shí),應(yīng)用的一部分位于云上,另一部分則位于企業(yè)數(shù)據(jù)中心上。
二層架構(gòu)各有所長(zhǎng)
在公有云上,ADC的最佳架構(gòu)是雙層結(jié)構(gòu),ADC的功能大致被分為兩個(gè)層此。第一層由公有云提供商提供,負(fù)責(zé)處理服務(wù)器負(fù)載平衡(SLB),將不同的客戶(hù)流量定向至運(yùn)行應(yīng)用的虛擬服務(wù)器群上。
這是一個(gè)基本的SLB功能,它并沒(méi)有根據(jù)服務(wù)器負(fù)載和延時(shí)等因素對(duì)定向流量進(jìn)行進(jìn)一步細(xì)化。云服務(wù)提供商的ADC僅是將流量轉(zhuǎn)向至支持應(yīng)用的虛擬機(jī)群上。云提供商的ADC是抵御攻擊者的第一道防線(xiàn),同時(shí),這一層的ADC還負(fù)責(zé)執(zhí)行SSL加解密功能。
除了提供認(rèn)證服務(wù)外,ADC還能夠?qū)α髁窟M(jìn)行壓縮或解壓縮,但是這需要與客戶(hù)進(jìn)行協(xié)調(diào)。由于第一層的ADC保護(hù)云數(shù)據(jù)中心免遭攻擊,因此常常被稱(chēng)之為"看門(mén)狗"ADC。同時(shí)由于它監(jiān)視著整個(gè)云網(wǎng)絡(luò),因此也被稱(chēng)為網(wǎng)絡(luò)ADC。
硬件解決方案是第一層ADC的最佳方案,因?yàn)檫@層ADC需要最高的性能以處理大流量負(fù)載。SSL處理在專(zhuān)門(mén)的硬件中能夠被很好地執(zhí)行,而只有硬件ADC才能勝任這一任務(wù)。在A(yíng)DC發(fā)展初期,SSL處理是在軟件中進(jìn)行的,但是業(yè)內(nèi)很快就發(fā)現(xiàn)隨著流量的增加,軟件解決方案無(wú)法跟上發(fā)展步伐,同時(shí)延時(shí)程度也變得無(wú)法接受。此外,硬件解決方案具有足夠的實(shí)力,來(lái)?yè)敉舜笮虳DoS攻擊,并執(zhí)行看門(mén)狗功能。
第一層ADC不執(zhí)行其它的ADC的功能存在著多個(gè)原因。其中,性能是最主要的因素??撮T(mén)狗ADC需要集中性能以定向流量、執(zhí)行SSL,應(yīng)對(duì)應(yīng)用攻擊。運(yùn)行單個(gè)客戶(hù)的腳本等額外功能,會(huì)導(dǎo)致ADC速度下降,并且會(huì)占用原本用于執(zhí)行看門(mén)狗功能的性能。對(duì)不同客戶(hù)腳本間的相互作用的顧慮也是一個(gè)因素。運(yùn)行客戶(hù)腳本將導(dǎo)致變化控制和問(wèn)題處置復(fù)雜化。此外,將不同的客戶(hù)目標(biāo)緩存在相同的ADC上將產(chǎn)生安全漏洞。出于這些原因,第一層ADC應(yīng)當(dāng)將性能集中在幾個(gè)關(guān)鍵應(yīng)用上,將客戶(hù)的具體任務(wù)留至下一層進(jìn)行處理。
第二層ADC也被稱(chēng)為租戶(hù)ADC,它位于特定客戶(hù)的虛擬機(jī)和應(yīng)用前端。所有客戶(hù)的應(yīng)用既可以共有一個(gè)ADC,每個(gè)應(yīng)用也可以單獨(dú)有一個(gè)ADC。第二層ADC主要負(fù)責(zé)執(zhí)行具體的SLB功能,負(fù)責(zé)根據(jù)實(shí)時(shí)反應(yīng)時(shí)間和負(fù)載等情況為單個(gè)虛擬機(jī)提供負(fù)載平衡,還向企業(yè)反饋服務(wù)器的健康信息。在執(zhí)行諸如目標(biāo)緩存和服務(wù)器卸載等應(yīng)用加速功能的同時(shí),第二層ADC還負(fù)責(zé)運(yùn)行應(yīng)用特定腳本。同時(shí),它也是抵御攻擊的第二條防線(xiàn)。
一個(gè)ADC僅負(fù)責(zé)一個(gè)客戶(hù)或一個(gè)應(yīng)用,在執(zhí)行上述功能時(shí)具有一些優(yōu)勢(shì)。其中最大的優(yōu)勢(shì)在于可以讓客戶(hù)控制ADC。企業(yè)能夠控制腳本升級(jí)的時(shí)機(jī),如果當(dāng)中出現(xiàn)問(wèn)題,企業(yè)能夠迅速進(jìn)行補(bǔ)救。第二層ADC還可將客戶(hù)或應(yīng)用相互隔離起來(lái)。在A(yíng)DC失效的情況下(例如,當(dāng)應(yīng)用被遷移至其他的云提供商那里,所有的緩存信息消失時(shí)),其可提供更高的安全性,。
企業(yè)可能希望第二層ADC能夠與他們數(shù)據(jù)中心的ADC匹配。其實(shí),第一層的ADC的品牌是否和企業(yè)自己使用的ADC品牌相同并不重要。原因在于,第一層ADC對(duì)于企業(yè)來(lái)說(shuō)是透明的,并且僅僅執(zhí)行一些通用功能。第二層ADC則不同,其品牌最好與企業(yè)使用的ADC品牌相同,因?yàn)檫@樣可以簡(jiǎn)化整合和運(yùn)行工作,同時(shí)腳本能夠從企業(yè)數(shù)據(jù)中心的ADC無(wú)縫地流向云。盡管企業(yè)使用的ADC品牌與第二層ADC品牌是否相同并不是必須的,但是保持品牌的一致性還是一個(gè)值得考慮的問(wèn)題。
第二層ADC的控制權(quán)之爭(zhēng)
云提供商已經(jīng)開(kāi)始在他們的服務(wù)列表中將第二層ADC作為一種額外的服務(wù)選項(xiàng)??蛻?hù)可選擇包括:在單獨(dú)的服務(wù)器或者虛擬分區(qū)的服務(wù)器上運(yùn)行軟件ADC,專(zhuān)門(mén)的硬件ADC,或是在硬件上ADC隔離出來(lái)的分區(qū)。目前,專(zhuān)門(mén)的硬件ADC僅有為數(shù)不多的幾個(gè)廠(chǎng)商可提供,因?yàn)闇?zhǔn)備不同品牌的ADC將使得云提供商的運(yùn)營(yíng)復(fù)雜化,同時(shí)費(fèi)用也非常昂貴。
目前日益普及的選擇是使用在服務(wù)器上運(yùn)行的軟件ADC。這一選擇允許云提供商在性能和廠(chǎng)商品牌方面提供更多的可能。目前提供這一虛擬化選項(xiàng)的主要ADC廠(chǎng)商包括A10、Array、思杰、Coyote Point、F5、Kemp、Radware,以及通過(guò)收購(gòu)Zeus 加入這一市場(chǎng)的Riverbed。博科也計(jì)劃在2012年上半年推出其軟件ADC產(chǎn)品。
目前在第二層ADC上使用軟件ADC并不存在重大缺陷。因?yàn)樵诘诙覣DC所負(fù)責(zé)的任務(wù)并不涉及重大性能問(wèn)題。所有的ADC廠(chǎng)商都聲稱(chēng)性能不是問(wèn)題,同時(shí)所有的證據(jù)也表示這似乎是可信的。
目前還不清楚云提供商是否將提供豐富的ADC解決方案品牌。他們很可能僅提供一些受市場(chǎng)青睞的廠(chǎng)商的解決方案。此外,目前也不清楚他們將允許在第二層ADC上向企業(yè)提供多大程度的定制,以及他們將向企業(yè)轉(zhuǎn)交多少ADC控制權(quán)。
對(duì)選項(xiàng)和控制權(quán)進(jìn)行限制的問(wèn)題將催生出另一個(gè)選項(xiàng)--"帶來(lái)你自己的"(Bring Your Own) ADC選項(xiàng)。企業(yè)將他們?cè)谧约簲?shù)據(jù)中心上使用的軟件版ADC作為一個(gè)應(yīng)用遷移到公有云的虛擬機(jī)上。這一選項(xiàng)可讓企業(yè)徹底地控制第二層ADC,同時(shí)允許企業(yè)讓云ADC適應(yīng)由眾多ADC廠(chǎng)商提供的全球負(fù)載平衡功能,以及部署他們已有的定制服務(wù)。目前的主要問(wèn)題是企業(yè)如何讓自己的ADC適應(yīng)公有云提供商的基礎(chǔ)設(shè)施。
盡管云提供商可能更喜歡客戶(hù)選擇他們服務(wù)列表中的選項(xiàng),但是他們也會(huì)通過(guò)克服技術(shù)配置問(wèn)題允許客戶(hù)"帶來(lái)自己的"ADC。在簽署協(xié)議前,應(yīng)當(dāng)確認(rèn)云提供商允許客戶(hù)帶來(lái)多少"自己的ADC"。
在選擇第二層ADC時(shí)應(yīng)當(dāng)參考以下幾個(gè)標(biāo)準(zhǔn)。首先,在為你的數(shù)據(jù)中心選擇一個(gè)ADC時(shí)應(yīng)當(dāng)全面考慮這些標(biāo)準(zhǔn)。不要想當(dāng)然地以為軟件ADC與硬件ADC有著相同的功能。盡管確實(shí)許多軟件ADC與硬件ADC不相上下,但是這一點(diǎn)并無(wú)法保證。此外,ADC的性能應(yīng)當(dāng)容易擴(kuò)展。許多軟件ADC在性能上低于它們的硬件版本,在使用云時(shí)應(yīng)當(dāng)考慮到吞吐量的影響。如果不清楚所需要的吞吐量,那么應(yīng)當(dāng)尋找能夠很容易擴(kuò)展為更大吞吐量的解決方案,并了解成本與吞吐量間的關(guān)系。
云中ADC "公""私"皆宜
選擇公有云提供商的一個(gè)標(biāo)準(zhǔn)是,應(yīng)當(dāng)清楚他們部署ADC架構(gòu)的情況,以及能否很容易地與企業(yè)自身的ADC需求整合在一起。ADC并不是"可有可無(wú)"的,而是支持企業(yè)應(yīng)用的關(guān)鍵因素。
針對(duì)公有云的ADC架構(gòu)基礎(chǔ)知識(shí)同樣適用于私有云,尤其是大型數(shù)據(jù)中心。雙層解決方案為數(shù)據(jù)中心擴(kuò)展提供了更高的靈活性。將每個(gè)應(yīng)用腳本隔離在專(zhuān)用的ADC中,可以讓確定問(wèn)題根源所在和升級(jí)變得更加容易。對(duì)于公有云和私有云來(lái)說(shuō),雙層解決方案代表著ADC架構(gòu)的未來(lái)發(fā)展趨勢(shì)。