假設(shè)我們有一個(gè)多人游戲網(wǎng)站,其中的一個(gè)服務(wù)器群包含大量的應(yīng)用程序和消息服務(wù)器,它們負(fù)責(zé)支持各個(gè)玩家在多人游戲中的交流,以及生成玩家在太空射擊游戲中使用的可視化Web界面。...
在分析哪些方面需要實(shí)現(xiàn)自動(dòng)化時(shí),人們往往希望將所有軟件都自動(dòng)化??蓡?wèn)題在于,自動(dòng)化會(huì)在構(gòu)建、配置、管理和修復(fù)網(wǎng)站軟件組件的層次上,再增加一層抽象。自動(dòng)化只在最頂層再增加一層或多層抽象。...
這似乎是很顯然的,但是在計(jì)劃如何實(shí)現(xiàn)系統(tǒng)自動(dòng)化之前,我們需要獲得所有利益相關(guān)者的信息,其中包括業(yè)務(wù)和執(zhí)行管理人員。對(duì)于組織中參與一個(gè)特定網(wǎng)站的所有團(tuán)隊(duì)來(lái)說(shuō),他們都會(huì)特別關(guān)注于自己的部門(mén),而這種關(guān)注可能與其他團(tuán)隊(duì)發(fā)生沖突。在創(chuàng)建和管理Web基礎(chǔ)架構(gòu)自動(dòng)化的過(guò)程中,無(wú)論各自團(tuán)隊(duì)的目標(biāo)是什么(節(jié)約成本、節(jié)約時(shí)間和確定業(yè)務(wù)優(yōu)先級(jí)等),他們都應(yīng)該達(dá)成一致協(xié)議。...
假設(shè)一家公司已經(jīng)有一些基礎(chǔ)架構(gòu),需要安裝新版本操作系統(tǒng)、新的應(yīng)用服務(wù)器程序和新的代碼庫(kù),并且有400個(gè)應(yīng)用程序需要重新安裝。根據(jù)表5-1度量標(biāo)準(zhǔn)來(lái)看,如果以人工方式執(zhí)行所有任務(wù),那么為每臺(tái)服務(wù)器安裝和配置操作系統(tǒng)需要花費(fèi)1小時(shí),更新Web服務(wù)器需要10分鐘,安裝 Hadoop節(jié)點(diǎn)需要1小時(shí),安裝 Rails)應(yīng)用程序需要30分鐘。此外,我們還可以從這些度量標(biāo)準(zhǔn)計(jì)算出自動(dòng)化可以節(jié)省的時(shí)間。...
在大型網(wǎng)站基礎(chǔ)架構(gòu)上,我們希望盡可能地保持系統(tǒng)的一致性。我們希望在整個(gè)基礎(chǔ)架構(gòu)上使用相同的硬件、軟件和功能。然而,系統(tǒng)維護(hù)通常會(huì)慢慢變成一種人工操作過(guò)程或自動(dòng)化程度較低的過(guò)程,這意味著軟件和功能會(huì)經(jīng)常出現(xiàn)不一致性,或許只有在稍后報(bào)告給系統(tǒng)管理團(tuán)隊(duì)或開(kāi)發(fā)團(tuán)隊(duì)時(shí),這些問(wèn)題才會(huì)暴露出來(lái)。隨著網(wǎng)站訪客的增多,出錯(cuò)的可能性也會(huì)進(jìn)一步增加。...
在一個(gè)擁有大量服務(wù)器的大規(guī)模網(wǎng)站中,安裝新的應(yīng)用服務(wù)器程序部署新代碼或檢査系統(tǒng)配置一致性等任務(wù)都非常耗費(fèi)時(shí)間。假如要在數(shù)百甚至上千臺(tái)服務(wù)器上安裝應(yīng)用服務(wù)器程序,一次只安裝一臺(tái),那么這種龐大的任務(wù)量顯然需要另辟蹊徑才行:編寫(xiě)一個(gè) Shell a腳本,實(shí)現(xiàn)在中央數(shù)據(jù)存儲(chǔ)區(qū)上僅通過(guò)一個(gè)指令就可以安裝好應(yīng)用服務(wù)器程序。...
即使在一些有著穩(wěn)健和健康的文檔編寫(xiě)文化的組織中,應(yīng)用的進(jìn)化和修改速度也會(huì)遠(yuǎn)遠(yuǎn)快于文檔編寫(xiě)速度。現(xiàn)實(shí)情況是軟件變化速度遠(yuǎn)遠(yuǎn)快于文檔編寫(xiě)速度,即使有自動(dòng)化文檔系統(tǒng),有時(shí)候我們?nèi)匀恍枰斯ぞ帉?xiě)一些文檔。這種文檔需要通過(guò)一定的技術(shù)轉(zhuǎn)換,方能提供給在特殊閱讀環(huán)境中的讀者閱讀,因此無(wú)法通過(guò)自動(dòng)化方法維護(hù)。...
一個(gè)組織不可能只有高級(jí)軟件工程師或系統(tǒng)管理員,所以,只有基于特定規(guī)范的文檔就意味著只有高級(jí)技術(shù)人員才能閱讀這些文檔。這是一種機(jī)能障礙問(wèn)題。當(dāng)然,這些文檔也是必要和重要的,這已經(jīng)比只有閱讀代碼才能了解應(yīng)用程序的情況好很多了。然而,這并不是一種完整的文檔戰(zhàn)略與文化。...
最好的Web開(kāi)發(fā)人員總是可以寫(xiě)出帶有好注釋的漂亮代碼,但是,他們一般也不會(huì)編寫(xiě)專門(mén)給非開(kāi)發(fā)人員閱讀的文檔。最好的工程師愿意瘋狂地開(kāi)發(fā)應(yīng)用程序,但是不愿意花一點(diǎn)時(shí)間去編寫(xiě)文檔或向其他人說(shuō)明應(yīng)用程序。他們認(rèn)為,代碼就是文檔,而且有技術(shù)的人都能夠理解代碼,所以編寫(xiě)額外的文檔是在浪費(fèi)時(shí)間。...
一旦在Web組織中逐步培養(yǎng)起編寫(xiě)文檔的文化,那么員工就會(huì)越來(lái)越依賴于這種實(shí)踐方法。這種文化還有一個(gè)十分重要的優(yōu)點(diǎn),即如果出現(xiàn)人員流失和變動(dòng),那么良好的文檔可以縮短新人的“交接”時(shí)間。此外,除了構(gòu)成一般軟件開(kāi)發(fā)過(guò)程的標(biāo)準(zhǔn)代碼注釋、跟蹤和源代碼控制過(guò)程,編寫(xiě)文檔也是一種審查方法。在一些開(kāi)發(fā)專用軟件的公司中,文檔顯得尤為重要,因?yàn)樾聠T工一般很難理解復(fù)雜的定制應(yīng)用程序,以及各個(gè)應(yīng)用又是如何組成客戶所訪問(wèn)的網(wǎng)站。如果文檔成為這一過(guò)程的組成部分,人們就一定會(huì)對(duì)軟件構(gòu)建方式進(jìn)行交流,工程師...