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