【正文】
Z 的應用。如果人們沒有意識到安全性需求或認為無關緊要,那么最好的技術也是沒有用的。復雜性引起錯誤配置和避免。沒有必要對整個站點應用最高安全性的保護。需要在低安全性的域的邊界補償控制將安全性提高到需要的程度。由于保護機制永遠不會是完美的,所以檢測機制(監(jiān)控和審核)將在可能的入侵發(fā)生時產(chǎn)生報警或觸發(fā)響應(糾正操作)。如果個別應用程序故障(不是服務器故障),“Microsoft 群集服務”通常將在同一服務器上重新啟動該應用程序。心跳在專用網(wǎng)絡(如群集心跳網(wǎng)絡所示)上通過專用 NIC 發(fā)送。如 NLBS 一樣,利用該系統(tǒng)級服務不需要專門的編程。在站點內(nèi),交換機和路由器應以這樣的方式相互連接,即每個服務總有多條路徑與之連接。連接應該是不同的;即,從提供者到用戶所在地通信工具應使用物理上獨立的路徑。但是當 IIS Web 服務器掛起時,則必須通過監(jiān)控工具檢測。如前所述,如果用 Round Robin DNS 配置多個 NLBS Web 群集,還可使 Web 服務器從網(wǎng)絡基礎結構故障中恢復。我們在下面的章節(jié)中討論增加服務可用性的基礎構件??紤]下面兩圖。這些交互類型需要認真設計,并且盡量減少其數(shù)量。業(yè)務應用程序的功能是在內(nèi)部網(wǎng)絡上實現(xiàn)的,它通常支持多個交付通道。MSMQ 既能支持異步通訊又能保證消息可靠傳遞,所以對這種類型的交互很有用。“Microsoft 消息隊列 (MSMQ)”服務可用于可靠傳輸這些脫機事務。圖 8. “內(nèi)容提供商”模型脫機事務處理。在這個模型中,不需要訪問內(nèi)部網(wǎng)絡的事務處理。擴展業(yè)務復雜性下圖說明了隨著集成到系統(tǒng)的業(yè)務過程數(shù)量的增長和業(yè)務過程聯(lián)機性的增長,對系統(tǒng)安全性和數(shù)量的需求也隨之增長。這通常稱為 n 層模型。但是,這種責任通常落在應用程序工程師頭上,他們將數(shù)據(jù)分散在業(yè)務對象上,而隨著數(shù)據(jù)大小和工作量的不斷增長,業(yè)務對象也將均勻分布在數(shù)量不斷增加的服務器上。對特定數(shù)據(jù)對象的請求則需要路由到存儲相應數(shù)據(jù)的正確分區(qū)。但是,在某些情況這不再可能,或不希望對單個系統(tǒng)的可用性有如此大的數(shù)據(jù)依賴性。 但是,某些應用程序和協(xié)議要求長期的從客戶機到服務器的連接。不能動態(tài)平衡客戶機請求的負荷。這增強了 NLBS 的可伸縮性并避免了 RRDNS 的缺點,因為有多臺計算機可用于響應發(fā)往每個 NLBS 群集的每個請求。目前的限制是服務器不能動態(tài)調(diào)整負荷,重組是根據(jù)服務器故障進行的而不是根據(jù)應用程序失效進行的(盡管第三方工具,如 NetIQ 和 Microsoft 的 HTTPMon,可用于削弱這些限制)。缺點是:沒有關于單個服務器負荷或可用性的反饋機制,并且由于 DNS 更改的傳播延遲導致將請求繼續(xù)發(fā)往故障的服務器,從而沒有辦法從可用的服務器集中快速刪除故障的服務器。 服務器內(nèi)部使用 Windows 2000 的 NLBS 的智能 IP 負荷平衡。 Round Robin DNS (RRDNS)。但請注意,這涉及重要的應用程序狀態(tài)考慮,我們將在后面討論。圖 6. 擴大的站點在前端,IIS Web 服務器的數(shù)量和這些服務器的 Web 群集的數(shù)量有所增加,并使用 NLBS 在它們之間平衡了負荷。首先,我們關注擴展獨特客戶和內(nèi)容,然后再看業(yè)務復雜性的增加。上一層的分類,除來內(nèi)容外還有事務處理,但許多業(yè)務處理是脫機完成的。我們已經(jīng)標識了三個主要類別。第一個維度,即水平軸,表示在有代表性的一天,訪問站點的獨特客戶機的數(shù)量。 數(shù)據(jù)和基礎結構的安全性 — 保護數(shù)據(jù)和基礎結構免受惡意攻擊或盜用。 線性可伸縮性 — 可持續(xù)增長以滿足用戶需求和業(yè)務復雜性。用于緊急帶外 (OOB) 訪問的串口撥號連接也沒有顯示。某些站點沒有使用單獨的管理網(wǎng)絡。另外,Internet 本身也可能用于傳輸,這種情況下使用 VPN 技術確保所有通信的安全非常重要。 就企業(yè)數(shù)據(jù)中心中宿主的站點而言,連接企業(yè)網(wǎng)易如反掌。通常有很多機制可用,包括 Microsoft Content Replication(Microsoft 內(nèi)容復制系統(tǒng))和諸如 RoboCopy 等工具。為了冗余,每個服務器將重復連接到安全網(wǎng)絡的兩個交換機上。安全數(shù)據(jù)存儲安全 SQL 群集是可選的,并只為更復雜的事務性站點中所需。但請注意,對于許多組織來說,Internet 是許多通道中唯一提供用戶服務的傳送通道,這很重要。為了支持其他功能,在本節(jié)中可能還需要其他服務器。防火墻配置成只允許端口與源/目的對之間所要求的通信。除服務器物理地址外,群集還具有多個虛擬 IP 地址,以支持群集本身和每個群集服務地址對(用于冗余)。由于硬盤的確會失效,因此使用 RAID 驅(qū)動器陣列可提供必要的數(shù)據(jù)冗余保護。通過添加群集和分區(qū)數(shù)據(jù)庫可實現(xiàn)可伸縮性。當使用前端網(wǎng)絡時,冗余交換機可提供對所有前端和后端服務器的訪問。用于面向 Internet 的 NIC(網(wǎng)絡接口卡)的 IP 過濾,可確保只有被支持的功能的正確通信類型和源,才能進入前端服務器。每個前端服務器均特殊加強了安全性并連接到三個網(wǎng)絡:客戶機向使用虛擬 IP 地址的每個 Web 群集提出請求,該虛擬 IP 地址是 NLBS 群集中的所有前端服務器均可以響應的。在示例站點中運行 Windows 2000 的每個 Web 群集均使用 NLBS(網(wǎng)絡負荷平衡服務 — 在 Windows NT 中也稱為 Windows 負荷平衡服務)。前端服務器按服務和功能分組 — 例如 、SMTP(電子郵件)或 FTP(下載)。高速前端交換機支持到前端 Web 群集中的每臺服務器的連接。防火墻是基本的安全性組件,通過按數(shù)據(jù)包類型、源和目的地址過濾數(shù)據(jù)通信量,來提供網(wǎng)絡隔離。RRDNS 的缺點是不能檢測出 ISP 連接的消失而繼續(xù)為不再工作的 IP 地址提供服務。這些連接應該來自不同(物理上獨立)的網(wǎng)絡。 與企業(yè)網(wǎng)的連接(閃電狀)。 管理網(wǎng)絡(細虛線)。 DMZ 網(wǎng)絡(中)。圖 3. 大型 Web 站點網(wǎng)絡拓撲結構示例在圖 3 中,不同的線形、粗細和注釋顯示了網(wǎng)絡不同部分的 IP 地址和連接。不需要很高可用性的站點只要刪除冗余的元素,特別是圖中從 Internet ISP 1 開始的整個上半部分。Cisco 的“分布式控制器”通常用于支持 geoplex。我們的示例以一個大型站點為例,并展示了拓撲結構和組件冗余。另外,操作人員還必須十分熟悉克隆和分區(qū)方案、管理工具和安全機制,以維持持續(xù)可用的、基于 Internet 的服務。管理代理與管理服務器使用標準的或?qū)S玫膮f(xié)議相互通信。所有核心組件均可獨立擴展。管理基礎結構站點管理系統(tǒng)通常構建在單獨的網(wǎng)絡上,以確保高度可用。站點通常將過濾數(shù)據(jù)包的外向防火墻和過濾協(xié)議和端口層數(shù)據(jù)的內(nèi)向防火墻結合使用。附加的圍墻和加鎖的門或墻中墻,提供了附加保護。在網(wǎng)絡術語中,表示站點的內(nèi)部通信設備是專用的并與 Internet 隔離,指定的入口除外。Internet 好象中世紀的城堡及其周邊環(huán)境:在其城墻之外,很少有法律約束并有各種不拘一格的個性。域還可能相互交叉或重疊。這一概念的應用程序有助于確保在正確的場合應用正確的保護級別。典型情況下,數(shù)據(jù)庫將出現(xiàn)幾分鐘不同步。此處的基本方法是:將內(nèi)容從中央升級服務器復制到遠程站點的升級服務器,更新每個站點的內(nèi)容。在需要快速故障轉移的場合通常使用主動站點。災難承受系統(tǒng)要求將站點的副本或部分副本放在離主站點足夠遠的地方,這樣,在整個災難中失去多個站點的概率會小到可承受的程度。相類似,在商務站點中用戶應該可以瀏覽目錄,即使暫時不能處理事務。該應用程序軟件完成帶狀態(tài)負荷平衡。帶狀態(tài)負荷平衡如果數(shù)據(jù)按多個數(shù)據(jù)服務器分區(qū),或開發(fā)提供專用功能的服務器來處理特定類型的 Web 請求,必須編寫相應的軟件將請求路由到相應的數(shù)據(jù)分區(qū)或?qū)S梅掌?。不過,分區(qū)的選擇將決定訪問模式及其產(chǎn)生的負荷。在某些應用程序中分區(qū)是按時間進行的,例如按天或按季度。對于提高的可用性,群集 — 通常由兩個訪問公共的、復制的或 RAID (獨立盤的冗余數(shù)組)保護的存儲器的節(jié)點組成 — 將支持每個分區(qū)。數(shù)據(jù)可以存儲在普通文件、數(shù)據(jù)庫系統(tǒng)(如 Microsoft SQL Server(TM))或其他應用程序中,如下表所示。數(shù)據(jù)還可以存儲在 URL 中,并在用戶單擊顯示的 Web 頁上的鏈接時返回。但是,需要對每個客戶機請求檢索該狀態(tài))。維護客戶機狀態(tài)我們不希望在克隆前端系統(tǒng)中維護客戶機狀態(tài),因為這與透明客戶機故障轉移和負荷平衡相抵觸。但是,由于與負荷平衡、故障檢測和消除客戶機狀態(tài)的耦合,克隆的確是擴展站點和提高可用性的良好方法。它們運行相同的軟件,并通過內(nèi)容復制或高度可用的文件共享訪問相同的 Web 內(nèi)容、HTML 文件、ASP、腳本等。然后為每個類提供不同的內(nèi)容。通常,最終用戶鍵入第一個 URL,例如,然后單擊超級鏈接或完成 Web 頁上的表單以便向站點深處導航。 圖 1. 體系結構的原理圖 1 顯示了前端、后端和負荷平衡層的劃分,正如本文檔所述。因此,系統(tǒng)的管理和監(jiān)控必須遠程完成。有三種主要的域,互相用防火墻隔離,它們是:公共網(wǎng)絡;DMZ(由軍事術語“非軍事區(qū)域”派生而來),是前端和內(nèi)容服務器所在之處;以及安全網(wǎng)絡,是創(chuàng)建或使用內(nèi)容的地方,也是管理和存儲安全數(shù)據(jù)的地方。復制品還可通過在遠程位置上成為可用,來提高站點的可用性。它們通過對每個分區(qū)使用故障轉移群集 (failover clustering) 來實現(xiàn)高度可用。負荷平衡用于在克隆體之間分配負荷。通過功能專業(yè)化,業(yè)務邏輯復雜性以可管理的方式增長。這種體系結構,通過克隆或復制與無狀態(tài)負荷平衡系統(tǒng)(使負荷在可用的克隆體之間分配)相耦合的前端系統(tǒng),擴展其支持的獨特用戶的數(shù)量??缮炜s性為了可以擴展,商務 Web 站點將其體系結構分為兩部分:前端(客戶機可訪問的)系統(tǒng)和存儲長期永久數(shù)據(jù)的或商務處理系統(tǒng)所在的后端系統(tǒng)。體系結構目標本文檔描述的體系結構力圖達到四個目標:不僅在支持的獨特用戶的數(shù)量上不斷增加,這種增長非常迅速,而且在提供的用戶服務的復雜性和集成性方面也不斷增長。在“示例站點”描述了一個具有代表性的站點并解釋了它使用的基礎結構和各層。最后,將討論使用 Microsoft 工具和技術管理 Web 站點。其次強調(diào)當前文檔齊全的工具和構建 Web 應用程序組件的方法。本文檔定義了構建 Windows DNA 站點的體系結構。很大比例的商務 Web 站點 — 提供聯(lián)機服務的服務器、應用程序和數(shù)據(jù)的集合 — 都是用當今的 Microsoft Windows DNA 平臺構建的,成為該計算模型的基礎。強調(diào)保持 Web 站點簡便靈活的運作和應用程序設計,以及“.”如何能夠成功地以必要而有效的可伸縮性、可用性、安全性和可管理性來部署和運作站點。 和/或 Windows 2000)的優(yōu)點,并逐級進入,以定義如何使用 Microsoft 產(chǎn)品建立站點體系結構中的每一層次。“體系結構概述”介紹一些對于大型 Web 站點很重要的體系結構概念。體系結構概述簡介大型商務站點為動態(tài)變化的模型:它們通常一開始很小,但隨著需求的增長而指數(shù)增長。這種增長的基礎為支持高度可用性的堅實的體系結構、安全基礎結構和管理基礎結構。 持續(xù)的服務可用性 — 使用冗余和功能專業(yè)化來提高容錯能力。 管理的簡便性和完整性 — 確保運作能夠滿足增長的需求。也就是說,前端系統(tǒng)中每次請求的環(huán)境通常是暫時的。帶狀態(tài)的或內(nèi)容敏感的負荷平衡系統(tǒng)則將請求路由到正確的后端系統(tǒng)??捎眯酝ㄟ^使用多個克隆服務器(所有服務器均為其客戶機提供唯一的地址)使得前端系統(tǒng)具有高度可用性和可伸縮性。使后端系統(tǒng)具有高度可用性更具挑戰(zhàn)性,主要是因為它們維護著數(shù)據(jù)或狀態(tài)。二級節(jié)點必須有權訪問與故障節(jié)點同樣的數(shù)據(jù)存儲,該數(shù)據(jù)存儲也應該是復制的。商務站點使用多個安全域,其中包括具有不同安全性需求的系統(tǒng),每個域均受到網(wǎng)絡過濾器或防火墻保護。也就是說,這些系統(tǒng)配置有“Internet 服務提供商 (ISP)”或?qū)<宜拗鞣?,這里可提供豐富的 Internet 連通性。大型商務 Web 站點的原理圖 1 展示了商務 Web 站點的概念和基本原理,這些內(nèi)容將在本節(jié)的以下部分詳細說明。最終用戶和客戶機軟件不知道提供服務的系統(tǒng)的內(nèi)部運作方式。例如,瀏覽器可如此分類:支持 HTML 的,如 Microsoft Internet Explorer ;支持動態(tài) HTML (DHTML) 的,如 Internet Explorer ;以及支持 Extensible Markup Language (XML) 的,如 Internet Explorer 。開發(fā)人員通常將這些前端系統(tǒng)分為一系列稱作克隆體的相同系統(tǒng)的集。由于每個克隆體在本地復制存儲,因此,所有更新必須應用到所有克隆體上。負荷平衡手段有多種,包括“Round Robin 域名服務器 (RRDNS)”及各種基于網(wǎng)絡的和基于主機的負荷平衡技術。(由于客戶機狀態(tài)可以完全分區(qū),因此也易于擴展。它們無益于減小帶狀態(tài)服務器的負荷和增加無狀態(tài)前端系統(tǒng)的實用性。后端系統(tǒng)后端系統(tǒng)是維護應用程序數(shù)據(jù)的數(shù)據(jù)存儲,也是啟用與其他維護數(shù)據(jù)資源的系統(tǒng)的連通性的數(shù)據(jù)存儲。因此,持續(xù)的可伸縮性是通過數(shù)據(jù)分區(qū)和將邏輯數(shù)據(jù)映射到正確的物理分區(qū)的數(shù)據(jù)相關路由層或帶狀態(tài)負荷平衡系統(tǒng)來實現(xiàn)的。通常,數(shù)據(jù)是按對象分區(qū)的,如郵箱、用戶帳戶或生產(chǎn)線等。增加宿主分區(qū)的服務器數(shù)量,提高了服務的可伸縮性。分區(qū)故障轉移,即服務自動切換到二級節(jié)點(退回未完成的事務),可提供持續(xù)的分區(qū)可用性。它還知道提供專用功能的服務器位置并將請求發(fā)送到那里進行處理。例如,用戶應該總能通過用戶憑據(jù)的復制登錄至聯(lián)機郵件服務,然后使用克隆的“簡單郵件傳輸協(xié)議 (SMTP)”路由器發(fā)送郵件,即使用戶的郵件文件是無效的。災難可能是自然災害(地震、火災或洪水),也可能是惡意操作(如恐怖活動或心懷不滿的員工)的結果。被動站點在發(fā)生災難后才提供服務。更新復制的站點,使它們的內(nèi)容保持一致是很具挑戰(zhàn)性的。數(shù)據(jù)庫復制和日志轉移通常用于將對數(shù)據(jù)庫的事務性更新轉移到遠程站點的地方。安全域是一致的安全性區(qū)域,區(qū)域之間有定義明確的保護接口。對于商務站點,主要的劃分方式可適當按照 Inte