從Unix到Linux的遷移部署:移植、升級(jí)和測(cè)試
從Unix遷移到Linux,在最初階段,應(yīng)該建立一個(gè)沙盤環(huán)境用于測(cè)試。也許您的整個(gè)團(tuán)隊(duì)都沒(méi)有Linux方面的經(jīng)驗(yàn),有這樣一個(gè)沙盤環(huán)境能幫上大忙(無(wú)需擔(dān)心任何風(fēng)險(xiǎn))。
有關(guān)代碼和編譯的問(wèn)題。你正在使用JAVA還是C?是否有第三方應(yīng)用需要遷移?這些第三方軟件能移植到Linux上嗎?
假設(shè)您正在使用C語(yǔ)言。假設(shè)您將會(huì)在Linux上編譯代碼。如果使用GNU(gcc)編譯器,因?yàn)檫@是工業(yè)標(biāo)準(zhǔn),而且這是Linux自己的編譯器。那么所有在其它平臺(tái)上編譯過(guò)的應(yīng)用程序都需要重新編譯。
對(duì)于編譯,有兩種方法供您使用。一個(gè)方法是在現(xiàn)有環(huán)境上重新編譯您的程序,這種情況下,您必須確保在這個(gè)環(huán)境下有您需要的所有工具,其中包括源代碼和生成文件。如果您想使用這個(gè)方法,請(qǐng)?jiān)谀臏y(cè)試環(huán)境中進(jìn)行,永遠(yuǎn)不要在生產(chǎn)環(huán)境中實(shí)施。
另一種方法是把所有數(shù)據(jù)和代碼移植到新環(huán)境上,并且測(cè)試他們。同時(shí),要測(cè)試一下硬件平臺(tái)。如果您計(jì)劃更新硬件平臺(tái),一些有關(guān)硬件的代碼可能會(huì)給你制造些麻煩,最糟糕的情況是,您可能不得不重寫所有代碼。
確保開(kāi)發(fā)人員參與進(jìn)來(lái),不要假設(shè)任何事情。需要認(rèn)真考慮的事情包括運(yùn)行時(shí)API、系統(tǒng)調(diào)用、流和庫(kù)的支持。確保您完全理解所要移植的內(nèi)容。這時(shí)候你需要評(píng)估和核實(shí)所有的事情,如應(yīng)用程序及其庫(kù)文件和依賴性。您能快速確定產(chǎn)品是否能在Linux上運(yùn)行和在哪里運(yùn)行。
毫無(wú)疑問(wèn),Java程序比C語(yǔ)言程序能更快地移植。此外,在移植過(guò)程中,您還需要核實(shí)測(cè)試環(huán)境、用戶界面需求、平臺(tái)可靠性限制、中間件產(chǎn)品和內(nèi)部技能水平。每一個(gè)環(huán)境不仔細(xì)都可能在未來(lái)給您帶來(lái)麻煩。
應(yīng)用程序升級(jí)
應(yīng)用程序是移植過(guò)程中最重要的一塊。在某些情況下,您的應(yīng)用程序可以直接被移植,但是這種情況很少發(fā)生。另一種情況是,您必須在新平臺(tái)上重新編譯它們。移植和編譯過(guò)程都不復(fù)雜,然后需要做的就是測(cè)試以確認(rèn)一切OK。
應(yīng)用程序的移植過(guò)程應(yīng)該包括開(kāi)發(fā)和測(cè)試。在進(jìn)行移植的時(shí)候,您必須有可靠的辦法來(lái)保證您的數(shù)據(jù)庫(kù)正確移植。另外,應(yīng)用程序所要求的內(nèi)核擴(kuò)展和準(zhǔn)備驅(qū)動(dòng),在新的平臺(tái)上并不一定能夠得到滿足,因?yàn)榇蠖鄶?shù)的內(nèi)核API并不嚴(yán)格遵循標(biāo)準(zhǔn)。
應(yīng)用程序是否正在使用第三方組件,如數(shù)據(jù)庫(kù)工具、應(yīng)用服務(wù)器或其它中間件呢?如果是,這會(huì)增加移植的復(fù)雜性。應(yīng)用程序是32位還是64位?如果是從32位移植到64為,您將不得不付出更多的時(shí)間。應(yīng)用程序如何和數(shù)據(jù)庫(kù)通信呢?它們使用數(shù)據(jù)庫(kù)接口嗎,如ODBC或者編程語(yǔ)言,如C++?這些方面您都需要認(rèn)真考慮。從人工的角度來(lái)講,盡可能的讓那些有各種移植項(xiàng)目經(jīng)歷的人加入您的團(tuán)隊(duì)。
穩(wěn)定性和性能評(píng)測(cè)
通常在最初的幾周內(nèi),各種應(yīng)用程序問(wèn)題會(huì)陸續(xù)出現(xiàn),工程師們會(huì)***時(shí)間想辦法來(lái)解決它們。這時(shí)候您可能想重新審視您的項(xiàng)目計(jì)劃并調(diào)整交貨時(shí)間。
測(cè)試應(yīng)用的穩(wěn)定、功能和性能非常關(guān)鍵。與其花費(fèi)200萬(wàn)美元開(kāi)發(fā)新系統(tǒng),還不如花費(fèi)2000美元測(cè)試。測(cè)試的順序通常如下:
遷移工程師對(duì)于需要移植的應(yīng)用程序進(jìn)行模塊測(cè)試。
應(yīng)用工程師執(zhí)行功能性測(cè)試。
用戶驗(yàn)收測(cè)試(UAT)。該階段實(shí)際的商業(yè)用戶進(jìn)行測(cè)試。
性能工程師進(jìn)行性能測(cè)試。
在測(cè)試過(guò)程中,對(duì)要遷移的應(yīng)用程序進(jìn)行壓力測(cè)試不可缺少,這樣能確保新系統(tǒng)能夠應(yīng)付各種負(fù)載。此時(shí),您應(yīng)該已經(jīng)完成了基本的測(cè)試,并且對(duì)于舊環(huán)境和新環(huán)下的應(yīng)用程序性能,您該心中有數(shù)。
對(duì)于穩(wěn)定性和性能,也需要進(jìn)行類似的測(cè)試。嘗試擊敗你的系統(tǒng)。使用諸如惠普LoadRunner等工具來(lái)模擬正常量5倍的負(fù)載。
現(xiàn)在是時(shí)候來(lái)發(fā)現(xiàn)Bug了,當(dāng)然這不是在生產(chǎn)環(huán)境上。在進(jìn)入生產(chǎn)環(huán)境之前,您就有機(jī)會(huì)調(diào)試問(wèn)題。利用測(cè)試,不要讓使用系統(tǒng)的人來(lái)核實(shí)是否有問(wèn)題。業(yè)務(wù)內(nèi)容也必須涉及,而且應(yīng)該有獨(dú)立的UAT計(jì)劃。如果您的系統(tǒng)在舊環(huán)境上有很高的可用性,那么在新環(huán)境下,必須測(cè)試高可用性是否繼續(xù)有效。
【編輯推薦】