摘要:随着国产化替代需求日益迫切,在完成硬件国产化替代的基础上,如何将现有系统迁移至国产化环境已成为亟待解决的问题。文章以某系统为例,研究了国产化迁移的工作步骤,包括风险评估、方案制定、系统适配、数据迁移、部署测试、问题归零及验收等,并基于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总结与展望
通过对迁移过程的精心准备和实施,系统成功迁移至国产化平台,并经过严格的测试验证,运行稳定,功能正常。建议在系统设计和开发阶段就充分考虑国产化需求,预留接口和扩展机制,以便于后续进行国产化适配和迁移。此外,从用户角度出发,逐步建立对国产化软硬件平台的信任,帮助用户提高工作效率。可以在以下基础上逐步实现升级:持续改进系统功能和性能,提升用户体验;加强与国产化平台厂商的合作,及时解决系统兼容性和稳定性问题;关注新技术发展趋势,如云计算、大数据和人工智能等,探索将新技术应用于系统中,进一步提升系统的智能化和自动化水平。
参考文献:
[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.
【通联编辑:谢媛媛】