Internet技術的快速革新極大的改進了應用的部署方法。成千上萬個Internet 網(wǎng)站從原來一成不變的””書本件””信息應用迅速成為具有高效處理能力的互動應用。許多大企業(yè)及Internet 服務和內(nèi)容供應商使用新的互連網(wǎng)技術組建大型的企業(yè)內(nèi)部網(wǎng)和服務性網(wǎng)站。在企業(yè)與企業(yè),企業(yè)與合作伙伴之間建立安全的供應和銷售鏈流,提高了雙方的信息交流能力。


    隨著Internet上應用的不斷成熟和發(fā)展,可伸縮性和可用性變得越來越重要。 可用性是指一個應用系統(tǒng)可以執(zhí)行任務的時間總和,一般是以系統(tǒng)正常運行時間的百分比來計算。可伸縮性是指一個企業(yè)應用系統(tǒng)增加工作量時,保持可以接受的性能水平的能力。據(jù)IDC報告,對一個WEB用戶來說,10秒的響應時間是一個極限,并且用戶不能忍受低劣的網(wǎng)站質(zhì)量。那么,對于一個企業(yè)萬維網(wǎng)的決策者來說,應付不可預測的臨時通信堵塞的能力和系統(tǒng)的長遠擴展能力,即可伸縮性。 7X24小時的連續(xù)運轉(zhuǎn)能力,即高可用性,以及系統(tǒng)的安全性和可管理性,成為共同尋求的目標。


    要部署和完成一個Web Hosting或出版的環(huán)境并不是一件容易的事情,有許多的問題需要考慮, 例如軟件,硬件,容量,配置,部署,安裝,操作環(huán)境,費用,發(fā)展計劃等等。然而,不管你的Web Hosting環(huán)境的大小,組成元素和概念都大同小異。Web服務器可以分為三類:Intranet(企業(yè)內(nèi)部部門和發(fā)展)WEB服務器,staging Web服務器,Web Hosting(production) 服務器。另外,還有防火墻服務器,內(nèi)容(Content)生成和管理服務器等。如按功能區(qū)域分,可分為三個區(qū)。第一個區(qū)是Intranet區(qū),整個網(wǎng)站內(nèi)容的設計,創(chuàng)作和測試都在這個內(nèi)部區(qū)域完成,并且為其它區(qū)域提供數(shù)據(jù)資源和服務。第二個區(qū)是Production(產(chǎn)品)區(qū),這是一個公共區(qū)域,最終的對外發(fā)布內(nèi)容就放在這里。第三個區(qū)是Staging區(qū),在非正式場合我們稱它為DMZ(非軍事區(qū)),它位于其他二個區(qū)之間,提供了一個額外的安全隔離區(qū),并且作為一個中間區(qū),可以提供一個數(shù)據(jù)分段移動和修改測試平臺,為Production區(qū)交付最終的內(nèi)容。 康柏公司有豐富的Internet經(jīng)驗,通過訪問大量的用戶,Internet服務供應商和WEB結(jié)構(gòu)顧問機構(gòu),分析,綜合并測試了客戶的最好方案, 提出了DISA (Distributed Internet Server Array,分布式因特網(wǎng)服務器陣列)結(jié)構(gòu)。此結(jié)構(gòu)是基于傳統(tǒng)的高可用性和高可伸縮性原則和技術, 使用了新的適合于Internet 應用的方法,并增加了內(nèi)涵。


二、DISA的組件和結(jié)構(gòu)




    上圖就是DISA體系結(jié)構(gòu)的核心組件圖。DISA體系結(jié)構(gòu)由一個核心應用堆棧和兩個全局組件組成。核心應用堆棧包括四個元素: 客戶層、流量負載均衡層、應用服務器層和數(shù)據(jù)資源層。安全保障體系和綜合管理機制作為兩個全局組件貫穿整個核心應用堆棧。


    基于上述之DISA的體系結(jié)構(gòu),我們可以構(gòu)建出實體的邏輯簡圖(參看下圖)。 客戶端的請求通過INTERNET發(fā)送至網(wǎng)站,由智能的流量負載均衡設備自動的把這些請求合理分發(fā)到不同的應用服務器,因為這些應用服務器是負載均衡的,所以增加應用服務器的數(shù)量,系統(tǒng)的性能就會線性增加。在DISA結(jié)構(gòu)中,服務器的WEB內(nèi)容并不是在各個服務器的本地盤之間進行復制,而是把相關的內(nèi)容和資源放在一個集中的,高可用的后臺文件服務器組中,這樣做的另一個好處是能夠容易處理快速的WEB內(nèi)容變化。那么,后臺的系統(tǒng),就是所謂數(shù)據(jù)資源層,由高性能和高可用的服務器組成,除了為應用服務器提供宿主文件服務外,還提供數(shù)據(jù)庫服務或其他應用服務,例如ERP的應用,SAP或Sibel等。


    實現(xiàn)DISA的每一層有許多方法,包括軟件和硬件。本文偏重于在微軟平臺上的應用和部署。



三、DISA核心應用堆棧


    客戶層


    客戶層是應用數(shù)據(jù)的消耗層。大多數(shù)通用客戶層都是WEB瀏覽器(例如Microsoft Internet Explorer)。然而,DISA體系結(jié)構(gòu)將會應用于其它擁有非瀏覽器客戶機的Internet應用,諸如FTP、Internet電子郵件、DNS等等。有時,客戶層可以是應用從DISA系統(tǒng)提取數(shù)據(jù)。為了簡單起見,我們將假設本文所有的客戶層都是瀏覽器。


    在DISA系統(tǒng)中,客戶層向一個主機名稱(例如,http://www.compaq.com)發(fā)出請求,該主機名稱代表了使用DISA體系結(jié)構(gòu)所部署的應用。最終用戶并不知道系統(tǒng)如何運作來滿足請求的過程,以及是否需要特殊的客戶機軟件或配置。


    流量負載均衡層


    互聯(lián)網(wǎng)的快速增長已經(jīng)使網(wǎng)絡服務器面對的訪問數(shù)量大大增加,并且更加不可預知。如今,服務器必須具備提供大量并發(fā)訪問服務的能力,其處理能力和I/O能力已經(jīng)成為提供服務的瓶頸。如果客戶的增多導致通信量超出了服務器能承受的范圍,那么其結(jié)果必然是宕機。這時候,你當然必須升級你的服務器,但是,單臺服務器有限的性能可能解決不了這個問題,一臺普通服務器的處理能力只能達到每秒幾萬個到幾十萬個請求,無法在一秒鐘內(nèi)處理上百萬個甚至更多的請求,同時你要考慮投資保護的問題。但若能將多臺這樣的服務器組成一個系統(tǒng),并通過相應的技術將所有請求平均分配給所有服務器,那么這個系統(tǒng)就完全擁有每秒鐘處理幾百萬個甚至更多請求的能力,而你的原始投資也得到了保護。這就是負載均衡的基本設計思想。


    負載均衡層以虛擬主機名稱的形式來表示單個系統(tǒng)映像,并跨越多個應用服務器分配客戶機請求。這個功能為應用服務器陣列提供了卓越的可用性、可伸縮性和管理性??蛇\用各種方式來進行負載均衡,包括RoundRobinDNS和各種智能負載均衡技術。 RRDNS是一種通過配置域名(DNS)服務器來實現(xiàn)負載均衡的方法。因此,特殊主機名稱所采用的DNS查找方法可跨越IP地址池,而不是單個地址循環(huán)分配。每一個客戶機連續(xù)訪問一個站點的時候,均定向為不同的應用服務器,從而達到了最起碼的負載均衡效果。RRDNS是一種直接而便宜的方法,但是它有許多缺點。其中一個主要的弱點是DNS服務器沒有一個反饋的機制來接收應用服務器的當前狀況信息。如果一個服務器過載或宕機,DNS服務器不會發(fā)現(xiàn),會繼續(xù)把客戶請求發(fā)送過去,直到人工干預,排除故障為止。另一個弱點是DNS服務器只能簡單的平均分配客戶請求,如果有不同處理能力的應用服務器的話,很快會使性能較差的機器過載。


    為了彌補RRDNS的不足之處,很多廠商已經(jīng)開發(fā)了智能負載均衡產(chǎn)品。此類產(chǎn)品包括Cisco負載均衡器(LocalDirector)、F5Labs BIG/ip、RND網(wǎng)絡Web服務器導向器、HydrawebHydra系列、Resonate Central Dispatch、Bright Tiger Cluster Cats、HolontechHyperflow和AlteonAceSwitch。


    目前的負載均衡技術具有幾種形式,包括交換機(Holontech,Alteon,Arrowpoint)、承裁網(wǎng)絡“設備”(諸如Cisco,F(xiàn)5,HydraWEB)及安裝于通用服務器上的軟件,諸如Resonate Dispatch、BrightTiger、TurboLinux Cluster , WLBS。


    WLBS (Windows NT Load Balancing Service)是微軟公司提供的實現(xiàn)負載均衡的免費軟件(可以從Microsoft網(wǎng)站上下載,需要Enterprise Edition License, 可以在標準版的NT上運行)。WLBS通過使用二臺或多臺的服務器共同工作所組成的集群,提供高可用的和高可擴展的Internet/Intranet服務??蛻舳瞬⒉荒軈^(qū)分他的請求是在一臺服務器上還是運行在WLBS集群上。然而,運行在WLBS集群上與在一臺服務器上有著很大的區(qū)別,首先WLBS集群上的某臺服務器宕機,集群會自動調(diào)整集群的組成成員,客戶服務不會中斷,另外,如果使用基于端口的負載均衡,客戶端的響應時間會縮短。


    由于WLBS獨特的,真正意義上的分布式結(jié)構(gòu),它是一個理想的構(gòu)建高可用的和高可擴展的Internet軟件,并且能輕松應付大型網(wǎng)站上繁重的任務。已經(jīng)過WLBS應用測試的軟件有:Web 服務(例如Microsoft IIS) 、基于微軟服務器的 VPN 解決方案、媒體流(例如Microsoft Windows NT Server NetShow Services) 、代理服務(例如Microsoft Proxy Server)。因為WLBS是基于IP的負載均衡的軟件,所以除了上述應用外,其他應用也可以從中獲得好處。


    應用服務器層


    Internet應用的工作主要由應用服務器層來完成。一個簡單的Internet應用范例是基于Web的服務器,其中絕大多數(shù)是靜態(tài)頁面服務,包括少量的CGI腳本以處理HTML的輸入表格(例如,在郵件列表中加入注冊用戶)。


    更加完備的Internet應用使用先進的CGI腳本、Allaire ColdFusion、Microsoft Active Server Page(ASP)或JavaServlet,它們運行于應用服務器之上,并從位于中央服務器的數(shù)據(jù)庫中檢索數(shù)據(jù)資源。某些應用還支持從早期系統(tǒng)或企業(yè)應用中檢索信息的方式,諸如SAP、BAAN和Siebel。


    更加復雜的應用可以使用完備的應用服務器軟件包,該軟件包可將萬維網(wǎng)服務和應用邏輯劃分為分離的物理服務器。這種軟件包包括HAHTSoftware的HAHTsite、NetDynamics和Netscape Application Server(前身為KivaEnterpriseServer)。這些軟件包一般包括運行ISAPI或NSAPI程序的Web服務器,該程序與專用應用邏輯服務器池進行通信。應用邏輯服務器檢索并處理來自幾個不同數(shù)據(jù)庫、生產(chǎn)處理系統(tǒng)和企業(yè)應用的數(shù)據(jù),然后向Web服務器返回格式化的結(jié)果。


    這些高端系統(tǒng)一般具有內(nèi)置特性,從而實現(xiàn)應用邏輯服務器的高可用性及可伸縮性。然而,這些系統(tǒng)為了滿足Web服務器層自身的可用性和可伸縮性要求,仍然需要負載均衡。


    WEB服務器可選擇的軟件很多,其中Microsoft IIS是一個高性能,容易設置和管理的免費軟件。另外,還有Microsoft Site Server 和Commerce Server2000, 提供強大的分析,認知和出版工具能讓你的用戶有一個個性化的快速查找、共享信息的能力和在線商務交易空間。


    站點經(jīng)常使用Microsoft Active Server Pages(ASP)來保存狀態(tài)信息。因為WLBS不能處理應用服務器集群之間的狀態(tài)同步,當一個應用服務器出問題時,客戶端的ASP會話必須保持,以便由另一個節(jié)點接管,而客戶會話將繼續(xù)進行。目前有三種可能的方案。第一種,封裝所有的狀態(tài)信息,把它放在客戶端的cookie(小甜餅)里,客戶機保存這個cookie,并在后續(xù)的服務器請求中使用。在這種情況下,客戶端發(fā)送的每一個請求都帶有所需的上下文信息。這種方法只是在狀態(tài)信息較少的情況下才可使用。第二種,在服務器上緩存狀態(tài)信息,同時使用后臺或中間層應用服務器作為狀態(tài)信息的授權(quán)存儲檔案庫。在這種情況下,當客戶機連接到服務器時,因為在內(nèi)存中有狀態(tài)信息,所以處理請求非??欤斎槐仨氂幸粋€機制來刷新后臺的狀態(tài)信息的存儲檔案庫。第三種,可以用第三方的數(shù)據(jù)同步方案來實現(xiàn)。


    數(shù)據(jù)資源層


    數(shù)據(jù)資源層也稱為內(nèi)容(Content)層,是一個中心存儲庫,它存儲應用數(shù)據(jù)或提供與其它控制應用數(shù)據(jù)資源系統(tǒng)的連接。眾多Internet應用都包括各種各樣的數(shù)據(jù)資源類型,它們可以是網(wǎng)絡文件系統(tǒng)、數(shù)據(jù)庫或其它應用。


    人們普遍認為基于文件系統(tǒng)的資源(諸如HTML、圖像等)必須存儲在應用服務器的本地驅(qū)動器上。使用這種方式的問題在于要同步保持復制數(shù)據(jù)是一項艱難的任務,特別是在數(shù)據(jù)資源需要不斷變更的時候,而這也正是大多數(shù)成功的萬維網(wǎng)站點所面對的問題。雖然已經(jīng)推出了第三方文件復制解決方案,但是大多數(shù)可使用的解決方案通常是針對網(wǎng)絡文件服務器上基于中心文件的資源,而這些網(wǎng)絡文件服務器必須能夠提供大量的I/O性能,并且是高可用的。NetConstruct是一家位于洛杉磯的網(wǎng)絡體系結(jié)構(gòu)咨詢公司,它發(fā)現(xiàn)數(shù)據(jù)資源的集中化可顯著降低部署和管理大型、多服務器系統(tǒng)的復雜性。 大多數(shù)Web服務器能夠緩存內(nèi)存中的HTML、圖像和其它數(shù)據(jù)資源,從而避免發(fā)生為每一個URL請求接入本地或網(wǎng)絡驅(qū)動器所固有的延遲。在DISA系統(tǒng)中,Web服務器從網(wǎng)絡文件共享,而不是本地驅(qū)動器填充它們的高速緩存。


    對于任何集中式的應用資源,數(shù)據(jù)資源必須高度可用,以使它們不會發(fā)生單點故障。像微軟NT Server Enterprise Edition(又稱為“Wolfpack”)和Windows2000 AdvanceServer, Windows 2000 DataCenter Server這些的集群化操作系統(tǒng),為文件系統(tǒng)和數(shù)據(jù)庫可用性提供了相對簡單且經(jīng)濟有效的方法。微軟的SQL2000數(shù)據(jù)庫和運行在微軟平臺上的Oracle OPS都是高性能和高可靠的數(shù)據(jù)庫。另外,康柏的服務器恢復選件,經(jīng)驗證是提供服務器故障恢復的有效方法。


    除了集群之外,還有很多精心設計的方法可使數(shù)據(jù)庫系統(tǒng)高可用和可伸縮。用戶可以使用事物處理服務器技術(諸如應用層和數(shù)據(jù)資源層之間的BEA Systems Tuxedo和Microsoft Transaction Server)來改善數(shù)據(jù)庫的事物處理性能。在某些情況下還可以運用分布式數(shù)據(jù)庫、并行數(shù)據(jù)庫、消息隊列和其它技術。


    安全保障體系


    如同可用性和伸縮性一樣,在DISA系統(tǒng)上部署的關鍵任務應用一般需要可靠的安全途徑。確保隱私、防止否認服務的侵襲、保護數(shù)據(jù)都是電子商務或連接Internet的Extranet應用所明確要求的條件。其中許多安全要求也適用于Intranet應用。


如上圖,是安全技術在DISA核心應用層的各層上及各層間的應用范例。如圖所示,SSL加密、防火墻、虛擬專用網(wǎng)絡(VPN)和OS加固技術可應用于各個級別。有些智能負載均衡器可以為DISA系統(tǒng)中的組件提供基本安全功能。對于基于路由器的負載均衡器,如F5LabsBIG/ip,管理員可以設定打開所需服務器的TCP/IP端口。另外,BIG/ip能夠保護應用服務器,防止它受各種常見拒絕服務的侵襲。


    安全技術實施的方式可以極大地影響DISA系統(tǒng)的可伸縮性和可用性。例如,放置在應用服務器和數(shù)據(jù)資源之間的防火墻會因安全設置而成為性能瓶頸。除非使用適當?shù)墓收匣謴瓦x項配置(例如冗余FireWall),否則防火墻本身就是一個潛在的單點故障。另外,不是所有的防火墻都支持Oracle的SQL*NET之類的專用協(xié)議,也就是說,應用服務器可能無法訪問隱藏在某些防火墻之后的Oracle數(shù)據(jù)庫。


四、綜合管理機制


    DISA體系結(jié)構(gòu)中的另一個共用組件是管理。DISA系統(tǒng)涉及許多不同的設備,它們協(xié)同工作以提供全面的應用。這要求運用有效的途徑來管理系統(tǒng),以便保證所有系統(tǒng)在線,并且以最佳的性能狀態(tài)運行。參看下表。


    DISA中的其它技術及用具服務器


    上文提到的負載均衡技術的精髓在于數(shù)據(jù)處理的智能分配,它不能對這些數(shù)據(jù)本身作分類處理。那么,我們是否可以把這些數(shù)據(jù)本身作分類處理,以便由專用的用具服務器去處理, 從而從另一個角度來減輕主服務器的負擔 呢? 所以,我們需要引入一些其它技術:緩存技術,XML加速技術,SSL加速技術等。見下圖??蛋赜蠺askSmart C 系列Cache用具服務器,TaskSmart N 系列NAS(Network Attached Server)用具服務器,并與INTEL合作推出SSL和XML加速用具服務器,VPN用具服務器。



五、DISA設計要領及優(yōu)勢


    DISA設計要領


    除了以上討論的各組件之外,還有一些完成DISA體系結(jié)構(gòu)定義所需遵循的重要原則。


    (一)使用多個應用服務器


    當與智能負載均衡技術結(jié)合使用時,多個應用服務器比一個具有大量處理器和內(nèi)存的服務器具有更高的可伸縮性和可用性。當可用性至關重要時,康柏建議至少使用三臺服務器,以便在一臺服務器進行脫機維護的時候,保證有一對冗余服務器隨時在線。根據(jù)特定應用的特性,應用服務器可具有一個或多個處理器。通過使用適當?shù)呢撦d均衡技術,可以將具有不同處理能力、I/O特性,甚至不同操作系統(tǒng)的服務器結(jié)合在一個應用服務器陣列中。


    (二)集中數(shù)據(jù)資源,避免在不同服務器復制數(shù)據(jù)資源


    如果運用了適當?shù)墓收匣謴图夹g,集中式的數(shù)據(jù)資源服務器就能夠簡化快速管理更改數(shù)據(jù)資源的任務。集中應用資源也能夠監(jiān)控容量擴展和故障恢復。為了盡量減少停機時間,保持良好的性能狀態(tài),數(shù)據(jù)資源服務器應配置多個處理器、大量RAM和冗余組件(NIC,電源和風扇)。集群技術可以極大地提高集中化資源的可用性。


    (三)對每個潛在單點故障使用冗余技術


    故障恢復配置可用于負載均衡器、防火墻和網(wǎng)絡設備。智能負載均衡技術為冗余應用服務器提供故障恢復功能。集群數(shù)據(jù)庫和網(wǎng)絡存儲確保了數(shù)據(jù)資源的可用性。經(jīng)復位和不間斷電源(UPS)進行冗余網(wǎng)絡連接是可行的。


    (四)構(gòu)建應用以保證用戶狀態(tài)信息不保持在單個應用服務器上


    在應用服務器上保持用戶狀態(tài)信息的應用,某些負載均衡算法可能不起作用。有些負載均衡產(chǎn)品通過基于單個用戶管理負載確保每個用戶使用整個會話的相同應用,避免了此類問題的發(fā)生。


    盡管這些方法可有效保證某些應用的正常工作,但在應用服務器出現(xiàn)故障時,仍有丟失事物處理的可能。如果用戶狀態(tài)信息,如在線購物筐、信用卡信息、個人頁面設置等,只存儲在單個應用服務器的內(nèi)存中,那么一旦服務器出現(xiàn)故障就會造成丟失事物處理。為減小這種風險,應用設計應使用戶狀態(tài)信息以獨立于特定的應用服務器。將狀態(tài)信息保存在客戶機Cookie、數(shù)據(jù)庫表和/或URL上,可以達到這個目的。


    如果應用能夠遵循這些原則設計,最終用戶通常只需單擊瀏覽器的重新加載按鈕即可恢復從應用服務器的故障。負載均衡器將會把重新加載的請求轉(zhuǎn)移到正常運行的應用服務器上,該服務器能夠基于URL本身、Cookie或數(shù)據(jù)庫表中的信息重新創(chuàng)立用戶狀態(tài)。


    (五)利用工業(yè)標準的平臺和技術


    盡管DISA體系結(jié)構(gòu)可使用任何平臺進行實施,但是工業(yè)標準的平臺有助于DISA系統(tǒng)充分發(fā)揮作用。DISA體系結(jié)構(gòu)允許企業(yè)利用工業(yè)標準的所有性能價格比優(yōu)勢,來提供高伸縮、高可用的Internet應用。


    DISA的優(yōu)勢


    DISA體系結(jié)構(gòu)的優(yōu)勢體現(xiàn)在可伸縮性、可用性、價值和兼容性等方面。


    (一)線性可伸縮性
DISA體系結(jié)構(gòu)允許管理員快速、輕松地添加應用容量以處理不斷增加的負載。小型DISA系統(tǒng)可以從兩臺應用服務器開始,然后隨著負載的增加擴展為20或30臺應用服務器??蛋販y試說明向DISA系統(tǒng)添加應用服務器能夠提供線性可伸縮性。特定DISA系統(tǒng)的可伸縮性高低取決于瓶頸的位置,并且因選擇特定產(chǎn)品和所述應用的性能特征而有所不同。但是,DISA系統(tǒng)能夠處理非常廣泛的負載。在多數(shù)情況下,可利用增加選件解決瓶頸問題,而無需重新設計系統(tǒng)或更換設備。


    (二)高可用性


    DISA體系結(jié)構(gòu)的另一個優(yōu)勢在于它的高可用性。DISA系統(tǒng)在每一層上都具有完全冗余功能,從而確保無單點故障。完備的DISA系統(tǒng)無需系統(tǒng)脫機即可進行不斷的更新和其它計劃內(nèi)的系統(tǒng)維護工作。另外,DISA系統(tǒng)還能夠輕松應對由于硬件或軟件特性而帶來的偶然、計劃外維護工作。


    (三)高性能價格比


    DISA體系結(jié)構(gòu)允許Internet應用設計者充分利用工業(yè)標準平臺帶來的所有性能價格比優(yōu)勢,而不必折衷可伸縮性和可用性。DISA體系結(jié)構(gòu)采用現(xiàn)成、工業(yè)標準的平臺和產(chǎn)品,它們沒有依賴特殊廠商特定的技術。在同等價格水平上,完備的DISA系統(tǒng)能夠比專用產(chǎn)品提供更高的可伸縮性和可用性。


分享到

多易

相關推薦