


摘要:隨著國產化替代需求日益迫切,在完成硬件國產化替代的基礎上,如何將現有系統遷移至國產化環境已成為亟待解決的問題。文章以某系統為例,研究了國產化遷移的工作步驟,包括風險評估、方案制定、系統適配、數據遷移、部署測試、問題歸零及驗收等,并基于Docker實現了系統的遷移部署。
關鍵詞:國產化遷移;Docker;系統適配;數據遷移;達夢數據庫
中圖分類號:TP301文獻標識碼:A
文章編號:1009-3044(2024)35-0047-03開放科學(資源服務)標識碼(OSID):
0引言
近年來,西方國家在一些關鍵技術方面對我國實施嚴格封鎖,危及國家信息安全命脈。信息安全已成為我國社會面臨的嚴峻問題,因此實現信息產品軟硬件國產化具有重大意義和緊迫性。
目前,國產化產品不僅在計算機、操作系統、數據庫、辦公軟件、中間件等方面日趨成熟,而且與云計算、Docker等虛擬化技術結合更加緊密。采用基于Docker容器的國產化遷移,可以有效降低開發成本,簡化部署多種應用實例的工作[1],快速實現國產化替代。研究辦公信息系統的國產化遷移,對于保障國家信息安全、提升自主可控能力具有重要意義。對于已具備遷移條件的成熟系統,采用國產化遷移方式可以有效降低開發成本,快速實現國產化替代。
1現狀分析
對待遷移系統的現狀進行分析,并明確遷移工作步驟。
遷移前:系統采用虛擬化部署方式,運行于X86平臺的VMware虛擬機中,操作系統為WindowsServer,數據庫為MySQL。
遷移后:系統將遷移至基于國產銀河麒麟操作系統的云計算平臺,部署于Docker容器中,數據庫采用國產達夢數據庫。與傳統的使用虛擬機進行虛擬化方式相比,Docker容器具有簡化部署、快速可用和更高速的虛擬化等優勢[2]。
國產化遷移工作通常包括以下步驟:風險評估、方案制定、系統適配、數據遷移、部署測試、問題歸零及驗收。遷移工作步驟如表1所示。
2風險評估
2.1兼容性風險評估
系統可能與國產化硬件和軟件存在兼容性問題,例如驅動程序不兼容、接口標準不一致等,可能導致系統無法正常運行或功能受限。解決對策:充分調研系統對軟硬件的要求,論證是否能夠通過修改代碼完成適配,制定詳細的測試計劃,進行充分的技術研究和測試。
2.2進度風險評估
系統遷移過程中的技術難題、環境搭建、測試驗證等環節都可能導致進度延誤,影響項目整體進度。解決對策:制定詳細的項目計劃,明確每個階段的時間節點和責任人;采用敏捷開發等靈活的開發模式,加快開發進度;加強風險監控和預警,及時采取措施應對進度風險。
2.3穩定性風險評估
國產化遷移后的系統可能會面臨穩定性問題,如系統崩潰、功能不完善等,影響用戶體驗。解決對策:進行充分的系統測試,包括功能測試、性能測試、安全測試、可用性測試和兼容性測試等;建立完善的運維監控體系,及時發現和解決系統問題;與國產化平臺廠商合作,共同提升系統的穩定性和可靠性。
2.4安全性風險評估
國產化遷移后的系統可能會面臨安全性問題,例如漏洞攻擊、數據泄露等。解決對策:進行全面的安全風險評估,識別系統存在的安全漏洞和風險點;制定詳細的安全防護方案,采取多層次的安全防護措施,例如防火墻、入侵檢測和數據加密等;加強安全意識培訓,提高用戶和管理員的安全意識和技能。
3系統適配
為了更好地進行適配,需要了解系統的結構,明確適配內容。該系統采用SpringBoot框架開發,后臺提供了動態的數據庫結構管理。底層數據庫連接池采用Druid,是一種支持實時分析的分布式數據存儲系統[3]。數據庫查詢封裝組件采用MyBatis-Plus,查詢數據庫底層代碼采用QueryWrapper進行查詢條件的組合。系統使用JDBC連接數據庫,采用MySQL語句實現對數據庫表的創建、編輯和刪除等操作。遷移至國產環境前,需要修改配置文件及動態數據庫表的增刪改查操作,在原有代碼的基礎上,按照達夢數據庫表的語法對其代碼進行優化升級,新增對達夢數據庫的操作語句和代碼。具體包含以下內容。
3.1修改配置文件
需要修改pom.xml文件,例如添加達夢數據庫的依賴項等;在application.yml文件中配置數據源信息,更換數據庫的方言、連接地址、用戶名和密碼等。
3.2底層代碼適配
包括創建表代碼、編輯表字段代碼、重命名字段代碼、創建主鍵、普通索引和刪除索引等。
創建表代碼:根據達夢數據庫的語法規范,修改創建數據表的SQL語句,包括數據類型、默認值和約束等。
編輯表字段代碼:根據達夢數據庫的語法規范,修改編輯數據表字段的SQL語句,包括修改字段類型、長度和默認值等。
重命名字段代碼:根據達夢數據庫的語法規范,修改重命名字段的SQL語句。
創建主鍵:根據達夢數據庫的語法規范,修改創建主鍵的SQL語句。
普通索引和刪除索引代碼:根據達夢數據庫的語法規范,修改創建和刪除索引的SQL語句。
創建全文索引代碼:根據達夢數據庫的語法規范,修改創建全文索引的SQL語句。
修改表名稱代碼:根據達夢數據庫的語法規范,修改表名稱的SQL語句。
4數據遷移
數據遷移包括數據庫遷移和文件系統遷移兩部分。數據庫遷移需要將原MySQL數據庫中的數據導入達夢數據庫,文件系統遷移需要將系統相關的文件和目錄遷移至目標環境。在國產化替代進程中,如何實現主流數據庫中的歷史數據向國產數據庫的遷移成為推進過程中的重點和難點,也制約著部分機構推進國產化的積極性[4]。在數據遷移過程中遇到了以下問題:
4.1數據庫無法直接連接
在遷移前后的兩個數據庫可以直連的情況下,使用達夢數據庫的遷移工具可以直接連接MySQL數據庫,將所有數據表復制到達夢數據庫中,通過創建遷移任務,按照遷移步驟進行配置。由于遷移前后的兩個系統無法直接連接,因此無法使用這種方法。
在遷移前后的兩個數據庫無法直連的情況下,有兩種數據遷移方式:其中一種是將MySQL數據庫導出的.sql文件,按照達夢數據庫的語法對導出的.sql文件進行編輯修改,包括但不限于字段類型定義的語法、索引創建的語法、編碼格式定義的語法和函數使用的語法等,再將修改后的數據導入達夢數據庫,該方法費時費力、效率較低;另一種方法是在MySQL安裝環境預先安裝達夢數據庫,將MySQL表通過達夢數據庫的遷移工具遷移到達夢數據庫中,再將該環境中的達夢數據庫中的表全部導出,然后新建遷移任務,將數據導入目標環境中的達夢數據庫,該方法無須人工修改,高效便捷。
4.2字段信息不匹配
在數據遷移過程中,可能會出現由于數據庫字段類型或長度不匹配導致的錯誤。例如,MySQL數據庫中的VARCHAR類型字段在達夢數據庫中可能需要轉換為TEXT類型。針對這類問題,需要根據實際情況修改數據庫表結構或數據轉換規則。
4.3大小寫敏感
達夢數據庫默認情況下對數據庫對象名稱大小寫敏感。為避免數據遷移過程中出現大小寫敏感問題,建議在安裝達夢數據庫時選擇大小寫不敏感模式。如果已經安裝了大小寫敏感的數據庫,需要將其卸載后重新安裝,并在安裝過程中選擇大小寫不敏感選項。
5部署測試
系統采用Docker容器化部署,可以有效提高資源利用率,簡化部署流程,并提高系統的可移植性和可擴展性。基于Dockerfile創建Docker鏡像是最常用的方式,須按照Dockerfile的語法編寫文件,根據軟件的實際情況添加配置項。通過上云測試后,將鏡像文件保存到本地。接著安裝打包工具,獲得授權文件并將其保存在指定目錄下。完成CPU數、占用空間等基本配置、健康檢查參數設置、掛載卷設置和容器端口映射等后,完善基本信息及數據配置、應用配置等,預覽cpk文件整體結構和數據,確認無誤后即可進行打包,將生成的cpk文件上傳至鏡像倉庫并進行部署。
軟件測試作為軟件研發領域中的重要環節,直接影響軟件產品質量,一直備受重視[5]。軟件測試是軟件開發過程中不可或缺的環節,直接影響軟件質量。國產化平臺的軟件測試技術相對欠缺,需要加強相關研究和實踐。系統在完成國產化適配和部署后,通過進行功能測試、接口測試、兼容性測試和安全性能測試等,進行了全面測試驗證。
功能測試:驗證系統功能是否符合預期,包括核心業務功能、用戶界面和數據處理等方面的測試。
性能測試:測試系統的性能指標,包括響應時間、吞吐量和并發用戶數等,以評估系統是否滿足性能需求。
兼容性測試:測試系統與目標國產化環境的兼容性,包括硬件兼容性、操作系統兼容性和數據庫兼容性等。
安全測試:測試系統的安全性,包括用戶認證、權限控制和數據加密等,以評估系統是否滿足安全需求。
以功能測試中的“用戶管理”為例,表2為具體的測試內容。
根據測試計劃和用例,準備測試數據并執行測試。對測試過程中發現的問題進行記錄、分析和跟蹤,直至問題得到解決。測試結果表明,系統功能正常,性能滿足要求,兼容性良好,安全性符合標準,滿足國產化改造要求。
6總結與展望
通過對遷移過程的精心準備和實施,系統成功遷移至國產化平臺,并經過嚴格的測試驗證,運行穩定,功能正常。建議在系統設計和開發階段就充分考慮國產化需求,預留接口和擴展機制,以便于后續進行國產化適配和遷移。此外,從用戶角度出發,逐步建立對國產化軟硬件平臺的信任,幫助用戶提高工作效率??梢栽谝韵禄A上逐步實現升級:持續改進系統功能和性能,提升用戶體驗;加強與國產化平臺廠商的合作,及時解決系統兼容性和穩定性問題;關注新技術發展趨勢,如云計算、大數據和人工智能等,探索將新技術應用于系統中,進一步提升系統的智能化和自動化水平。
參考文獻:
[1]張建,謝天鈞.基于Docker的平臺即服務架構研究[J].信息技術與信息化,2014(10):131-134.
[2]武志學.云計算虛擬化技術的發展與趨勢[J].計算機應用,2017,37(4):915-923.
[3]歐陽辰,劉麒赟,張海雷,等.Druid實時大數據分析原理與實踐[M].北京:電子工業出版社,2017.
[4]姜湘崗,劉瑾,張曉昆,等.Oracle數據庫向國產數據庫遷移的技術分析[J].北京電子科技學院學報,2017,25(4):39-44.
[5]薛巖,姜鑫,陳坤喬.指揮信息系統軟件測試研究[J].工業控制計算機,2020,33(6):25-27.
【通聯編輯:謝媛媛】