超過95%的《財(cái)富》1000強(qiáng)公司仍在使用IM--IBM的古老的層次DBMS(數(shù)據(jù)庫管理系統(tǒng))。這是TwoBitHistory.org得出的數(shù)據(jù)。
相比之下,我自己做的非正式調(diào)查顯示,在優(yōu)秀的IT開發(fā)人員中,幾乎沒有一個(gè)人對(duì)在該環(huán)境下工作有絲毫的興趣。
能夠吸引頂尖人才是CIO們更新改造應(yīng)用程序的一個(gè)原因。這不是唯一的原因,卻是最重要的原因之一。其他原因包括減少許可費(fèi)和支持費(fèi),以及提高靈活性和適應(yīng)性。
只不過"更新改造"不像看起來那么簡單直觀,還有幾個(gè)隱蔽的秘密,精明的CIO在制定決策時(shí)必須考慮到這些秘密。
01 應(yīng)用程序更新改造是個(gè)復(fù)合問題
應(yīng)用程序更新改造(酷孩子俱樂部的成員稱之為"應(yīng)用程序改裝")涉及使用一系列全然不同的方法來解決一系列全然不同的問題。
應(yīng)用程序改裝可能意味著版本更新、平臺(tái)重建、平臺(tái)更換、語言更新改造、重構(gòu)或COTS轉(zhuǎn)換,這取決于具體應(yīng)用程序和你交談的對(duì)象。雖然它們統(tǒng)一叫"更新改造",但幾乎沒有什么共同之處。各自有陷阱,需要留意。一些陷阱眾所周知,另一些陷阱則較為隱蔽。
此外,更新改造有許多不同的含義本身就特別令人煩惱:在對(duì)特定的應(yīng)用程序更新改造之前,你不僅要先決定是否對(duì)其更新改造,還要決定它需要哪種類型的更新改造,然后乘以整個(gè)IT環(huán)境中應(yīng)用程序的數(shù)量。
02 版本更新本身是一種債(越晚做越糟糕)
一些IT團(tuán)隊(duì)領(lǐng)導(dǎo)認(rèn)為,只要做到以下這點(diǎn),就表明自己有業(yè)務(wù)頭腦:"不純粹為了技術(shù)而購買技術(shù)",再加上一句陳詞濫調(diào):采取"如果它沒壞,就不要修理它"的做法來管理應(yīng)用程序及它們運(yùn)行所依賴的堆棧。
他們把這套邏輯搬到商業(yè)應(yīng)用程序以及每個(gè)應(yīng)用程序運(yùn)行所依賴的每個(gè)平臺(tái)上:服務(wù)器操作系統(tǒng)、DBMS、CMS(內(nèi)容管理系統(tǒng))、開發(fā)環(huán)境、桌面操作系統(tǒng)和瀏覽器等等,只有當(dāng)特定的新功能帶來新的ROI(投資回報(bào))時(shí)才更新。
可遺憾的是,"不是現(xiàn)在付費(fèi),就是以后付費(fèi)",這個(gè)定律仍然是正確的:與及時(shí)更新相比,"以后付費(fèi)"需要的成本難免更高、帶來的破壞更大。
03 平臺(tái)重建只解決一個(gè)變量
另一種流行的更新改造方法是,將遺留應(yīng)用程序遷移到有相應(yīng)平臺(tái)的開放環(huán)境(將整套堆棧都遷移過去),有一個(gè)不那么隱秘的地方要注意。比如說,平臺(tái)重建意味著從大型機(jī)托管的z/OS+COBOL+CICS+DB2遷移到x85托管的Linux+COBOL+CICS+DB2。在云遷移中,這個(gè)叫"lift-and-shift"(平移)。
你得到的是降低的許可費(fèi)和供應(yīng)商支持費(fèi)。隱蔽的秘密是,這是你得到的全部好處。
04 平臺(tái)更換成本更高
平臺(tái)更換是更新改造方法之一,它只改變了應(yīng)用程序運(yùn)行所依賴的一個(gè)平臺(tái),理由是平臺(tái)已過時(shí),或丟失了市場(chǎng)份額和消費(fèi)者心智占有率。比如說,你可能將應(yīng)用程序的DBMS由Sybase換成SQL Server。雖然這有時(shí)也叫"平臺(tái)重建",但它與上述的平臺(tái)重建沒有任何共同之處。
你得到的是減少了使用過時(shí)技術(shù)帶來的風(fēng)險(xiǎn)和漏洞,此外還能享用更好的人才庫。但你無法得到降低的成本或任何改進(jìn)的功能。事實(shí)上,成本反而增加,因?yàn)槟悴坏貌粸楦鼡Q平臺(tái)購買許可證。
05 語言更新改造常常使糟糕的情況更糟糕
誘人的銷售宣傳號(hào)稱:自動(dòng)化工具可以從你的遺留COBOL代碼中提取業(yè)務(wù)邏輯,并用一種現(xiàn)代化語言重寫。這常常通過將有100000行代碼的COBOL應(yīng)用程序換成有100000行代碼的Java應(yīng)用程序來完成。
這是語言更新改造方面最隱蔽的秘密:語言不僅僅涉及詞匯和語法,還涉及應(yīng)用程序設(shè)計(jì)理念。
第二個(gè)隱蔽的秘密是:語言通常還帶來整批的預(yù)開發(fā)邏輯庫。編寫新應(yīng)用程序的開發(fā)團(tuán)隊(duì)得充分利用這些庫。很少有代碼轉(zhuǎn)換器可以做到這一點(diǎn),這意味著它們生成的轉(zhuǎn)換后代碼維護(hù)起來更困難。
作者:Bob Lewis是一名高級(jí)管理和IT顧問,專注于IT和業(yè)務(wù)組織效能、戰(zhàn)略到行動(dòng)的規(guī)劃以及業(yè)務(wù)/IT整合。
原文網(wǎng)址:https://www.cio.com/article/3626469/dark-secrets-of-application-modernization.html
編譯:沈建苗
微信排版:??伸?/p>
排版審核:劉沙