實戰(zhàn):從Unix遷移到Linux
從Unix向Linux遷移所要做的第一個步驟就是準(zhǔn)備好一個測試環(huán)境。你的團隊可能缺乏Linux的相關(guān)經(jīng)驗,有一個測試環(huán)境用來學(xué)習(xí)是非常必要的(不用擔(dān)心誤操作破壞任何東西)。
讓我們來討論以下代碼和程序。你的系統(tǒng)運行JAVA還是C語言?是否存在什么第三方的工具需要遷移?它們是否能遷移到Linux上?
假設(shè)你用的是C語言。再假設(shè)你有一些代碼需要遷移到LINUX系統(tǒng)上去。建議使用GNU(gcc)程序,因為它符合工業(yè)標(biāo)準(zhǔn),是Linux下天生的編譯器。用其它平臺編譯的程序?qū)⑿枰匦戮幾g一次。
關(guān)于編譯你的業(yè)務(wù)代碼有兩種方法可供選擇。第一個方法是在你已有的環(huán)境中進(jìn)行編譯,這種情況下你要準(zhǔn)備好所有需要的工具,包括源代碼和編譯好的文件。如果你考慮這種方法的話,務(wù)必在你的測試環(huán)境中進(jìn)行,千萬不要在生產(chǎn)環(huán)境里做。
另一個方法是將你的所有數(shù)據(jù)和代碼都移動到新環(huán)境里,然后用原型環(huán)境來運行進(jìn)行測試。這種情況需要考慮硬件平臺。如果你計劃遷移硬件平臺,也許有些和硬件相關(guān)的代碼會有麻煩,最糟糕的例子可能會迫使你重寫代碼。
在遷移過程中,務(wù)必確認(rèn)你的開發(fā)人員也參與其中,并且不要假設(shè)任何事情。充分考慮包括API,系統(tǒng)呼叫,streams和庫支持等方面因素。確保你完全明白你的目標(biāo)。這些因素是你在實施之前做評估以及確認(rèn)所有和應(yīng)用相關(guān)的庫和依存關(guān)系的關(guān)鍵所在。用這種方法可以讓你迅速確認(rèn)在新的LINUX環(huán)境下哪些產(chǎn)品是可用的以及在哪能找到它們。
毫無疑問的,用JAVA編寫的程序相對用C寫的程序來說,遷移起來要快速一些。除了你的應(yīng)用程序之外,你還需要確認(rèn)測試環(huán)境,用戶界面需求,平臺依賴限制,中間件和內(nèi)部的技術(shù)水平。每一個方面都存在一些風(fēng)險。
升級應(yīng)用
升級過程中最重要的部分就是應(yīng)用程序了。在一些案例中,應(yīng)用被很容易地遷移到新系統(tǒng)中,也沒有額外的工作需要做。而在另一些案例中,你不得不在你的新平臺中重編譯它們。遷移軟件有時在重編譯完程序之后就完成了,然后就是運行驗證測試來確保一切都沒有問題。
遷移過程應(yīng)當(dāng)包含開發(fā)和測試。當(dāng)你遷移你的系統(tǒng)時,請首先確認(rèn)你遷移數(shù)據(jù)庫所要采用的方法。那些需要內(nèi)核擴展和驅(qū)動程序的應(yīng)用不太容易實施,部分原因是大部分內(nèi)核API都不是按嚴(yán)格標(biāo)準(zhǔn)來設(shè)計的。
應(yīng)用是否采用了第三方的軟件組件,比如數(shù)據(jù)庫工具,應(yīng)用服務(wù)或者其它中間件?這些會增加遷移的復(fù)雜性。應(yīng)用是32位的還是64位的?如果你要將32位平臺遷移至64位,你將花費更多的時間來實施。你的應(yīng)用如何和數(shù)據(jù)庫通訊?它使用如ODBC的數(shù)據(jù)庫交互界面或者如C++之類的編程語言嗎?這些因素你都應(yīng)該充分考慮。站在一個員工的立場,盡量讓有這方面項目經(jīng)驗的人來實施會比較穩(wěn)妥。
檢驗穩(wěn)定性和性能
應(yīng)用問題一般在運行的頭幾個星期就會被發(fā)現(xiàn),工程師在這個時段會對即將面對的問題有個模糊的概念。這時你也許會想再重新復(fù)核一些項目計劃來調(diào)整交付日期。
測試對驗證穩(wěn)定性非常重要,包括功能和性能。不要花費了200萬美元開發(fā)一個新系統(tǒng)之后只愿意再花兩千美元用來測試。測試的順序一般如下:
- 負(fù)責(zé)遷移的工程師進(jìn)行應(yīng)用的模塊測試。
- 應(yīng)用工程師進(jìn)行功能測試。
- 然后是用戶驗收測試,或者簡稱UAT。這時有真實的系統(tǒng)用戶來進(jìn)行的測試。
- 性能功能是進(jìn)行性能測試。
- 在測試過程中,本質(zhì)上遷移的應(yīng)用是在壓力環(huán)境下進(jìn)行測試,這樣以確保系統(tǒng)能處理相應(yīng)的負(fù)載。你應(yīng)該完成基本測試,它們都是在你現(xiàn)有的生產(chǎn)環(huán)境下進(jìn)行以獲取性能快照。
- 你的目標(biāo)是以穩(wěn)定性和性能為導(dǎo)向進(jìn)行的相似的測試。嘗試攻擊你的系統(tǒng)。利用一些如惠普的loadrunner等的工具來模擬5倍于常用操作產(chǎn)生的系統(tǒng)負(fù)載。
- 接下來是找出漏洞-在遷移到生產(chǎn)環(huán)境之前就要做。你應(yīng)該在它們遷移到生產(chǎn)環(huán)境之前抓住機會調(diào)試程序從而找出問題所在。利用測試過程,另外不要只是讓你的系統(tǒng)管理員們來驗證系統(tǒng)。公司里業(yè)務(wù)部門的用戶不僅應(yīng)該參與進(jìn)來,而且應(yīng)該加入用戶驗收測試計劃的編寫。就算你的系統(tǒng)在舊環(huán)境中非常穩(wěn)定,也仍然要確認(rèn)它們被充分測試。
【編輯推薦】