1. 降低IT變化成本的良方:IT紀(jì)律和IT自動化
如果IT組織對他們的應(yīng)用交付和管理行動采用嚴(yán)格的紀(jì)律和自動化,那么可以消除大部分改變的成本。
1.1應(yīng)用交付
很多應(yīng)用故障是由于在開發(fā)和部署新應(yīng)用和應(yīng)用改變時缺少控制和紀(jì)律導(dǎo)致的。
如果不能正確控制應(yīng)用的計劃,開發(fā)和部署,那么將導(dǎo)致:
對其他組建或應(yīng)用產(chǎn)生意外的副作用;
由于不完善的版本控制,丟失改變的源代碼或其他程序;
由于錯誤的優(yōu)化和沒有在上線的壓力下測試,出現(xiàn)上線的性能問題;
由于費(fèi)事且易于出錯的手工部署的錯誤,出現(xiàn)混合或不兼容的上線版本.
在應(yīng)用生命周期的開發(fā)和部署階段,進(jìn)行小心細(xì)致的計劃和控制可以消除這些問題。
1.2計劃
嚴(yán)格的應(yīng)用交付開始于計劃。計劃中經(jīng)常會忽略的幾個方面包括:
影響性分析
容量計劃
高可用性計劃
如果沒有實(shí)施應(yīng)用改變的影響分析,可能會導(dǎo)致意外的停機(jī)和性能問題。例如,為了滿足一個業(yè)務(wù)變化對數(shù)據(jù)庫模式作了一處簡單的修改,可能也需要對其他模塊進(jìn)行改動。如果沒有注意到這些改變而沒有做相應(yīng)的修改,就可導(dǎo)致錯誤的結(jié)果,糟糕的性能或應(yīng)用的停機(jī)。這樣的問題通過對應(yīng)用改變的影響作仔細(xì)分析就可以很好地避免。最有效的影響性分析最好是使用自動化工具,該工具可以理解源代碼和程序?qū)ο笾g或其他應(yīng)用組件之間的關(guān)系。
缺少容量計劃是另一個可能導(dǎo)致意外應(yīng)用故障的問題。分析出在生產(chǎn)環(huán)境中可獲得充足應(yīng)用性能所需要的處理器,內(nèi)存和其他資源等是非常重要的。例如,如果不能提供足夠的計算資源處理預(yù)計的用戶數(shù)量,那么就可能導(dǎo)致應(yīng)用的性能問題和停機(jī)。
最后,缺少為滿足高關(guān)鍵應(yīng)用的可用性而必要的冗余和快速恢復(fù)機(jī)制計劃可能導(dǎo)致代價高昂和長時間的停機(jī)。某些故障是非常難以預(yù)料的。例如,硬件故障的發(fā)生通常沒有前兆,并發(fā)生在極不方便的時間。IT組織必須為這些故障作計劃,并且考慮高可用性體系結(jié)構(gòu)和程序。
1.3開發(fā)
控制良好的開發(fā)過程為多種多樣的應(yīng)用故障提供了重要防線。應(yīng)該組織這些過程保證所有重要的開發(fā)任務(wù),例如說明,編碼,優(yōu)化和測試,能夠正確執(zhí)行。好的過程也需要在相關(guān)步驟上作嚴(yán)格的評審。這保證正確的檢查和平衡能夠捕獲不適當(dāng)或不正確的改變。版本控制是所有良好開發(fā)過程的關(guān)鍵環(huán)節(jié)。不充分的版本控制可能導(dǎo)致丟失源代碼的改變,模塊的混亂版本和喪失對運(yùn)行的生產(chǎn)系統(tǒng)全面的信心。所有開發(fā)成果都應(yīng)該在版本控制系統(tǒng)中仔細(xì)保留和管理,以防止覆蓋重要的改變。
功能的正確性,性能和擴(kuò)展性的驗(yàn)證應(yīng)該緊密地集成在開發(fā)過程中。大多數(shù)開發(fā)組織能夠認(rèn)識到驗(yàn)證軟件功能正確性的重要性。而性能和擴(kuò)展性的問題只是當(dāng)在生產(chǎn)的負(fù)載下應(yīng)用出現(xiàn)問題時才會注意到。這里需要特別強(qiáng)調(diào)的是,性能和擴(kuò)展性需求應(yīng)該在普通開發(fā)人員編碼和測試中驗(yàn)證,同時也以應(yīng)該在QA過程驗(yàn)證。關(guān)鍵應(yīng)用交易應(yīng)該使用分析工具進(jìn)行準(zhǔn)確測量。而且,應(yīng)用性能也應(yīng)該在生產(chǎn)級別的壓力下測量。最好使用壓力測試工具可以幫助你進(jìn)行自動測試仿真適當(dāng)?shù)挠脩糌?fù)載程度。
1.4部署
正確的控制也應(yīng)該擴(kuò)展到應(yīng)用的上線部署階段。通常,一個應(yīng)用的更新版本需要在不同的系統(tǒng)上同時部署。另外,也可能依賴系統(tǒng)軟件,運(yùn)行時庫和其他共享組件的不同版本。因此,局部或偶爾的部署可能導(dǎo)致錯誤,故障或糟糕的性能。
圍繞部署的問題通常與手工部署有關(guān),因?yàn)槭止と菀壮鲥e。自動部署機(jī)制可以保證把正確的組件在正確的是件交付到正確的系統(tǒng),以防止部署的災(zāi)禍。
2.管理上線應(yīng)用
在應(yīng)用交付中再多的計劃和控制也不會消除應(yīng)用的故障。即使最完善的質(zhì)量控制過程也不會發(fā)現(xiàn)所有的缺欠。同時,最好的容量規(guī)劃過程也不會預(yù)見到意外應(yīng)用的使用。因此,需要以及時和主動方式