最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【轉(zhuǎn)載】Windows Server 2003:通往黃金之路

2023-06-08 10:48 作者:CallMeZHUWIN  | 我要投稿

機(jī)翻搬運,原作者Paul Thurrott

原文:http://www.winsupersite.com/reviews/winserver2k3_gold1.asp


第 1 部分:早期

在最近與 Janet Robbins 和 Mike Otey 一起訪問微軟雷德蒙德園區(qū)期間,我們有機(jī)會坐下來與 Windows 歷史上最著名的兩位人物 Mark Lucovsky 和 David Thompson 交談。對于那些不熟悉早期 Windows NT(當(dāng)時簡稱為 NT)的人來說,Lucovsky 和 Thompson 在這個重要軟件項目的開發(fā)中都發(fā)揮了關(guān)鍵作用。Microsoft 的杰出工程師兼 Windows Server 架構(gòu)師 Mark Lucovsky 與 NT 架構(gòu)師 Dave Cutler 一起加入公司的最初一批前數(shù)字設(shè)備公司 (DEC) 員工。主要以他理解 NT 中數(shù)以千計的組件如何協(xié)同工作的非凡能力而聞名,Lucovsky 因其技術(shù)敏銳度和早期努力將 NT 從基于 OS/2 的系統(tǒng)轉(zhuǎn)變?yōu)檫\行 32 位 Windows 應(yīng)用程序的系統(tǒng)而廣受贊譽(yù)。Windows Server 產(chǎn)品組副總裁 David Thompson 于 1990 年加入 Microsoft,并在當(dāng)年晚些時候加入 NT 團(tuán)隊之前領(lǐng)導(dǎo)了公司 LAN Manager 項目的高級開發(fā)組。在那里,湯普森指導(dǎo)了 NT 網(wǎng)絡(luò)子系統(tǒng)的開發(fā),確保該產(chǎn)品不僅適用于 Microsoft 的產(chǎn)品,還適用于外部世界。

這就是一切的開始。

NT團(tuán)隊抵達(dá)微軟

“我們在 1988 年 11 月作為一個團(tuán)隊聚集在一起,”Lucovsky 告訴我們,并指出 NT 團(tuán)隊的首要任務(wù)是獲得開發(fā)機(jī)器,這些機(jī)器是 [當(dāng)時] 頂級的 25 MHz 386 PC 和 110 MB硬盤驅(qū)動器和 13 MB RAM。“它們貴得離譜,”他笑著說。開發(fā)的前兩周相當(dāng)平靜,NT 團(tuán)隊使用 Microsoft Word 創(chuàng)建原始設(shè)計文檔。


“最初,我們將 NT 定位到 Intel i860(代號為‘N-Ten)’,這是一款嚴(yán)重落后于計劃的 RISC 處理器。因為我們內(nèi)部沒有任何 i860 機(jī)器可以測試,我們使用了一個i860 模擬器。這就是我們稱它為 NT 的原因,因為它適用于‘N-10’。”

-Mark Lucovsky
杰出工程師
Windows Server 架構(gòu)師

最后,是時候開始編寫一些代碼了?!拔覀冊?1988 年 12 月中旬左右檢查了第一個代碼片段,”Lucovsky 說,“到 1 月,我們在英特爾 i860(代號為“N-Ten”)的模擬器上有了一個非常基本的系統(tǒng)啟動。”?事實上,這就是 NT 真正得名的地方,Lucovsky 透露,并補(bǔ)充說,“新技術(shù)”這個綽號是在最初的 NT 團(tuán)隊成員罕見的產(chǎn)品營銷突飛猛進(jìn)之后添加的?!白畛酰覀儗?NT 定位到 Intel i860,這是一款 RISC 處理器,它遠(yuǎn)遠(yuǎn)落后于計劃。因為我們沒有任何內(nèi)部 i860 機(jī)器可以測試,所以我們使用了 i860 模擬器。這就是我們稱之為 NT 的原因,因為它適用于‘N-10’?!?/p>


到 1989 年 4 月,新命名的 NT 團(tuán)隊已經(jīng)在模擬器上啟動并運行了一個基本的內(nèi)核模式系統(tǒng)?!拔覀儚?DEC 的五個人和一個來自‘外部’(即微軟)的人開始,一個叫Steve Wood 的人,”Lucovsky 說.?“整個夏天,我們都在一小群人中呆了很長時間。我們想,‘構(gòu)建操作系統(tǒng)有多難?’?并計劃用 18 個月來構(gòu)建 NT。但我們忘記了一些重要的東西——用戶模式、網(wǎng)絡(luò)等等?!?/p>

到 1989 年底,NT 集團(tuán)開始壯大。他們增加了一個正式的網(wǎng)絡(luò)團(tuán)隊,并將安全團(tuán)隊擴(kuò)大到一個人之外,順便說一下,這個人以前也曾被文件系統(tǒng)和本地化開發(fā)所累?!拔覀冊诘谝荒暝黾拥?50 人左右,”Lucovsky 說?!耙荒曛畠?nèi),我們終于有了第一個功能性的 i860 原型,所以我們可以使用它們而不是模擬器。我們開始研究上下文切換時間,以了解它的性能如何。幾乎立即變得顯而易見i860 永遠(yuǎn)不會成功。所以我們開始研究 MIPS 架構(gòu),這是另一種 RISC 設(shè)計。

1989 年 12 月,NT 團(tuán)隊決定放棄 i860,轉(zhuǎn)而瞄準(zhǔn) MIPS R3000 芯片。“在兩三個月內(nèi),我們就可以在 Big Endian 模式下在真實硬件上啟動 NT,”Lucovsky 告訴我們,“我們的架構(gòu)確實得到了回報。我們將 NT 設(shè)計為可移植的,我們證明它幾乎可以立即運行轉(zhuǎn)移到 MIPS。我們做出改變沒有太多的痛苦?!?/p>

這時候,NT 團(tuán)隊開始迅速擴(kuò)張,現(xiàn)在大部分成員都來自微軟的行列。一旦創(chuàng)建了一種新的圖形制作風(fēng)格,圖形團(tuán)隊就得到了極大的擴(kuò)展。他們還啟動了一個 NT 端口到英特爾 i386,這是當(dāng)時主流的 PC 處理器,但 Lucovsky 解釋了為什么他們最初沒有針對 i386 對團(tuán)隊很重要?!拔覀儠簳r遠(yuǎn)離 386,以免陷入架構(gòu)中,”他說?!拔覀儾幌胧褂貌豢梢浦残约僭O(shè)?!?他說,如果他們從第一天起就瞄準(zhǔn)英特爾的批量芯片,他們最初會有一個性能更高的系統(tǒng),但從長遠(yuǎn)來看,它會傷害 NT。

NT 成為 Windows NT

“到 1990 年春天,我們讓 MIPS 版本步履蹣跚,我們認(rèn)真地開始了 386 版本,”Lucovsky 說?!斑@是又一次巨大的增長突飛猛進(jìn)。”?那年五月,微軟發(fā)布了 Windows 3.0,突然間,全世界都注意到了它。Windows 取得了巨大的成功,并且是基于 PC 的圖形計算的明顯未來?!拔覀冮_始研究 Windows 3.0 并說,'如果我們開發(fā) 32 位版本的 Windows 而不是 OS/2 會怎么樣?'”Lucovsky 指出,隨口拋出了下一個十年計算的關(guān)鍵問題?!八膫€人——Steve Wood、Scott Ludwig、圖形引擎組的一個人和我自己——研究了 16 位 Windows API 并想出了將它們擴(kuò)展到 32 位需要什么。我們花了一個月的時間半準(zhǔn)備 API 集,

新 API(最終命名為 Win32)的主要特征是,雖然它是一個新 API,但它的外觀和行為與 16 位 Windows API 一樣,讓開發(fā)人員可以輕松遷移到新系統(tǒng)并移植他們的應(yīng)用程序。“我們使將 16 位應(yīng)用程序非常容易地轉(zhuǎn)移到 NT 成為可能,”Lucovsky 說,“這些應(yīng)用程序可以利用 NT 的獨特功能,例如更大的地址空間。我們還添加了新的 API,這些 API 不是在 16 位版本中。我們添加了主要的新功能來完善 API,使其成為一個完整的操作系統(tǒng) API,但我們使用的是新興的 Windows 程序員群體所熟悉的風(fēng)格?!?/p>

微軟內(nèi)部的反應(yīng)是立竿見影的?!八麄兿矚g它,”他說,“當(dāng)他們看到它是多么容易時。它基本上是類固醇的 Windows,而不是 OS/2,后者使用完全不同的編程模型?!?然而,使 NT 成為 32 位 Windows 版本而不是 OS/2 產(chǎn)品會引入新問題,但并非所有問題都是技術(shù)問題。Microsoft 必須獲得 ISV 和 OEM 的批準(zhǔn),當(dāng)然還要提醒 IBM 這一變化。“我們與 IBM 進(jìn)行了 ISV 預(yù)覽,并制作了大約 20 張幻燈片,然后我們說,‘看,這就是我們要做的?!?起初,他們認(rèn)為 Win32 是 OS/2 的奇特名稱。然后你可以從他們的臉上看到:‘等一下,這不是 OS/2?!?/p>

放棄 OS/2 for Windows 的決定永遠(yuǎn)破壞了兩家公司之間的關(guān)系?!暗覀兊玫搅诵姓鷾?zhǔn),并啟動了移植,”Lucovsky 說?!耙虼耍覀儧]有為 NT 開發(fā) OS/2 子系統(tǒng),而是選擇了 Win32?!?他說,在那一刻,產(chǎn)品變成了 Windows NT。


“我們的核心架構(gòu)是如此堅固,以至于我們能夠?qū)?NT 從 1990 年的 386-25 發(fā)展到今天的嵌入式設(shè)備、64 路、64 位多處理器機(jī)器和價值 1000 美元的橫向擴(kuò)展服務(wù)器刀片?!?/h1>

-David Thompson
副總裁
Windows Server 產(chǎn)品組

NT 的模塊化架構(gòu)也在這一變化中得到了回報?!坝捎谖覀兊奈?nèi)核架構(gòu),內(nèi)核與 POSIX 和 Win32 等應(yīng)用程序環(huán)境分離,我們不必更改內(nèi)核或開始新的編程工作,”Lucovsky 告訴我們?!罢{(diào)度程序的核心內(nèi)容無需更改。我們在兩周內(nèi)啟動并運行了 C 命令行應(yīng)用程序。那是 1990 年 9 月?!?/p>


Thompson 詳細(xì)闡述了 NT 基金會的重要性?!拔覀兊暮诵募軜?gòu)非常堅固,以至于我們能夠?qū)?NT 從 1990 年的 386-25 發(fā)展到今天的嵌入式設(shè)備、64 路、64 位多處理器機(jī)器和價值 1000 美元的橫向擴(kuò)展服務(wù)器刀片。我們已經(jīng)能夠在其上提供一整套服務(wù)?!?/p>

1990 年 9 月,確實是 Windows NT 的轉(zhuǎn)折點。并非巧合的是,之前領(lǐng)導(dǎo)微軟 LANMAN for OS/2 3.1 高級開發(fā)團(tuán)隊的 Dave Thompson 也加入了 NT 團(tuán)隊,這并非巧合?!拔覀兏淖兞朔较?,”湯普森告訴我們,“團(tuán)隊從 28 人增加到大約 300 人。我們有了第一個真正的產(chǎn)品計劃。”

RTM及以后

Windows NT 的第一個版本 Windows NT 3.1 于 1993 年 7 月發(fā)布,其名稱與當(dāng)時的 16 位 Windows 產(chǎn)品的版本號相匹配。該 NT 版本具有桌面和服務(wù)器版本以及域形式的分布式安全性。從那時起,NT 團(tuán)隊致力于一系列版本的發(fā)布,所有版本都是在相同的底層代碼基礎(chǔ)上開發(fā)的。

下一個版本 Windows NT 3.5 代號為 Daytona,于 1994 年 9 月發(fā)布。“Daytona 是一個非常有價值的項目,”Thompson 說?!拔覀儗W⒂诔叽绾托阅軉栴},以及‘完成’許多 3.1 的首次發(fā)布功能。Daytona 還進(jìn)行了重大的功能改進(jìn)和增強(qiáng)?!?Daytona 的原始主題是尺寸、性能、壓縮和 Netware 兼容性。其中兩個目標(biāo)是當(dāng)時的標(biāo)志性目標(biāo):DoubleSpace 式壓縮是 1990 年代初期的熱門話題,因為磁盤空間非常寶貴,而 Netware 是當(dāng)時占主導(dǎo)地位的網(wǎng)絡(luò)操作系統(tǒng)?!拔覀冏罱K放棄了壓縮,”Thompson 說,“但 Netware 端口具有戰(zhàn)略意義。Novell 對 NT 桌面持矛盾態(tài)度——他們沒有”?不知道他們是否想建立一個客戶。我們提供了幫助,但他們一直在胡鬧……好吧。我們自己做了。它只是把他們吹走了。我們的是更好的 Netware 客戶端,客戶使用我們的多年,甚至在他們最終使用了一個之后也是如此。該客戶端支持 NT 桌面,因為 Netware 是市場上流行的服務(wù)器。否則我們將無法銷售 NT 臺式機(jī)?!?/p>


NT 時間線

1988 年 10 月 31 日:David Cutler 到達(dá) Microsoft
1988 年 11 月:NT 項目開始工作 1993 年
7 月 27 日:Windows NT 3.1 發(fā)布 1994 年
9 月 21 日:Windows NT 3.5 發(fā)布 1995 年 5
月 30 日:Windows NT 3.51 發(fā)布 1996
年 7 月 31 日: Windows NT 4.0 發(fā)布
2000 年 2 月 17 日:Windows 2000 發(fā)布
2001 年 10 月 25 日:Windows XP 發(fā)布 2003 年
4 月 24 日:Windows Server 2003 發(fā)布

Daytona 還受益于新的編譯器技術(shù),它使 Microsoft 能夠壓縮代碼大小,并在比原始版本低端的系統(tǒng)上啟用逼真的 NT 桌面。“結(jié)果是可衡量的,”湯普森說。


Windows NT 3.51 被稱為 Power PC 版本,因為它是圍繞 NT 的 Power PC 版本設(shè)計的,它最初應(yīng)該在 3.5 版中發(fā)布。(up注:存在PowerPC版本的NT3.5)但 IBM 不斷推遲 PowerPC 芯片的發(fā)布,需要單獨的 NT 版本?!癗T 3.51 是一個非常沒有回報的版本,”湯普森說,并將其與 Daytona 進(jìn)行了對比?!癉aytona 完成后,我們基本上坐了 9 個月來修復(fù)錯誤,等待 IBM 完成 Power PC 硬件。但正因為如此,NT 3.51 是一個可靠的版本,我們的客戶喜歡它?!?NT 3.51 最終于 1995 年 5 月發(fā)貨。

恰好,下一個 NT 版本,Windows NT 4.0,被稱為Shell Update Release(SUR),這是另一個具有挑戰(zhàn)性的任務(wù),將再次證明 NT 模塊體系結(jié)構(gòu)的好處?!拔覀兿霕?gòu)建一個具有 Win95?UI但使用 NT 技術(shù)的桌面,”Lucovsky 告訴我們。“我們最終移動了 Win32 GUI 組件并將它們作為進(jìn)程內(nèi)驅(qū)動程序托管。性能是一個副作用。我們在使用該 API 并在不同進(jìn)程中運行它時遇到了問題。因此將代碼移動到與運行時相同的上下文中“解決了很多問題。我們不必為 GDI 和 USER 進(jìn)行死鎖檢測。這是一項重要的工作,但它解決了很多令人頭疼的問題。”?NT 4.0,該產(chǎn)品的分水嶺版本,于 1996 年 7 月發(fā)布。

無處不在的 Windows

在下一個版本中,Windows NT 將失去 NT 名稱并簡單地成為 Windows。Thompson 說這個決定來自營銷團(tuán)隊。“Windows [9x] 營銷團(tuán)隊的一個人轉(zhuǎn)向 NT 營銷,他說我們應(yīng)該在所有地方使用 Windows。起初我們都對名稱更改感到不舒服,因為 NT 享有良好的聲譽(yù)。但由于 Windows 的可靠性推動2000 年,人們開始談?wù)?Windows 2000 比‘那些舊的 NT 東西’好多少,即使它是相同的體系結(jié)構(gòu)。所以它的發(fā)生實際上有點偶然?!?順便說一句,Windows 2000 沒有代號,“因為 Jim Allchin 不喜歡代號,”Thompson 說。

自 Windows 2000 完成以來,Windows 團(tuán)隊做出的最大決定是將客戶端和服務(wù)器版本與 Whistler 產(chǎn)品分開,即 Windows XP 和 Windows Server 2003。穩(wěn)固,而不是現(xiàn)在,”湯普森告訴我們。“桌面軟件必須與 [PC 制造商] 銷售周期同步發(fā)貨。服務(wù)器沒有假期高峰?!?

?

第二部分:開發(fā) Windows

NT 系列操作系統(tǒng)(從 Windows NT 發(fā)展到 Windows 2000、XP,以及現(xiàn)在的 Windows Server 2003)的一個要素多年來一直保持不變,盡管細(xì)節(jié)發(fā)生了巨大變化,那就是構(gòu)建過程.?在 Microsoft 內(nèi)部的某個深處,幾乎每天,至少有一個 Windows 產(chǎn)品被編譯或構(gòu)建為可由開發(fā)人員或開發(fā)團(tuán)隊進(jìn)行內(nèi)部測試的可執(zhí)行代碼。對于 Windows Server 2003,這個過程在微軟龐大的雷德蒙園區(qū)的 26 號樓中完成,在幾位工程師的注視下,成排的 PC 和 CD 復(fù)制機(jī)幾乎在不停地運轉(zhuǎn)。


“Windows 團(tuán)隊中有 5000 名開發(fā)人員為 Windows Server 2003 生成了超過 5000 萬行代碼。這是一項艱巨的任務(wù),是有史以來最大的軟件工程任務(wù)。沒有其他軟件項目像這樣。”

-Mark Lucovsky
杰出工程師
Windows Server 架構(gòu)師

NT 的細(xì)節(jié)——對不起,Windows——自 1980 年代末該項目首次啟動以來,開發(fā)已經(jīng)發(fā)生了巨大變化?!盎氐皆缙冢覀儚?6 個人開始,”微軟杰出工程師和 Windows Server 架構(gòu)師 Mark Lucovsky 告訴我?!艾F(xiàn)在 Windows 團(tuán)隊有 5000 名成員,外加另外 5000 名合作伙伴,為 Windows Server 2003 生成了超過 5000 萬行代碼。讓所有這些人朝著同一個方向前進(jìn),編寫代碼,是一項艱巨的任務(wù)。構(gòu)建他們的工作成果,將其編譯并鏈接到可執(zhí)行文件和構(gòu)成 Windows CD 的其他組件是一個 12 到 13 小時的過程,每周每天都要完成。這是有史以來最大的軟件工程任務(wù)。



??“當(dāng)我們轉(zhuǎn)動曲柄時,我們就編譯了整個東西,”他說?!拔覀冞€必須能夠在任何時間點重現(xiàn)系統(tǒng)。所以開發(fā)人員簽入代碼,我們按下一個按鈕,然后系統(tǒng)就出來了。我們應(yīng)該能夠在未來三年重現(xiàn)那個[構(gòu)建] ,使用我們當(dāng)時使用的各種工具、編譯器和腳本?!?/p>


微軟 Windows Server 產(chǎn)品組副總裁 David Thompson 詳細(xì)闡述了這一過程?!斑@里的關(guān)鍵是我們多年來建立了這個系統(tǒng),在三個方面推進(jìn)它,”他說。“首先是產(chǎn)品本身。其次是我們設(shè)計產(chǎn)品的方式。第三是我們與越來越廣泛的客戶互動的方式。產(chǎn)品演變非常簡單。我們現(xiàn)在使用的源代碼控制系統(tǒng)是新的,因為我們確實通過 Windows 2000 擴(kuò)大了以前版本的規(guī)模。Mark [Lucovsky] 親自領(lǐng)導(dǎo)新系統(tǒng)的開發(fā)并在 2000 年后推出。我們從一些獲得的技術(shù)開始。我們現(xiàn)在確實有一個分階段構(gòu)建 [for the第一次]。但每天 [staged builds] 都會匯總到總構(gòu)建中。

隨意吃吧:微軟提供狗糧

Lucovsky 回憶起早期的事情,當(dāng)時第一個 NT 原型是在他的辦公室里建造的,只有一個人監(jiān)督這個過程。當(dāng)新構(gòu)建準(zhǔn)備就緒時,那個人會簡單地向 NT 團(tuán)隊發(fā)送一封電子郵件,然后大約 50 個人會“吃他們自己的狗糧”,在他們自己的系統(tǒng)上測試構(gòu)建并運行壓力測試。Lucovsky 說:“我以前只是在大樓里走來走去,寫下我們發(fā)現(xiàn)的問題?!?“這就是 NT 3.51 之前的情況?,F(xiàn)在我們有 7 個構(gòu)建實驗室。Dave [Thompson] 為他監(jiān)督的 1200 人擁有自己的 [構(gòu)建實驗室]。主要構(gòu)建實驗室推出了官方構(gòu)建,其中有數(shù)千人每天都有人。通知是自動的,并使用整個校園的骨干服務(wù)器分多個階段發(fā)送出去。這一切都是自動化的。

“最初,我們有一天中的特定時間 [up to which time] 我們可以簽入代碼,然后我們就停止了,”Thompson 說?!霸谀侵螅覀儐恿诵孪到y(tǒng)并構(gòu)建了新系統(tǒng)。最終,我們將團(tuán)隊擴(kuò)大到 85 人,并將流程序列化以實現(xiàn)更多控制。[NT 架構(gòu)師] Dave Cutler——我們都為他工作——負(fù)責(zé)構(gòu)建實驗室一個星期左右,他要求人在實驗室的白板上親自寫下他們的簽到要求。他把它壓在一個模具里。我也在里面坐了一會兒。有一天我接受了85個簽到,到那時我們擁有的最多。現(xiàn)在我們每天可以接收 1000 多個。這是一個完全不同的規(guī)模。甚至白板都是電子的——實際上是基于網(wǎng)絡(luò)的——現(xiàn)在?!?/p>


“有一天,我在 NT 上接受了 85 次 [代碼] 簽到,這是我們當(dāng)時最多的一次?,F(xiàn)在我們每天接受超過 1000 次。這是一個完全不同的規(guī)模。甚至白板都是電子的——Web基于,實際上——現(xiàn)在?!?/h1>

-David Thompson
副總裁
Windows Server 產(chǎn)品組

“沒有其他像這樣的軟件項目,”Lucovsky 說,“但是 [多年來] 保持不變的一件事是構(gòu)建 [Windows] 需要多長時間。無論是哪一代產(chǎn)品,都需要 12 個小時編譯和鏈接系統(tǒng)?!?即使這些年來處理能力有所提高,Windows 也已發(fā)展到與之相匹配,并且開發(fā)過程變得更加復(fù)雜,因此 Microsoft 將更多的代碼分析作為日常構(gòu)建的一部分?!皹?gòu)建實驗室中的 CPU 會持續(xù) 12 個小時,”他說?!白?Windows 2000 以來,我們已經(jīng)調(diào)整了該過程?,F(xiàn)在,我們將源 [代碼] 樹分解為獨立的源樹,并使用新的構(gòu)建環(huán)境。這是一個多機(jī)環(huán)境,可以讓我們更快地轉(zhuǎn)動曲柄。


湯普森告訴我,對他們的代碼進(jìn)行內(nèi)部測試一直是 NT 團(tuán)隊的一項關(guān)鍵要求,也是微軟文化的一個組成部分。“這是我們一直在做的事情之一,可以追溯到最早的時候,”他說。“實際上,我們今天只是在開玩笑,談?wù)撐覀兊碾娮余]件程序。當(dāng)我們第一次在桌面 [PCs] 上運行 NT 時,我們的電子郵件程序不會運行,因為它是 DOS 應(yīng)用程序,而且我們沒有DOS 兼容模式仍然有效。所以我將我們的內(nèi)部電子郵件應(yīng)用程序 WizMail 移植到了 Win32,這樣我們就可以只使用 NT 系統(tǒng)了。”

“當(dāng)你被迫自己使用系統(tǒng)時,你會看到錯誤和性能問題,”湯普森補(bǔ)充道?!叭缓竽銜フ覇栴}的負(fù)責(zé)人,并要求他們解決問題?!?Thompson 加入 NT 團(tuán)隊時的主要職責(zé)之一是將文件服務(wù)器交付給 NT,以便它可以用作源代碼服務(wù)器。這需要一點信心,特別是因為 NT 當(dāng)時正在使用 NTFS 文件系統(tǒng)的原型版本?!熬W(wǎng)絡(luò)組非常重視這件事,”他說,“并確保它已準(zhǔn)備好進(jìn)行內(nèi)部部署。一旦推出,我們就不會退縮。顯然,如果文件服務(wù)器出現(xiàn)故障,那將是一場災(zāi)難。所以它對我們來說是一個重要的時刻,克服了困難?!?/p>

后來,隨著 Windows NT 4.0 開發(fā)的結(jié)束,Thompson 的團(tuán)隊開始研究 Active Directory (AD),這是 Microsoft 的第一個目錄服務(wù),它于 1996 年在專業(yè)開發(fā)人員大會 (PDC) 上公開亮相。“在 AD 之前,我們有 NT 域用于我們的基礎(chǔ)設(shè)施,”他說,“而且轉(zhuǎn)向 AD 更加復(fù)雜。我們很早就部署了 AD,首先是與我們的團(tuán)隊,然后是更廣泛的 Windows 組。然后我們在 1999 年 4 月在雷德蒙德園區(qū)AD 上投入使用?!?/p>

Thompson 說,微軟通過周密的計劃,分階段向公司的其他部門推出了 AD。去年,校園采用了 Windows Server 2003 的多林 AD 拓?fù)洹!皩τ谒谢A(chǔ)架構(gòu)服務(wù)器,我們總是在內(nèi)部進(jìn)行完整的部署,然后將其推送給 JDP(聯(lián)合開發(fā)合作伙伴),后者在 250 多個使用場景中對其進(jìn)行測試和部署。我們收到錯誤報告、功能反饋、以及真正證明產(chǎn)品的復(fù)雜場景測試?!?/p>

去年夏天,Windows Server 2003 在候選版本 1 (RC1) 階段達(dá)到了 99.995% 的可用性,當(dāng) RC2 于 2002 年 11 月推出時,Microsoft.com 網(wǎng)站已完全部署在 WinServer 2K3 上?!皟?nèi)部和密切客戶的大量使用是關(guān)鍵”Thompson 告訴我,“我們對現(xiàn)在的產(chǎn)品有了更成熟的看法 [與早期相比]。我們不僅在盒子里運送比特,而且還在運送范圍廣泛的補(bǔ)充工具,產(chǎn)品、服務(wù)和文檔。”?Thompson 解釋說,在 Outlook 11、Exchange Server 2003(“Titanium”)和 Windows Server 2003 上工作的團(tuán)隊都更加緊密地合作,以實現(xiàn)滿足客戶需求的完整端到端方案。過去,這些產(chǎn)品往往是比較獨立開發(fā)的。

有人為你服務(wù)嗎?產(chǎn)品維護(hù)一覽

“多年來,服務(wù)肯定已經(jīng)成熟,”Lucovsky 補(bǔ)充道?!拔覀冏隽撕芏喙ぷ鱽泶_定每種產(chǎn)品的服務(wù)包、修補(bǔ)程序、[產(chǎn)品] 開發(fā)分支、測試版和 JDP 客戶的正確組合?!?(有關(guān)開發(fā)分支的更多信息可以在下一節(jié)中找到。)

“我們確實延長了我們?yōu)楫a(chǎn)品提供服務(wù)的時間,”湯普森說,因為當(dāng)微軟推出服務(wù)器產(chǎn)品時,客戶可能會使用它長達(dá)十年。所謂的批量或主流服務(wù)持續(xù)七年,但隨著時間的推移,該公司不斷改進(jìn)其提供更新和修復(fù)的方式。首先,Microsoft 必須確保將錯誤修復(fù)應(yīng)用于所有適用的開發(fā)分支?!拔覀冊诳焖俳鉀Q安全漏洞方面的工作意味著我們現(xiàn)在會盡可能積極地發(fā)布熱修復(fù)程序,”Thompson 指出?!巴瑯樱^去 [服務(wù)包] 是靈活的,這是我們可以提供功能和修復(fù)的一種方式。但客戶明確表示他們只需要 [服務(wù)包中的錯誤修復(fù)]。這導(dǎo)致了一個有趣的問題不過,問題是:究竟是什么,是一個錯誤?缺少的功能是錯誤嗎?客戶自己往往有不同的看法。但是 [Windows] NT 4 SP3 是 [服務(wù)包中的主要新功能] 的終結(jié)。

主干服務(wù)的一個副作用是 Microsoft 必須為其最新操作系統(tǒng)的每個排列維護(hù)測試環(huán)境。這意味著 Windows 2000 的最終版本或“黃金”版本是一個分支,Windows 2000 SP1 是另一個分支,Windows 2000 SP2 是另一個分支,依此類推。“并且測試對于提供服務(wù)包也很重要。在我們的 IT 組織中,我們維護(hù)一個 [單獨的] Windows 2000 基礎(chǔ)結(jié)構(gòu),這樣我們就可以對 Windows 2000 系統(tǒng)進(jìn)行實時部署并在生產(chǎn)環(huán)境中對其進(jìn)行測試,”Thompson 說?!斑@是一筆很大的開支,但值得?!?/p>

Hot-fixes 被視為窄版本,應(yīng)該只修復(fù)一個特定的問題而不影響系統(tǒng)的其他部分。湯普森說,客戶通常只應(yīng)在受到修復(fù)所解決問題的影響時才應(yīng)用熱修復(fù)。但是,安全修復(fù)完全是另一個問題?!拔覀兿M覀兯械目蛻舳及惭b安全修復(fù)程序,”他說,“所以我們對它們非常小心,并進(jìn)行正確的測試。它們是通用部署版本 (GDR),就像服務(wù)包一樣?!?/p>

樹干、樹木和樹枝

如前所述,各種 Windows 版本需要一系列產(chǎn)品開發(fā)代碼分支,隨著時間的推移,每個不同的 Windows 產(chǎn)品都從主要開發(fā)“主干”中“分支”出來。因此,每個 Windows 版本都建立在上一個版本的基礎(chǔ)上,并且至少有兩個不同的版本——Windows Server 2003 和 Longhorn,在撰寫本文時——正在同時開發(fā)中。因為WinServer 2K3是從XP中分離出來的,服務(wù)器產(chǎn)品基本上是建立在XP之上的。Longhorn 是幾年后將接替 XP 的客戶端版本,它實際上是在服務(wù)器分支代碼庫的基礎(chǔ)上構(gòu)建的,而不是您可能期望的 XP。

“這樣做的機(jī)制令人頭腦麻木,”Lucovsky 告訴我。“我們有一個當(dāng)前 Windows 版本的主要代碼分支,該分支成為熱修復(fù)和下一個服務(wù)包的源代碼庫。一旦我們吐出一個服務(wù)包,它就成為一個分支,現(xiàn)在我們有兩個分支必須測試熱修復(fù)和服務(wù)包。我們不能告訴客戶先安裝,比如說,SP1,然后再做這個熱修復(fù)。每個 [Windows] 版本都會這樣,所以有些有 2 或 3 個服務(wù)包、許多修補(bǔ)程序和許多安全修復(fù)程序。其中每一個都是 5000 萬行代碼的托管集合。這是一個相當(dāng)大的會計問題。”

此外,對于活躍開發(fā)中的每個主要分支,微軟還有大約 16 個團(tuán)隊級分支,以允許團(tuán)隊級獨立/并行,同時在一個共同的主線分支上工作。每個團(tuán)隊維護(hù)一個完整的構(gòu)建實驗室環(huán)境,該環(huán)境構(gòu)建一個完整的版本,包括團(tuán)隊的最新更改,并定期將他們經(jīng)過測試的更改集成回關(guān)聯(lián)的主分支,以便其他人可以看到他們經(jīng)過測試的工作。

開戰(zhàn):在作戰(zhàn)室中對錯誤進(jìn)行分類

在向 RTM 的瘋狂沖刺期間,該項目的核心是作戰(zhàn)室,作戰(zhàn)團(tuán)隊每天開會 2 到 3 次,每周開會 5 天——現(xiàn)在 Windows Server 處于開發(fā)的最后幾天,每周開會 6 天。湯普森告訴我們:“作戰(zhàn)小組每天都會檢查報告和指標(biāo),以查看項目的進(jìn)展情況,”他的解釋很低調(diào),但幾乎沒有讓我們?yōu)樽鲬?zhàn)室的恐怖做好準(zhǔn)備?!艾F(xiàn)在一切都是自動化的,但那時候我們進(jìn)來并傳遞紙質(zhì)報告,向我們展示我們的表現(xiàn)。房間里可能有 15 到 20 人?,F(xiàn)在情況大不相同了?!?/p>

確實是。

對于 Windows Server 2003,作戰(zhàn)室由 Todd Wanke 管理,我們最終發(fā)現(xiàn)他是一個非常討人喜歡的人。然而,在長達(dá)一個小時的作戰(zhàn)室會議中,Wanke 以鐵腕統(tǒng)治,到處征求可信賴的副手的建議,但毫無耐心地向前推進(jìn)流程出席會議。

這是它的工作原理。每天早上 9 點 30 分,來自各個 Windows Server 2003 功能團(tuán)隊的代表都會開會,對錯誤進(jìn)行分類。他們進(jìn)入 26 號樓的 3243 號會議室——其外部標(biāo)志被寫著“爭論診所”的手寫字條遮住了。房間中央有一張大會議桌,但大多數(shù)與會者必須站著,屋子里總是擠滿了人。在我們參加 War Team 會議的那天——第一次允許任何局外人查看 Windows Server 的內(nèi)部密室,并且在整個 NT 和 Windows 的整個開發(fā)過程中也是第二次——團(tuán)隊在大約 50 個錯誤中取得了進(jìn)展,其中大部分是簡單的品牌問題,盡管我同意不討論當(dāng)天討論的任何錯誤的細(xì)節(jié)。

每個錯誤都記錄在一個令人難以置信的錯誤跟蹤系統(tǒng)中,每個錯誤都伴隨著一系列令人眼花繚亂的信息,包括錯誤是如何發(fā)現(xiàn)的、哪些客戶(如果有的話)受到了影響,以及迄今為止為消除該問題所做的努力的完整歷史記錄。Wanke 迅速解決了這些錯誤,召集了特定功能團(tuán)隊的成員來解釋修復(fù)的進(jìn)展情況。如果 IIS 中存在一個或多個錯誤,例如,IIS 團(tuán)隊的代表需要在場,不僅要解釋錯誤的優(yōu)點,還要解釋客戶是否受到影響,修復(fù)可能如何影響系統(tǒng)的其他部分,以及多久會修好。在開發(fā)過程的后期,錯誤通常會傳遞或“踢”到下一個 Windows 版本——Longhorn——如果它們還不夠嚴(yán)重的話。

作戰(zhàn)室的氣氛令人生畏,我大部分時間都呆在房間里,一言不發(fā),幾乎畏縮不前,祈禱萬克不要把注意力轉(zhuǎn)向我或我的團(tuán)隊。激烈的爭論和咒罵在作戰(zhàn)室中是常有的事,而對你的錯誤沒有控制的懲罰是來自其他團(tuán)隊成員的迅速而殘酷的嘲笑。最惡毒的待遇自然是留給那些愚蠢到可以取消作戰(zhàn)室會議的人。在我參加的那天,一個特性小組將其四個錯誤提交給了 Longhorn,因為它們沒有出現(xiàn)在作戰(zhàn)室中。當(dāng)有人爭辯說應(yīng)該再給他們一天時間時,Wanke 只是說,“F#$% 他們。如果有那么重要,他們早就在這里了。它在 Longhorn。下一個漏洞。”

“如果人們不在[作戰(zhàn)室],我就會進(jìn)入他們。我就是踢屁股的人?!?/h1>

-Todd Wanke
產(chǎn)品經(jīng)理
Windows Server 發(fā)布管理

長達(dá)一個小時的會議結(jié)束后,我們坐下來與私下里幾乎完全變了一個人的萬科交談。“托德,你召開了一場卑鄙的會議,”我們坐下時我告訴他。Wanke 的背景包括曾在 NCR、America Honda 任職,以及作為美國政府承包商的一項未指明且聽起來神秘的安全相關(guān)任務(wù),他在 Microsoft 工作了將近八年。在加入 Windows 團(tuán)隊之前,Wanke 是 Microsoft.com 網(wǎng)站的原始架構(gòu)師之一,在整個 Microsoft 建立互聯(lián)網(wǎng)信仰之前,他在公司擔(dān)任了三四年的“互聯(lián)網(wǎng)人”。在我們的會面中,Wanke 解釋了他是如何找到新工作的,他現(xiàn)在在微軟做什么,以及 War Team 是如何運作的。

“我的工作是管理與運送 Windows 相關(guān)的日常運營,”他說?!拔邑?fù)責(zé) 8000 到 10,000 名開發(fā)人員、項目經(jīng)理和測試人員,我必須確保他們每天都在做正確的事情?!?/p>

他說,War Team 由 Windows 團(tuán)隊中非常廣泛的人員組成,他們都負(fù)責(zé)項目的不同領(lǐng)域。他們是負(fù)責(zé) TCP-IP 和其他低級技術(shù)等事情的測試主管、一些開發(fā)人員、每天進(jìn)行構(gòu)建的人員、進(jìn)行構(gòu)建驗證測試的人員等等。“項目的每個領(lǐng)域都有代表,”他告訴我們?!癧Windows Server 團(tuán)隊] 的日常行軍命令來自 War Team,也來自我發(fā)出的廣泛郵件。這些電子郵件幾乎都是微軟機(jī)密,甚至更高,非常機(jī)密的電子郵件,只發(fā)送給一小群人。”

正如我們所見,作戰(zhàn)室是一個非常結(jié)構(gòu)化的事件,每天在同一時間發(fā)生,持續(xù)整整一個小時。團(tuán)隊成員每天查看同一個錯誤系統(tǒng),并且經(jīng)常檢查相同的錯誤,直到它們被修復(fù)?!叭绻悴辉谀抢?,那就不好了,”他說?!拔④浫藢Ξa(chǎn)品有強(qiáng)烈的主人翁意識,他們希望確保正確的事情發(fā)生。但如果沒有人,我就會投入其中。我就是踢屁股的人?!?/p>

除了上午的作戰(zhàn)室會議外,Windows Server 團(tuán)隊還在下午 2 點到 3 點召開下午會議,如果需要,下午 5 點到 6 點再召開一次會議。每日構(gòu)建通常在 4:30 開始,但可以延遲到 6 點,因此最后一次會議讓團(tuán)隊有機(jī)會審查將添加到當(dāng)天構(gòu)建中的任何最終錯誤修復(fù)?!敖Y(jié)構(gòu)非常重要,”他說,“我們需要隨時了解構(gòu)建的位置。我們會查看構(gòu)建的質(zhì)量、各種壓力水平,以及所有在一夜之間運行的東西,任何我們認(rèn)為需要跟進(jìn)。我們會得到詳細(xì)的報告,并審查項目中的所有內(nèi)容?!?/p>

除了主作戰(zhàn)團(tuán)隊之外,每個功能團(tuán)隊都有自己的作戰(zhàn)室,因此每天可能會召開多達(dá) 50 場這樣的會議,每次都討論系統(tǒng)的一個特定組件。這些其他的作戰(zhàn)室會議每天早上 8 點召開。當(dāng) bug 修復(fù)通過本地 War Team 流程時,它會在 Wanke 的會議上介紹?!俺撬麄儨?zhǔn)備好修復(fù),否則他們不能進(jìn)入作戰(zhàn)室,”Wanke 說?!八麄儽仨殰?zhǔn)備好修理?!?因為沒有一個人做決定,所以有一個檢查和平衡系統(tǒng),每個錯誤修復(fù)在被引入構(gòu)建之前通過該系統(tǒng)。

構(gòu)建 Windows 的復(fù)雜性是驚人的?!盀榱撕喕虑?,假設(shè) Windows 包含 100,000 個文件,”他說。“通常,有七個源代碼倉庫,每個都包含所有源代碼的精確副本,但在這一點上,我們只剩下一個。每個開發(fā)組都有自己的倉庫,因此當(dāng)開發(fā)人員編寫修復(fù)程序時,他可以將其編譯到軟件倉庫中進(jìn)行測試。如果構(gòu)建在本地使用他的修復(fù)編譯,他們可以在那里測試它,然后將其簽入主構(gòu)建實驗室的主軟件倉庫中?!?/p>

當(dāng)然,并非每次構(gòu)建都成功。有時,Windows Server 會遇到 Microsoft 所說的“在地板上構(gòu)建”,當(dāng)修復(fù)程序破壞系統(tǒng)的其他部分時,導(dǎo)致構(gòu)建無法使用?!斑@太殘酷了,”萬克告訴我們?!按蠹s一年前的某個時候,我們有 7 天沒有構(gòu)建出來。我們不得不向公司的產(chǎn)品組主管發(fā)送電子郵件來解釋這個問題,”然后公司進(jìn)入了私有版本Defcon-5。“所有的危險信號都上升了,”他說?!霸陂_發(fā)人員中根深蒂固的是不要破壞構(gòu)建。他們進(jìn)行修復(fù),進(jìn)行伙伴構(gòu)建,然后將其簽入。但他們不能回家。我們已經(jīng)在凌晨 3 點發(fā)出呼叫,當(dāng)時構(gòu)建是壞了,找到壞掉它的開發(fā)商,然后讓他立即投入工作并立即修復(fù)它。開發(fā)人員每天 24 小時待命??隙ㄓ幸粋€升級過程。損壞的構(gòu)建被認(rèn)為是嚴(yán)重的 1 級問題?!?/p>

隨著 Windows Server 2003 開發(fā)周期的結(jié)束,錯誤數(shù)量急劇下降,過程每天都變得越來越簡單。然后微軟宣布更名?!拔覀冎荒芙邮苣莻€糟糕的決定,”他告訴我們?!八麄儜?yīng)該在六個月前就做到了。那時候,我們都認(rèn)為這是正確的做法。但在這個后期階段——他們請來了 [CEO] 史蒂夫·鮑爾默,與所有戰(zhàn)隊隊員討論我們?yōu)槭裁醋龅搅烁淖?。?Wanke 說,團(tuán)隊能夠修復(fù)系統(tǒng)中所有品牌圖形、文本和注冊表項的速度證明了公司修復(fù)錯誤的動態(tài)過程。問題是需要進(jìn)行幾千處更改,而這通常需要在產(chǎn)品的錯誤跟蹤系統(tǒng)中添加幾千條新條目?!?我出去挑選了團(tuán)隊中最好的三位開發(fā)人員,然后說,“去解決它吧?!?一位開發(fā)人員修復(fù)了 7,000 多個對 [Windows] .NET Server 的引用。就這么說吧,有我信任的人,也有我不信任的人。我告訴這些人,‘別告訴我你在做什么。去做就對了。'”

進(jìn)入最后階段

據(jù) Wanke 說,在我們參加 War Room 的那天,也就是 2003 年 1 月 21 日,Windows Server 2003 的錯誤率達(dá)到了“絕對歷史最低點”?!拔覀儽局軐㈥P(guān)閉該項目,”他說?!白龊昧?,我們要發(fā)貨了?!?那天,WinServer 2K3 只有幾個活躍的錯誤,其中至少四分之一到三分之一的錯誤是簡單的品牌問題。“假設(shè)有大約 150 個懸而未決的問題需要解決,”Wanke 告訴我們?!捌渲?,我們將修復(fù)大約 100 個。所有錯誤的嚴(yán)重程度都從 1 到 3,此外它們還獲得了優(yōu)先級評級。我們還有 [一些] 嚴(yán)重程度為 1 的錯誤需要修復(fù),而這些都必須是為我們準(zhǔn)備好發(fā)貨?!?/p>

萬科表示,服務(wù)器團(tuán)隊已經(jīng)修復(fù)了所有已知的安全漏洞?!拔覀儗Π踩械椒浅8吲d,”他說。“看到我們[在安全方面]所處的位置很有趣。我個人對其中的工作、修復(fù)和思考過程印象深刻。我們都認(rèn)為它非常安全。[Trustworthy Computing] 安全推動 [last年]對我們來說是一個重要的里程碑,因為它,一切都會變得更容易。對開發(fā)人員來說更容易,因為他們現(xiàn)在都有相同的心態(tài)和目標(biāo),關(guān)于最佳實踐的相同教育。過去有不同的方法論不同的群體。安全推動統(tǒng)一了它?,F(xiàn)在每個人都更容易溝通并看到最終目標(biāo)?!?/p>

隨著Windows Server 2003開發(fā)的完成,開發(fā)團(tuán)隊將進(jìn)入一個過渡期。首先,產(chǎn)品將進(jìn)入托管狀態(tài),構(gòu)建過程將被凍結(jié)。然后將該構(gòu)建部署在園區(qū)周圍,包括 Microsoft 的企業(yè)基礎(chǔ)設(shè)施?!斑@是最終版本,”Wanke 指出?!叭缓笪覀冏艘欢螘r間,在此期間沒有對產(chǎn)品進(jìn)行核心修復(fù)。”?他說,托管版本也將分發(fā)給測試人員和 JDP 成員?!?/p>

如果在托管期間確實出現(xiàn)任何問題,戰(zhàn)爭團(tuán)隊將根據(jù)具體情況決定是否修復(fù)錯誤。如果需要內(nèi)核修復(fù),將創(chuàng)建一個新版本,并重置托管。“對核心組件的更改可能會延遲 RTM,”Wanke 告訴我們。“我們在要求客戶之前運行它,并且必須在簽署之前運行它幾天。這是一個漫長的過程。”?在 Windows Server 2003 上工作的每個功能團(tuán)隊都必須在不重新啟動的情況下運行托管構(gòu)建 21 天,然后該構(gòu)建才能被宣布為黃金大師并發(fā)布到制造商。

但萬科并不擔(dān)心具體的時間安排,經(jīng)過多年的努力,結(jié)果終于成定局。他的團(tuán)隊現(xiàn)在正在準(zhǔn)備它的 RTM 派對——如果天氣允許,就在校園外的眾多足球場之一;如果不是在車庫里——Wanke 還有其他與 RTM 相關(guān)的問題,他必須解決,包括發(fā)射場。“我正在與發(fā)射團(tuán)隊合作預(yù)訂場地,”他說?!八麄冃枰?95% 的置信日期?!?他們還與 OEM 商談以確保系統(tǒng)已準(zhǔn)備好發(fā)布,與 ISV 商談,與標(biāo)志和海報的營銷人員商談,等等?!岸椅冶仨毚_保 8000 名應(yīng)得船舶獎的人獲得一艘,”他補(bǔ)充說。

最終,所有這些奉獻(xiàn)將產(chǎn)生微軟有史以來最安全、最可靠的操作系統(tǒng),萬科對這個項目的貢獻(xiàn)怎么強(qiáng)調(diào)都不為過。“在一年半的時間里,我基本上沒有錯過任何一支戰(zhàn)隊,出于個人原因給予或花費一天左右的時間,”他說,“每天,每周六天,在計劃結(jié)束時。我們讓人們在星期六帶他們的孩子來,這是一個家庭日。星期六不允許說臟話。但你仍然必須在那里,我們?nèi)匀槐仨毥ㄔ??!?/p>

那么 Wanke 會在未來的 Windows 版本上運行 War Team 嗎?

“不可能,”他笑著說?!皼Q不?!?/p>


第三部分:測試 Windows

隨著三年前 Windows 2000 開發(fā)的結(jié)束,Microsoft 正在進(jìn)行另一種轉(zhuǎn)變:公司的開發(fā)重點從提供技術(shù)轉(zhuǎn)移到提供滿足實際客戶需求的解決方案。這聽起來像是一個顯而易見的策略,但考慮一下后果:過去,Microsoft 會確定其產(chǎn)品的每個修訂版中包含哪些功能,在分配的時間內(nèi)盡可能多地提供這些功能,然后移動任何丟棄的功能進(jìn)入下一個版本。通常,公司會將客戶反饋吹捧為每個產(chǎn)品版本中包含的功能的主要靈感之一,但客戶反饋只是公司考慮的眾多標(biāo)準(zhǔn)之一,當(dāng)然不是主要標(biāo)準(zhǔn)。

必須考慮過去十年的競爭格局和微軟瞄準(zhǔn)的市場,才能理解為什么會出現(xiàn)這種情況。在其歷史的大部分時間里,微軟都是火熱的暴發(fā)戶,爭奪市場份額并偏執(zhí)地認(rèn)為下一件大事會出現(xiàn),從而將公司甩在后面。對于 1990 年代的許多核心市場——桌面操作系統(tǒng)、辦公生產(chǎn)力軟件和基于工作組的企業(yè)計算——微軟主要關(guān)注低成本、簡單性和功能,因為它試圖超越 IBM 等競爭對手, Lotus、Novell、WordPerfect Corporation、Borland、Apple 等??蛻粞芯炕旧系扔凇霸蕉嘣胶谩保寒?dāng)時的想法是大多數(shù)用戶會比較功能的項目符號列表并選擇最能滿足他們需求的軟件。


??快進(jìn)十年,計算行業(yè)發(fā)生了翻天覆地的變化。在確保其在桌面操作系統(tǒng)和辦公生產(chǎn)力市場的主導(dǎo)地位之后,微軟不得不做出兩項關(guān)鍵改變。首先,它必須想辦法在其成熟產(chǎn)品已經(jīng)占據(jù)主導(dǎo)地位的那些市場中推動銷售。其次,該公司必須進(jìn)入新市場以推動增長。其中一些新市場包括手持計算和其他非 PC 設(shè)備、視頻游戲、消費電子產(chǎn)品,當(dāng)然還有高端企業(yè)計算市場。1996 年發(fā)布的 Windows NT 4.0 見證了一些可伸縮性的進(jìn)步,但直到 Windows 2000 微軟才為傳統(tǒng)上由高端 UNIX 機(jī)器服務(wù)的市場開發(fā)了一款可靠的產(chǎn)品。在 Windows Server 2003 中,


然而,高端企業(yè)市場運行的規(guī)則與桌面市場甚至中小型企業(yè)不同,兩者通常都需要盡快獲得尖端功能。在更成熟、發(fā)展更慢的企業(yè)市場中,穩(wěn)定性和可靠性的價值遠(yuǎn)高于任何其他標(biāo)準(zhǔn),而且這些操作通常使用相同的軟件數(shù)十年,而不是兩三年。到 1990 年代后期,微軟在這個市場上幾乎沒有經(jīng)驗。它導(dǎo)致公司全面做出巨大改變。例如,Microsoft 兩次延長了 Windows NT 4.0 的支持生命周期,僅僅是因為其客戶使用該技術(shù)的時間比公司最初預(yù)期的要長得多。對于 Windows 2000,更明顯的是 Windows Server 2003,Microsoft 了解客戶可能會在未來幾年內(nèi)運行該軟件。它的客戶當(dāng)然希望該軟件易于部署、管理和更新,但他們也希望它能夠正常工作,并且永遠(yuǎn)正常工作。

開發(fā)能正常工作的簡單軟件已經(jīng)夠困難了,但當(dāng)涉及到像 Windows Server 2003 這樣復(fù)雜的軟件時,它有超過 5000 萬行代碼、幾個不同的產(chǎn)品版本,以及數(shù)量未知的未來更新、安全修復(fù)、熱修復(fù)和服務(wù)包,傳統(tǒng)的軟件測試方法是不夠的。微軟很早就意識到它不能發(fā)布這個產(chǎn)品,等待不可避免的問題出現(xiàn),然后在以后修復(fù)它們,許多客戶像往常一樣等待 Service Pack 1 (SP1) 版本開始部署計劃。不,Windows Server 2003 會有所不同,Release Candidate 2 (RC2) 構(gòu)建被認(rèn)為是“最終”版本,而產(chǎn)品的正式發(fā)布 (RTM) 或“黃金”版本將于 2003 年 4 月 24 日到期,相當(dāng)于以前開發(fā)方法下的 SP1 版本。客戶應(yīng)該對推出候選版本充滿信心,知道 RTM 版本會更好,并在幾個月后跟進(jìn)。

Windows Server 2003 需要在真實環(huán)境中進(jìn)行測試,并在現(xiàn)場部署,并且在最終版本公開可用之前,部署的數(shù)量要比過去多得多。但這需要微軟與其客戶之間有一定程度的信任,而且對于這家軟件巨頭來說,還需要一個遠(yuǎn)遠(yuǎn)超出其過去采用的標(biāo)準(zhǔn)壓力測試的軟件測試基礎(chǔ)設(shè)施。這個新的測試基礎(chǔ)設(shè)施以及新的 Microsoft 的關(guān)鍵組成部分之一是公司的企業(yè)工程中心 (EEC)。

Microsoft EEC 中的實際測試

Microsoft 企業(yè)工程中心 (EEC) 本身是兩年測試的結(jié)果,于 2002 年 4 月 Windows Server 2003 測試版期間開放。EEC 是微軟 Windows 集成場景測試產(chǎn)品部門經(jīng)理 George Santino 的創(chuàng)意,他想為長期產(chǎn)品測試建立更好的標(biāo)準(zhǔn)。它位于微軟雷德蒙德園區(qū),旨在讓公司的客戶在實驗室環(huán)境中復(fù)制他們的特定環(huán)境,并了解各種微軟軟件升級、遷移和部署如何使用該公司的真實數(shù)據(jù)和系統(tǒng)執(zhí)行。EEC 向客戶免費提供。


“我們需要在產(chǎn)品推出時進(jìn)行部署,而不是在 SP1 之后,而不是在 QFE 之后?!?/h1>

-George Santino
產(chǎn)品部門經(jīng)理,Windows 集成場景測試

“我們建造這個設(shè)施是為了讓我們能夠在產(chǎn)品仍在開發(fā)中時與客戶互動,”當(dāng)我們走過歐洲經(jīng)濟(jì)共同體的大量服務(wù)器時,桑蒂諾告訴我。“我們希望直接與將部署它們的客戶一起測試產(chǎn)品,并了解他們的網(wǎng)絡(luò)拓?fù)浜退麄冊噲D解決的問題。這有助于 Microsoft 為這些客戶提供在發(fā)貨時更適合企業(yè)使用的產(chǎn)品,并且它使我們能夠直接與客戶互動?!?微軟通過確保其產(chǎn)品在實際場景中工作而從 EEC 中獲益,而在過去,這些場景在實際發(fā)布之前沒有經(jīng)過全面測試??蛻艨梢詮呐c負(fù)責(zé)相關(guān)產(chǎn)品的產(chǎn)品團(tuán)隊的一對一互動中獲益。


在許多情況下,在 EEC 的積極體驗將導(dǎo)致客戶以預(yù)發(fā)布形式部署 Microsoft 解決方案?!跋?jetBlue 這樣的客戶在參觀了 EEC 后立即離開并立即在生產(chǎn)中部署了 Windows Server 2003 和 Titanium [Exchange 2003] Beta 2,”Santino 告訴我?!八麄儊淼竭@里,會見了人,測試了他們的環(huán)境,并看到它可以工作,并且更具可擴(kuò)展性。我們能夠在他們離開之前為他們解決問題?!?/p>

過去,這些客戶中的許多人可能之前一直等到最終產(chǎn)品發(fā)布,或者更常見的是,等到第一個服務(wù)包發(fā)布?!拔覀冃枰诋a(chǎn)品上市時進(jìn)行部署,”Santino 說,“不是在 SP1 之后,也不是在 QFE 之后?!?/p>

第一輪 EEC 測試涉及近 50 家客戶,他們都測試了 Windows Server 2003 升級、遷移和部署??蛻敉ǔ跉W洲經(jīng)濟(jì)共同體逗留兩周——盡管澳大利亞稅務(wù)局會待近六周——而微軟最多可以同時在歐洲經(jīng)濟(jì)共同體接待五名客戶。更重要的是,由于 EEC 與會者的意見,Windows Server 2003 出現(xiàn)了一些問題和 650 處設(shè)計更改。并且已經(jīng)有一些回頭客,例如英特爾、西門子、雪佛龍-德士古和美國大陸航空公司。

EEC 控制中心蒙太奇


帶上顧客

實際上,EEC 目前包括三個企業(yè)客戶實驗室(第四個正在建設(shè)中,第五個正在計劃中)和一個稱為控制中心的大型服務(wù)器機(jī)房,其中配備了幾乎所有可以想象到的硬件。三個實驗室分別擺滿了IBM、HP 和Dell設(shè)備,用于主持終端用戶測試?!拔覀冏尶蛻魜頊y試他們的實際環(huán)境,”桑蒂諾告訴我?!拔覀兣渲脺y試環(huán)境的方式與客戶配置真實環(huán)境的方式完全相同。它使用他們使用的相同軟件,完全相同的硬件,一切。這是他們的整體環(huán)境。這有助于我們發(fā)現(xiàn)有趣的錯誤,我們可以得到開發(fā)人員關(guān)注環(huán)境,更多地了解我們的客戶正在做什么?!?/p>

一個明顯的問題涉及客戶如何參與 EEC。Santino 告訴我,客戶通過多種渠道來到 EEC。“我們在現(xiàn)場的客戶團(tuán)隊帶來了客戶,MCS [Microsoft 咨詢服務(wù)] 人員也是如此,許多客戶來是因為他們參與了 JDP [聯(lián)合部署計劃]。我們也有一些來自我們的硬件合作伙伴和其他原始設(shè)備制造商。一旦我們收到通知,我們希望提前 3-4 周通知我們參與并獲取有關(guān)如何構(gòu)建環(huán)境和安裝所有軟件的信息。但我們只在幾天通知后就完成了。如果必須的話,我們可以匆匆忙忙地在幾周內(nèi)完成它?!?/p>

在 EEC 進(jìn)行的測試并不局限于針對客戶環(huán)境運行的單個 Microsoft 產(chǎn)品。公司提前詢問客戶他們想測試哪些軟件產(chǎn)品,包括他們自己的專有解決方案,以及競爭對手的軟件和硬件?!拔覀冞@里有幾乎所有可以想象到的服務(wù)器,”Santino 笑著說?!叭绻谒麄兊沫h(huán)境中,它需要工作。另一件讓客戶感到驚訝的事情是他們認(rèn)為我們不會測試那些[非微軟]的東西。但事實并非如此。如果你使用的是[IBM] DB/2 ,好吧。我們將測試他們在業(yè)務(wù)中使用的內(nèi)容?!?/p>

此外,還會詢問客戶他們想在 Microsoft 與誰會面。“我們還有一位項目經(jīng)理,當(dāng)他們在這里時,他基本上和他們住在一起,”桑蒂諾說?!拔覀儼l(fā)現(xiàn)了不同的錯誤,因為我們正在使用仍在開發(fā)中的產(chǎn)品。但我們可以讓開發(fā)人員在這里處理該代碼,讓他找出客戶在做什么以及為什么。然后他可以回去并在客戶離開 EEC 之前獲得修復(fù)?!?/p>

當(dāng)客戶在 EEC 時,Microsoft 收集信息并為每個客戶編寫業(yè)務(wù)模型,記錄他們?nèi)绾钨嶅X,以及他們的問題是什么,以及他們的問題所在。“我們問,‘你用 SQL Server 做了什么?Exchange?請告訴我們更多信息,’”Santino 指出。在許多情況下,答案令人驚訝,并且 Microsoft 發(fā)現(xiàn)其客戶以其從未想象過的方式使用其產(chǎn)品。

客戶走后

客戶離開后,Microsoft 會保留他們環(huán)境的圖像,但會減去任何真實世界的數(shù)據(jù)。“我們保留它,向各個產(chǎn)品團(tuán)隊發(fā)送電子郵件并告訴他們,‘我們有這個環(huán)境,你想來測試一下嗎?’?測試團(tuán)隊過去只測試通用環(huán)境,但現(xiàn)在他們可以看到他們的產(chǎn)品如何對現(xiàn)實世界的情況做出反應(yīng)。這是一個了不起的機(jī)會?!?隨著時間的推移,當(dāng)產(chǎn)品團(tuán)隊開發(fā)各種產(chǎn)品時,他們可以瀏覽環(huán)境檔案并選擇他們想要測試的環(huán)境。“我們可以在幾天內(nèi)重新構(gòu)建它并讓他們對其進(jìn)行測試,”桑蒂諾說。

“在 EEC 之前,我們在如何測試涉及更多產(chǎn)品的更大范圍內(nèi)受到限制,”Santino 告訴我。“這些東西如何相互作用真是太神奇了。我們測試過的大多數(shù)環(huán)境都是異構(gòu)的。例如,Chevron-Texaco 很有趣,因為它們?nèi)诤狭藘蓚€完全不同的環(huán)境。但 Barnes & Nobles 幾乎是純粹的 Microsoft,沒有沖突?!?/p>

客戶對 EEC 的反應(yīng)

為幫助客戶了解 EEC 的工作原理,Microsoft 會定期參觀該設(shè)施?!翱蛻魪?[校園內(nèi)] 的行政簡報中心過來,說,‘我們聽說了微軟如何傾聽客戶的意見。證明給我看?!?好吧,這就是它發(fā)生的地方。這就是 Microsoft 與客戶合作的地方。他們可以來這里,參觀,參觀硬件,以及實際客戶進(jìn)行測試。最終,EEC 幫助使產(chǎn)品企業(yè)準(zhǔn)備就緒,當(dāng)然,但它也使他們的企業(yè)可信。”


“當(dāng)然,EEC 有助于使產(chǎn)品為企業(yè)做好準(zhǔn)備,但它也使它們成為企業(yè)可信的?!?/h1>

-George Santino
產(chǎn)品部門經(jīng)理,Windows 集成場景測試

那么反應(yīng)如何呢?“客戶說這是有益的,”桑蒂諾說。“他們說,‘你們真的很關(guān)心,你們正在解決問題,我可以親眼看到。’?他們告訴我們他們的想法,并根據(jù)他們的反饋實時看到變化。最重要的是,不涉及成本。我們不是營銷或銷售。這是關(guān)于運送客戶實際可以購買的更高質(zhì)量的產(chǎn)品使用。最終,EEC 會產(chǎn)生銷售,當(dāng)然。但我們希望讓他們進(jìn)入那里 - 免費 - 我們希望他們幫助我們了解他們?nèi)绾问褂梦覀兊臇|西。我們需要真實的數(shù)據(jù)來強(qiáng)調(diào)產(chǎn)品,不是模擬。它必須是真實的。客戶知道,如果他們要部署它,他們需要現(xiàn)在而不是以后才能確定它是否有效?!?/p>


桑蒂諾說,許多參與 EEC 的客戶如果可以的話會住在那里?!八麄兛吹搅藖淼竭@里進(jìn)行測試以及與開發(fā)人員和項目負(fù)責(zé)人會面的價值。面對面的時間對他們來說非常寶貴。”

事實上,與我交談過的使用過該設(shè)施的客戶都對他們在 EEC 逗留期間獲得的幫助和專業(yè)知識的質(zhì)量和深度印象深刻。他們都說他們將來會回來測試其他產(chǎn)品。其中一位客戶,肯塔基州教育部,有一個特別有趣的故事要講。

肯塔基州教育部前往雷德蒙德

肯塔基州教育部 (KDE) 在全州超過 175 個學(xué)區(qū)維護(hù)著 1,400 所學(xué)校,這是一個為超過 600,000 名學(xué)生以及 125,000 名教育工作者、工作人員和其他雇員提供服務(wù)的大規(guī)模分布式計算環(huán)境。以前,KDE 環(huán)境由 4400 多臺服務(wù)器組成,大多數(shù)運行 Windows NT 4.0,分布在近 400 個獨立和自治的 NT 域中。顯然,這種基礎(chǔ)結(jié)構(gòu)在向 Active Directory (AD) 發(fā)展時提出了一個巨大的問題,Active Directory (AD) 是隨著 Windows 2000 首次亮相的更現(xiàn)代的目錄服務(wù)基礎(chǔ)結(jié)構(gòu)。將這種環(huán)境發(fā)展為更加集中和易于管理的環(huán)境的任務(wù)落在了 Tim Cornett 的肩上, KDE 的 Active Directory 架構(gòu)師和 KDE 的 Exchange 架構(gòu)師 John Logan。

“每個地區(qū)至少有一個 NT 域,但大多數(shù)有兩個,”Cornett 告訴我?!拔覀儽仨殞⑦@大約 400 個域合并為一個 Active Directory 林中的 178 個域,并在 2003 年底之前建立整個林結(jié)構(gòu)?!?當(dāng)我在 2003 年 2 月與 Cornett 和 Logan 交談時,他們剛剛完成了第一個試點項目?!暗谝粋€試點是在教育部,”Cornett 說。“我們從 NT 4 遷移到 Windows Server 2003 RC2。”?6 個學(xué)區(qū)在 4 月進(jìn)行了試點,其余 170 個學(xué)區(qū)將在 2003 年 5 月至 11 月期間遷移。

在架構(gòu)上,KDE 環(huán)境將由一個具有 178 個域的 AD 林組成。將有一個根域,一個用于 KDE 員工的域,以及一個用于該州 176 個學(xué)區(qū)的每個域。這種結(jié)構(gòu)將為 Cornett 和他的同事提供中央管理,而當(dāng)前的、分散的、基于 NT 4 的解決方案使他們無法集中管理。

為什么是EEC?

最初,KDE 致力于自行將其基礎(chǔ)結(jié)構(gòu)升級到 Windows 2000。但經(jīng)過 18 個月的評估和測試后,Cornett 意識到他們需要一些幫助。該部門聯(lián)系了 Microsoft 咨詢服務(wù) (MCS) 以詢問架構(gòu)指導(dǎo),并從 Microsoft 的企業(yè)服務(wù)組聘請了一名全職技術(shù)客戶經(jīng)理。最終,KDE 加入了 Windows Server 2003 快速采用計劃 (RAP),這使他們能夠在產(chǎn)品開發(fā)過程的早期開始使用該產(chǎn)品。

“微軟讓我們有機(jī)會來到歐洲經(jīng)濟(jì)共同體來測試我們的環(huán)境,”Cornett 告訴我?!坝捎谖覀兊囊?guī)模,不可能坐在這里,將一些服務(wù)器放在一起并說它有效。所以我們前往雷德蒙德。一切都提前準(zhǔn)備好了。他們使用 NT 4 在 VMware 會話中預(yù)先構(gòu)建了 178 個不同的域,大約在40 臺不同的服務(wù)器。當(dāng)我們到達(dá)時,他們幫助我們構(gòu)建了新的林根并完成了升級過程?!?/p>

“根本沒有兼容性問題,”Cornett 告訴我,“一切都運行得非常好。他們在 Windows 2000 上使用 VMWare GSX Server。我們偶爾會遇到硬件故障,但總體來說一切都運行得非常順利。那里的人很棒。”?在 EEC 期間,KDE 與 Microsoft 的各個產(chǎn)品組進(jìn)行了多次會面。這一經(jīng)驗促使 Logan 將 KDE 的 Exchange 基礎(chǔ)架構(gòu)遷移到 Titanium,并且他們很可能很快就會回到 EEC 以幫助促進(jìn)這一變化?!拔覀兊?Exchange 布局類似于我們的 NT 布局,因為它復(fù)雜且分散,”Logan 說?!拔覀円蚕肟纯创蟠笳郫B我們的 Exchange 拓?fù)洹xchange 團(tuán)隊非常有興趣與我們討論這個問題。我們”

服務(wù),服務(wù),服務(wù)

Cornett 和 Logan 對 EEC 和 Windows Server 2003 留下了深刻的印象?!爸灰?Windows Server 出現(xiàn)故障,20 分鐘內(nèi)就會有來自整個園區(qū)的產(chǎn)品團(tuán)隊成員出現(xiàn)并開始深入研究代碼,”科內(nèi)特說?!胺浅>o張。我們在那里待了 5 天,非常漫長,盡管他們已經(jīng)提供了兩周。但那是在圣誕節(jié)前夕。我們每天在那里待 16-18 小時,但他們愿意 24 小時和我們在一起-7 如果我們想要的話。他們非常出色。你可以支配的資源似乎是無限的。這令人印象深刻。”

“我們唯一的遺憾,”Cornett 說,“是在我們到達(dá)實驗室之前,我們對實驗室的了解不夠。我們本可以準(zhǔn)備得更好。我們有一個計劃,但我們認(rèn)為他們可能只有幾臺機(jī)器,我們光是準(zhǔn)備好就得花好幾天時間。但當(dāng)我們?nèi)サ臅r候,機(jī)器的數(shù)量和質(zhì)量遠(yuǎn)遠(yuǎn)超出了我們的預(yù)期。到第一天結(jié)束時,我們的計劃已經(jīng)在周三了。我們可以如果我們在出發(fā)前就知道有哪些資源可用,我們就能取得更大的成就?!?事實上,EEC 的訪問給人留下了深刻的印象,Cornett 補(bǔ)充說,它幫助轉(zhuǎn)變了參觀校園的 UNIX 人群中的一些反微軟情緒?!拔覀儙Я艘恍┓次④浀娜耍蛘邩O度懷疑的人——大多數(shù)是 Solaris 的人。

Cornett 說,當(dāng)他們第一次到達(dá) EEC 時,最擔(dān)心的是 Microsoft 沒有足夠的磁盤空間來復(fù)制他們的環(huán)境,該環(huán)境有一個巨大的全局目錄 (GC)?!八麄儐栁覀冃枰嗌倏臻g,所以我們計算了一下,結(jié)果大約是 1 太字節(jié) (TB),”Cornett 告訴我?!暗谝惶?,我們于周二凌晨 1:00 離開 EEC,并于當(dāng)天早上 8:30 回到實驗室。他們已經(jīng)將光纖連接到我們的房間,并讓我們可以訪問帶有兩個 500 的 SAN GB 驅(qū)動器。我們有需要,很快就解決了。他們說,“我們整晚都在這里,但我們?yōu)槟阏业搅??!?沒有任何問題或投訴。”


“在教育領(lǐng)域,我們一直運行到死為止。我們希望 Windows Server 2003 的使用壽命更長,而無需進(jìn)行重大升級?!?/h1>


-肯塔基州教育部的Tim Cornett Active Directory 架構(gòu)師

在 KDE 離開 EEC 之前,Microsoft 備份了他們的環(huán)境,以便他們可以將其重新聯(lián)機(jī)并在部門在生產(chǎn)推出時遇到任何問題時對其進(jìn)行測試。當(dāng)然,如果需要,Microsoft 的各種產(chǎn)品組可以來到 EEC 并在復(fù)雜的 KDE 環(huán)境中測試他們的產(chǎn)品?!艾F(xiàn)在他們有了一個和我們一樣大的模擬環(huán)境,當(dāng)然,減去了所有的名字和其他真實世界的數(shù)據(jù),”Cornett 告訴我。“但他們可以用它來測試,所以這對雙方都有好處?!?/p>


與此同時,回到肯塔基州

現(xiàn)在 Cornett、Logan 和其他 KDE 團(tuán)隊成員都回到了肯塔基州,真正的工作可以開始了。在 Windows Server 2003 出現(xiàn)之前,該部門運行的所有設(shè)備從配備 64 MB RAM 的老式 Pentium 75 服務(wù)器到配備 4 GB RAM 的四核至強(qiáng)服務(wù)器;都在運行 Windows NT 4.0。隨著升級到 Windows Server 2003,所有學(xué)區(qū)的服務(wù)器都將是具有雙處理器能力的 Dell PowerEdge 2600 機(jī)器。在試點期間,每臺服務(wù)器都將以單處理器模式運行,以衡量處理器利用率;如果超過 40%,它們將升級到雙處理器。由于 Windows NT 4.0 已經(jīng)使用了 6 年——它于 1997 年在肯塔基州實施——Cornett 希望從 Windows Server 2003 中獲得類似的使用量。他說?!?/p>

關(guān)于 Exchange 遷移,Logan 告訴我總體目標(biāo)與 KDE 對 Windows Server 2003 所做的類似:簡化管理?!拔覀兿M麑⑽覀兊?184 個 Exchange 站點合并為一個路由組,或者幾個路由組,”他說?!敖柚?Titanium、Outlook [2003] 和 Outlook Web Access (OWA),我們將能夠進(jìn)行大量的集中托管。我們有一個基礎(chǔ)設(shè)施可以在必要時托管所有學(xué)區(qū)。這將有助于我們更容易做備份、執(zhí)行病毒防護(hù)等。我們真的想集中服務(wù)?!?/p>

Logan 的宏偉計劃是將目前分散在全州的 320 臺 Exchange 5.5 服務(wù)器減少到僅 20 臺 Exchange Titanium 服務(wù)器。然而,這個計劃的唯一問題是政治上的,而不是技術(shù)上的。一些較大的學(xué)區(qū)可能不希望集中管理他們的 Exchange 服務(wù)器。但對于較小的地區(qū),通常只有一名技術(shù)人員負(fù)責(zé)管理、備份和保護(hù) Exchange,集中管理將非常受歡迎。還涉及少量的總體成本節(jié)約。

人們可能想知道,在這個困難的經(jīng)濟(jì)時代,一個資金匱乏的教育機(jī)構(gòu)如何負(fù)擔(dān)得起所有這些升級。洛根說這完全取決于大小?!笆紫?,每個學(xué)區(qū)獲得 100% 的匹配資金,每個學(xué)生每年最多 20 美元,所以州政府匹配,每年為每個學(xué)生提供總計 40 美元的支出,外加任何當(dāng)?shù)刭Y金。這是提供合同的強(qiáng)大購買力用于硬件和軟件以使其成本盡可能低。我們獲得了一些非常好的折扣。

原文最后更新于2003年4月

【轉(zhuǎn)載】Windows Server 2003:通往黃金之路的評論 (共 條)

分享到微博請遵守國家法律
喀喇沁旗| 平顺县| 灯塔市| 景宁| 台南市| 新巴尔虎右旗| 桓仁| 安陆市| 淮滨县| 谢通门县| 高雄市| 新泰市| 讷河市| 巴彦淖尔市| 东宁县| 延吉市| 若尔盖县| 筠连县| 龙山县| 崇明县| 静安区| 阳江市| 方正县| 什邡市| 文化| 讷河市| 襄城县| 尼木县| 长宁区| 新河县| 阳山县| 乌拉特后旗| 八宿县| 视频| 德清县| 灵武市| 喀喇沁旗| 兴山县| 九龙县| 河间市| 迁西县|