CN117648198A - 应用适配方法及装置、设备及存储介质 - Google Patents

应用适配方法及装置、设备及存储介质 Download PDF

Info

Publication number
CN117648198A
CN117648198A CN202410123500.8A CN202410123500A CN117648198A CN 117648198 A CN117648198 A CN 117648198A CN 202410123500 A CN202410123500 A CN 202410123500A CN 117648198 A CN117648198 A CN 117648198A
Authority
CN
China
Prior art keywords
application
server
mirror image
request
cloud platform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410123500.8A
Other languages
English (en)
Other versions
CN117648198B (zh
Inventor
邢玥
高士尧
李进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Bige Big Data Co ltd
Original Assignee
Beijing Bige Big Data Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Bige Big Data Co ltd filed Critical Beijing Bige Big Data Co ltd
Priority to CN202410123500.8A priority Critical patent/CN117648198B/zh
Publication of CN117648198A publication Critical patent/CN117648198A/zh
Application granted granted Critical
Publication of CN117648198B publication Critical patent/CN117648198B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种应用适配方法及装置、设备及存储介质,所述方法包括:接收指定应用适配第一服务器的请求,其中,指定应用安装在第二服务器上,第一服务器与第二服务器不同;查询已知镜像仓库中与请求对应的镜像;若存在与请求对应的镜像,获取镜像中的交叉编译组件和指定应用在云平台上的运行工具,并根据交叉编译组件和指定应用在云平台上的运行工具,建立指定应用与第二服务器之间的数据交互通道;若不存在与请求对应的镜像,构建与请求对应的镜像,能够实现应用在不同服务器上的平滑适配,无需修改任何代码,支持在不同的CPU架构环境中无差别地运行应用程序,提升应用的跨CPU架构适配工作的效率,并降低技术门槛。

Description

应用适配方法及装置、设备及存储介质
技术领域
本公开涉及云计算技术领域,尤其涉及一种应用适配方法及装置、设备及存储介质。
背景技术
相关技术中,通常通过人工在信创基础软硬件的环境下重新打包编译完成整体代码重建构实现应用适配。
然而,针对信创基础软硬件环境下重新打包编译,现有环境于信创环境由于CPU架构、操作系统、数据库、中间件底层逻辑差别极大,且信创软硬件产品的种类多,适配过程由人工手动进行且需要大量修改底层代码导致适配周期长、重新编译的开发成本高、对开发环境依赖性大,无法满足现有大规模快速适配的场景,其中,CPU架构是指中央处理器(CPU)的设计和组织方式,不同的CPU架构采用不同的指令集和内部结构,影响着计算机的性能和功能。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种应用适配方法及装置、设备及存储介质。
第一方面,本公开的实施例提供了一种应用适配方法,包括:
接收指定应用适配第一服务器的请求,其中,指定应用安装在第二服务器上,第一服务器与第二服务器不同;
根据第一服务器和第二服务器上的指定应用,查询已知镜像仓库中与请求对应的镜像,其中,镜像包括第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件、第一服务器;
在已知镜像仓库中存在与请求对应的镜像的情况下,获取镜像中的交叉编译组件和指定应用在云平台上的运行工具,并根据交叉编译组件和指定应用在云平台上的运行工具,建立指定应用与第二服务器之间的数据交互通道;
在已知镜像仓库中不存在与请求对应的镜像的情况下,构建与请求对应的镜像。
在一种可能的实施方式中,所述构建与请求对应的镜像,包括:
根据请求中指定应用的应用包、指定应用在云平台上的运行工具以及指定应用在云平台上的运行实例,确定指定应用对应的交叉编译组件;
基于所述交叉编译组件,建立指定应用与第二服务器之间的数据交互通道;
将第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件和第一服务器组成镜像。
在一种可能的实施方式中,所述根据指定应用的应用包、指定应用在云平台上的运行工具以及指定应用在云平台上的运行实例,确定指定应用对应的交叉编译组件,包括:
将指定应用的应用包和指定应用在云平台上的运行工具,放置在云平台上的运行实例中,使得指定应用基于运行工具在运行实例中运行;
从预设的交叉编译组件库中,选择与指定应用开发语言对应的交叉编译组件;
遍历选择的每一个交叉编译组件,直到遍历出满足预设条件的交叉编译组件为止,将满足预设条件的交叉编译组件作为指定应用对应的交叉编译组件,其中,所述预设条件是将指定应用的指令编译为第二服务器可执行的指令。
在一种可能的实施方式中,所述镜像仓库包括本地镜像仓库和远端镜像仓库,所述镜像仓库通过以下步骤得到:
在本地创建命名空间;
将镜像放入命名空间,得到本地镜像仓库;
将本地镜像仓库推送至远端,得到远端镜像仓库。
在一种可能的实施方式中,所述方法还包括:
接收配置文件,其中,所述配置文件包括镜像推送参数、镜像部署参数和镜像更新参数中的至少一种;
根据配置文件对镜像进行推送、部署和更新。
在一种可能的实施方式中,所述方法还包括:
通过以下步骤对镜像仓库进行实时存储:
对镜像仓库的存储情况进行实时监控和采集,并利用瓶颈识别技术,采集获取迁移瓶颈状态数据信息,并在缓存设置方面,实时检测缓存调节态势数据信息,建立存储性能数据集;
将迁移瓶颈状态数据信息和缓存调节态势数据信息均传输至存储性能数据集内,并将其进行数据清洗和特征提取,并依据无量纲处理技术将处理后的数据信息进行标准化处理;
利用云计算技术将数据清洗后的迁移瓶颈状态数据信息进行综合分析学习,以获取瓶颈因子,并结合数据迁移时出现的中断次数,汇总生成迁移状态系数;
通过特征提取后的缓存调节态势数据信息,获取块大小和缓存命中率,并将所述块大小与所述缓存命中率相关联,获取缓存调控系数,将所述缓存调控系数与所述迁移状态系数进行综合分析,并结合神经网络模型后训练生成软件存储性能预测模型,并经过无量纲处理后,以获取性能态势评估指数;
预先设置评估阈值,并将评估阈值与所述性能态势评估指数进行对比分析,获取预测结果,针对预测结果获取相应的等级提升策略。
在一种可能的实施方式中,所述性能态势评估指数通过以下表达式获取:
其中,Ttlz表示为吞吐量,F1、F2和F3分别表示为缓存调控系数Tkxs、迁移状态系数Pyxs和吞吐量Ttlz的比例系数,其中,0.10≤F1≤0.22,0.15≤F2≤0.36,0.20≤F3≤0.42,且0.55≤F1+F2+F3≤1.0,C表示为第一修正常数。
第二方面,本公开的实施例提供了一种应用适配装置,包括:
接收模块,用于接收指定应用适配第一服务器的请求,其中,指定应用安装在第二服务器上,第一服务器与第二服务器不同;
查询模块,用于根据第一服务器和第二服务器上的指定应用,查询已知镜像仓库中与请求对应的镜像,其中,镜像包括第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件、第一服务器;
建立模块,用于在已知镜像仓库中存在与请求对应的镜像的情况下,获取镜像中的交叉编译组件和指定应用在云平台上的运行工具,并根据交叉编译组件和指定应用在云平台上的运行工具,建立指定应用与第二服务器之间的数据交互通道;
构建模块,用于在已知镜像仓库中不存在与请求对应的镜像的情况下,构建与请求对应的镜像。
第三方面,本公开的实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述的应用适配方法。
第四方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的应用适配方法。
本公开实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:
本公开实施例所述的应用适配方法,接收指定应用适配第一服务器的请求,其中,指定应用安装在第二服务器上,第一服务器与第二服务器不同;根据第一服务器和第二服务器上的指定应用,查询已知镜像仓库中与请求对应的镜像,其中,镜像包括第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件、第一服务器;在已知镜像仓库中存在与请求对应的镜像的情况下,获取镜像中的交叉编译组件和指定应用在云平台上的运行工具,并根据交叉编译组件和指定应用在云平台上的运行工具,建立指定应用与第二服务器之间的数据交互通道;在已知镜像仓库中不存在与请求对应的镜像的情况下,构建与请求对应的镜像,能够实现应用在不同服务器上的平滑适配,无需修改任何代码,支持在不同的CPU架构环境中无差别地运行应用程序,提升应用的跨CPU架构适配工作的效率,并降低技术门槛。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出了根据本公开实施例的应用适配方法流程示意图;
图2示意性示出了根据本公开实施例的镜像仓库组件示意图;
图3示意性示出了根据本公开实施例的镜像仓库组件组件关系示意图;
图4示意性示出了根据本公开实施例的应用适配方法的应用场景示意图;
图5示意性示出了根据本公开实施例的应用适配自动化工具示意图;
图6示意性示出了根据本公开实施例的应用适配方法的部署架构示意图;
图7示意性示出了根据本公开实施例的应用适配方法的技术架构示意图;
图8示意性示出了根据本公开实施例的应用适配方法的多硬盘存储架构示意图;
图9示意性示出了根据本公开实施例的应用适配装置的结构框图;
图10示意性示出了根据本公开实施例的应用适配平台的结构框图;
图11示意性示出了根据本公开实施例的电子设备的结构框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
参见图1,本公开的实施例提供了一种应用适配方法,包括以下步骤:
S1,接收指定应用适配第一服务器的请求,其中,指定应用安装在第二服务器上,第一服务器与第二服务器不同。
在本实施例中,指定应用适配第一服务器是指将一个应用程序或软件系统进行修改或调整,以适应第一服务器的环境或需求。
S2,根据第一服务器和第二服务器上的指定应用,查询已知镜像仓库中与请求对应的镜像,其中,镜像包括第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件、第一服务器。
S3,在已知镜像仓库中存在与请求对应的镜像的情况下,获取镜像中的交叉编译组件和指定应用在云平台上的运行工具,并根据交叉编译组件和指定应用在云平台上的运行工具,建立指定应用与第二服务器之间的数据交互通道。
在本实施例中,指定应用在云平台上的运行工具可以是基础镜像。
S4,在已知镜像仓库中不存在与请求对应的镜像的情况下,构建与请求对应的镜像。
在本实施例,步骤S4中,所述构建与请求对应的镜像,包括:
利用适配执行器根据请求中指定应用的应用包、指定应用在云平台上的运行工具以及指定应用在云平台上的运行实例,确定指定应用对应的交叉编译组件,其中,指定应用在云平台上的运行实例通过云平台上的dockerfile模板实现,dockerfile为用来构建docker镜像的文件,docker为开源的应用容器引擎;
基于所述交叉编译组件,利用适配管道建立指定应用与第二服务器之间的数据交互通道;
将第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件和第一服务器组成镜像。
在本实施例中,所述根据指定应用的应用包、指定应用在云平台上的运行工具以及指定应用在云平台上的运行实例,确定指定应用对应的交叉编译组件,包括:
将指定应用的应用包和指定应用在云平台上的运行工具,放置在云平台上的运行实例中,使得指定应用基于运行工具在运行实例中运行;
从预设的交叉编译组件库中,选择与指定应用开发语言对应的交叉编译组件;
遍历选择的每一个交叉编译组件,直到遍历出满足预设条件的交叉编译组件为止,将满足预设条件的交叉编译组件作为指定应用对应的交叉编译组件,其中,所述预设条件是将指定应用的指令编译为第二服务器可执行的指令。
在本实施例,步骤S3中,所述镜像仓库包括本地镜像仓库和远端镜像仓库,所述镜像仓库通过以下步骤得到:
在本地创建命名空间;
将镜像放入命名空间,得到本地镜像仓库;
将本地镜像仓库推送至远端,得到远端镜像仓库。
在本实施例中,所述方法还包括:
接收配置文件,其中,所述配置文件包括镜像推送参数、镜像部署参数和镜像更新参数中的至少一种;
根据配置文件对镜像进行推送、部署和更新。
在本实施例中,镜像仓库组件和组件关系,如图2和图3所示,其中,在图2中,Kubelet是Kubernetes集群中的节点代理,它负责维护节点上的Pod并确保容器健康运行,Core是核心服务,UI是界面,Portal是入口,Notary是镜像签名系统组件,API Handlers为接口处理程序,clair用于静态分析appc和docker容器中的漏洞,Trivy是漏洞/错误配置扫描器,用于容器和 K8s 环境,Artifact为工件,JobService用于执行一些需要满足特定条件但不紧急的后台任务,Docker Distribution是docker提供的私有仓库软件包,它也可以运行在容器中,RegistryCtl是Docker Distribution 的控制组件,ChartMuseum用于存储和管理Charts的仓库,Redis缓存组件,S3和OSS均为对象存储服务,在图3中,Registry用于储存 Docker 镜像,Core services为核心服务,UI为界面,Token为镜像仓库附加参数,Webhook为协议回调,Database为数据库,本地镜像仓库通过应用适配任务执行,沉淀各个架构项目镜像,提供项目镜像精细化管理平台,具备推送项目镜像到远端仓库的功能,并同步记录推送历史。远端镜像仓库通过镜像服务和镜像仓库等字段连接到远端仓库,建立通信通道,为本地镜像仓库的项目镜像提供目的地。镜像仓库有以下特性:多租户控制:多租户权限分离,用户权限是基于镜像仓库组织的;镜像同步策略:镜像可以在多个镜像仓库实例之间进行同步,适用于负载均衡,高可用性、多数据中心和多云场景等;支持图像删除和垃圾收集,可回收镜像资源空间;镜像审计:提供镜像同步日志和镜像存储记录,并支持多架构镜像自动合并;可视化界面:提供人性化的图形界面,可以轻松浏览镜像,并对镜像仓库进行管理;自动化状态监测:内置状态监测定时任务,精准管控镜像仓库状态;平台管理应用于信创部署环节,该功能可连接远程信创容器云平台,对平台连通性和部署历史进行管理,可在应用适配中灵活选择迁移部署的信创云平台,该功能具备以下特性:兼容性强:为租户提供多种信创容器云平台连接入口,可一次性管理连接多厂商多类别的云平台;统一标准:为容器云平台的连接提供标准连接方式和接口;多方式状态监测:提供定时任务平台状态监测和手动状态监测;环境分离:平台和命名空间层级隔离,可配置测试环境、研发环境和正式环境等集群,根据不同适配步骤,针对性选参;应用适配功能包括文件管理、任务执行、部署配置和任务历史模块,为应用适配通用模版配置和迁移执行提供可视化界面。文件管理是任务执行的必要环节,为应用数据的沉淀提供“仓库”,是标准的应用管理平台,可对不同语言的应用进行版本管理和文件管理,避免迁移过程中导致数据混乱和丢失,该功能具备以下特性:支持多语言应用管理:其中支持java、golang、python、html、js、C、C++、node.js、php、.NetCore等语言应用管理;支持java应用包的解压和压缩,可灵活调整应用文件;多文件对象存储管理:可存储大容量非结构化数据,吞吐量高、延迟低、运维简单轻量;支持文件预览和编辑,包括.propertities .xml .yml .yaml、dockerfile、.conf和.cnf等文件;多版本控制:对应用进行多版本管理,灵活迁移不同版本;版本继承:支持版本的继承功能,可复制父版本应用文件;多文件上传:可灵活上传多数量多类型应用文件和文件夹,无上传限制;故障恢复:自动监测磁盘状态,自动发现和修复损坏的数据分片,保护已存储应用文件;支持蠕虫数据保护功能;支持对文件压缩加密。
参见图4,将不同语言的基础镜像版本,镜像仓库和平台部署全部配置完毕后,按照要求把需要适配的应用包上传,在自动化工具页面点击立即执行,即可构建不同架构镜像,在容器管理平台查询对应的命名空间,在“XXXXXip地址”为“XXXX架构,操作系统是XXXXXXX”的情况下,说明应用信创适配成功。
参见图5,应用适配的自动化工具主要包括配置管理、应用适配和后台管理三大功能模块。配置管理包括镜像管理,镜像仓库和平台管理三大部分。该功能使用定位于迁移实施前,提前配置应用适配中使用的数据,为镜像构建、镜像存储、镜像推送和镜像部署提供基础数据和运行环境,无需适配实施中动态配置,提高适配效率。镜像管理中管理员可维护基础镜像和工具镜像,租户使用该内置数据。镜像管理可秒级替换同架构镜像,对镜像实行精细化管理,为应用适配提供交叉编译的基础环境和必要条件。基础镜像为项目镜像构建提供支持,并提供必要或更广阔的扩展空间。除重大安全更新、添加新的扩展模块之外,基础镜像并不会经常更新和调整。基础镜像包括多类型多版本信创镜像,如bgweb、gobase等,可兼容不同语言应用,支持同版本不同架构基础镜像自动合并,可视化查看基础镜像来源拓扑图,提供合并和分架构基础镜像增删改查入口。工具镜像为机器学习工作流提供基础工具组件,工作流执行时可拉取工具镜像并形成工具组件,为应用适配提供组件能力。镜像仓库可建立本地仓库和远端仓库的连接通道。本地镜像仓库存放项目镜像。
在本实施例中,部署配置为适配提供大量内置模板,可选择适合的模板并填写变量参数,保存后生成适配yaml文件。模板的提供使应用适配从“设计态”向“点选态”转变,降低技术难度,非技术人员亦可灵活操作。
在本实施例中,应用适配具有以下特性:交叉编译,异构漂移:一键构建多架构镜像是基于交叉编译的镜像构建方式。交叉编译是在一个平台上可以交叉生成在另一个平台的可执行代码,平台可以提供多架构的虚拟仿真环境,基于虚拟仿真的镜像架构,将多个可执行的代码编译打包成目标的架构镜像,通过manifest的方式,维护清单列表,将多平台架构镜像进行组合,支持一次性构建X86、ARM等多种架构镜像;快速部署更新:支持多版本应用快速构建镜像和部署更新,内置多语言自定义配置文件,通过服务的形式公开,快速便捷将应用部署到平台上;驱动和方言包自动无感插入:支持java语言应用自动插入不同类型不同版本目标数据库驱动;自定义配置:可选择自行上传的dockerfile文件,灵活应对不同应用适配场景;适配历史审计:提供适配任务历史记录,并且可重新执行任务,提供可视化执行日志,可快速定位问题根源;提供隔离的运行环境:每一步适配任务运行都是独立的应用,无需考虑各自依赖;内置机器学习工作流,无需手动构建工作流。
在本实施例中,后台管理中,通用模板管理用户群体为后台管理员或技术人员,内置多种通用模板供租户使用。可申明部署文件和dockerfile文件变量,检测文件中变量,然后维护自定义变量属性并形成表单,保存时,提供文件变量和表单自动检测功能,防止因为变量缺失而造成迁移失败。该功能将抽象的代码文件转换为形象的表单点选,降低学习成本,扩大用户群体,无需租户自行编辑配置文件,点选完成后即可执行应用适配。字典管理为全局设置,为应用适配提供变量参数,其中包括应用语言分类、南向数据库、数据库驱动和方言包等,可视化配置参数,可应对众多复杂场景。参数配置管理将平台中可自定义的参数暴露出来,在减少运维工作量的同时,增强了平台的可拓展性。该功能为全局设置,其中包括单点登录、缓存和基础镜像存储配置。任务执行可视化页面,通过迁移yaml(YAML Ain’t Markup Language,人类可读的数据序列化格式)文件渲染而成,可同步编辑步骤参数,立即执行并发起迁移任务。租户可通过文件管理直接上传该文件或通过部署配置选择内置通用迁移模板生成该文件。该页面可将繁琐的代码文件转换成图形页面,逻辑条理清晰,降低迁移难度。
本公开的应用适配方法基于跨架构CPU容器云底层,部署集成自动化工具,将需要适配的应用打包成镜像,实现应用跨CPU硬件架构能正常运行的方法,提升跨CPU架构适配工作的效率,降低技术门槛,用户可以实现平滑适配,而无需修改任何代码,同时支持在不同的CPU架构环境中无差别地运行应用程序。
参见图6,适配方法构建的自动化工具核心应用服务为前端服务、管理服务、引擎服务、客户端服务和初始化服务等,中间件服务包括Rcache缓存数据库、国产关系型数据库、S3分布式文件系统、容器引擎等,并且依赖外部镜像仓库管理服务,用于管理和存储应用程序的镜像。
参见图7,本公开的应用适配方法除了核心组件,还支持多种语言的适配,并提供稳定可扩展的数据服务、应用服务、代理服务和安全服务,通过这些服务可以确保应用程序在适配后的环境中能够正常工作,其中,核心组件包括适配执行器、适配管道、镜像仓库和交叉编译组件,这些组件共同支持应用程序的适配过程,并保障其顺利完成,安全服务包括镜像扫描器、漏洞库、权限认证和密码加密等,确保适配过程中的应用程序和数据的安全性和保密性,这些功能和服务共同构成了适配方法构建的自动化工具的核心技术能力。
在本实施例中,所述方法还包括:
通过以下步骤对镜像仓库进行实时存储:
对镜像仓库的存储情况进行实时监控和采集,并利用瓶颈识别技术,采集获取迁移瓶颈状态数据信息,并在缓存设置方面,实时检测缓存调节态势数据信息,建立存储性能数据集;
将迁移瓶颈状态数据信息和缓存调节态势数据信息均传输至存储性能数据集内,并将其进行数据清洗和特征提取,并依据无量纲处理技术将处理后的数据信息进行标准化处理;
利用云计算技术将数据清洗后的迁移瓶颈状态数据信息进行综合分析学习,以获取瓶颈因子,并结合数据迁移时出现的中断次数,汇总生成迁移状态系数;
通过特征提取后的缓存调节态势数据信息,获取块大小和缓存命中率,并将所述块大小与所述缓存命中率相关联,获取缓存调控系数,将所述缓存调控系数与所述迁移状态系数进行综合分析,并结合神经网络模型后训练生成软件存储性能预测模型,并经过无量纲处理后,以获取性能态势评估指数;
预先设置评估阈值,并将评估阈值与所述性能态势评估指数进行对比分析,获取预测结果,针对预测结果获取相应的等级提升策略。
在本实施例中,所述性能态势评估指数通过以下表达式获取:
其中,Ttlz表示为吞吐量,F1、F2和F3分别表示为缓存调控系数Tkxs、迁移状态系数Pyxs和吞吐量Ttlz的比例系数,其中,0.10≤F1≤0.22,0.15≤F2≤0.36,0.20≤F3≤0.42,且0.55≤F1+F2+F3≤1.0,C表示为第一修正常数。
在本实施例中,所述瓶颈因子通过以下表达式获取:
式中,Pjyz为瓶颈因子,Wlkd表示为网络带宽,Dssd表示为读写速度,Bflj表示为并发连接数,j、h和i分别表示为网络带宽Wlkd、读写速度Dssd和并发连接数Bflj的比例系数,其中,0.05≤j≤0.20,0.15≤h≤0.30,0.33≤i≤0.50,且0.60≤j+h+i+≤1.0,P表示为第二修正常数。
在本实施例中,所述迁移状态系数通过以下表达式获取:
式中,Pyxs表示为迁移状态系数,Ysjz表示为已迁移数据量,和/>均表示为比例系数,M1表示为第三修正常数。
在本实施例中,所述缓存调控系数通过以下表达式获取:
式中,Tkxs表示为缓存调控系数,RLz表示为缓存容量,Kds表示为块大小,Hcmz表示为缓存命中率,a1和a2均表示为比例系数,M2表示为第四修正常数。
在本实施例中,针对不同应用场景,存储架构可定制开发单主机单硬盘,单主机多硬盘和多主机多硬盘,如图8所示,所述应用适配方法还包括:
在对镜像仓库进行实时存储之前,对镜像仓库数据先进行纠删分片,后打散存储在各硬盘上,具体步骤为:
自动在集群内生成若干纠删组,每个纠删组包含一组硬盘,其数量通常为4至16块;
对镜像仓库数据进行分片,默认策略是得到相同数量的数据分片和校验分片;
通过哈希算法计算出该镜像仓库数据对应的纠删组,并将数据和校验分片存储至纠删组内的硬盘上。
本公开的应用适配方法支持一次性构建多种CPU架构镜像,在国家信创技术发展中,为信创环境和非信创环境“架桥铺路”,能够实现应用业务软件跨架构高效适配不同CPU服务器,降低技术门槛,提升多种架构的适配工作效率。
本公开的应用适配方法无需对应信创基础软硬件的环境即可通过自动化的工具完成跨CPU架构并实现零代码修改的适配工作;基于云原生架构设计,采用容器化、微服务和敏捷开发等技术,以提供高度可扩展性、弹性和可靠性;采用微服务架构,将应用程序拆分为多个小型独立的服务,每个服务只关注一项功能,实现松耦合和独立部署,提升可维护性和扩展性;结合持续集成与持续部署(CI/CD)技术,实现代码的自动化构建、测试和部署,加快适配过程并保证应用的质量和稳定性;基于容器化技术,如Docker,将应用程序及其依赖项打包为独立的容器镜像,实现应用的运行环境隔离和可移植性;可以通过简单的操作完成应用的部署,减少人工操作的复杂性和错误率;提供通用模板,用户可以基于这些模板快速地适配和迁移部署完整的应用,不需要从零开始构建和配置,提高开发和适配效率;支持镜像管理,包括基础镜像和应用镜像,通过镜像管理,实现应用的版本控制、存储和分享,方便应用的适配、迁移和维护;具备弹性伸缩的能力,根据应用的负载情况自动调整资源的分配,以适应不同的流量需求,提高应用的性能和可用性;提供多种安全性保障措施,包括镜像扫描、漏洞修复、权限认证、加密传输等,保护应用和数据的安全。
参见图9,本公开的实施例提供了一种应用适配装置,包括:
接收模块11,用于接收指定应用适配第一服务器的请求,其中,指定应用安装在第二服务器上,第一服务器与第二服务器不同;
查询模块12,用于根据第一服务器和第二服务器上的指定应用,查询已知镜像仓库中与请求对应的镜像,其中,镜像包括第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件、第一服务器;
建立模块13,用于在已知镜像仓库中存在与请求对应的镜像的情况下,获取镜像中的交叉编译组件和指定应用在云平台上的运行工具,并根据交叉编译组件和指定应用在云平台上的运行工具,建立指定应用与第二服务器之间的数据交互通道;
构建模块14,用于在已知镜像仓库中不存在与请求对应的镜像的情况下,构建与请求对应的镜像。
本公开的应用适配装置,基于云原生架构适配,通过微服务技术与持续集成技术相结合,支持应适配服务;通过应用上传,导航式操作为用户提供一键部署功能,使得应用的适配部署变得简单便捷,用户基于通用模板可以快速便捷地适配部署一个完整应用的所有服务,提升应用适配工作效率的同时降低技术门槛,不修改一行代码平滑迁移,支持CPU异构环境无差别运行。
本公开的应用适配装置,通过应用适配实现了应用程序的零代码改动迁移,通过自动化工具和流程,将应用程序平滑地适配到跨CPU架构上,保证了应用程序的功能和性能不受影响。
参见图10,本公开提供一种应用适配平台,除了包括应用适配装置(图3中的应用适配)之外,还包括:镜像仓库管理功能,用于管理已经构建好的应用镜像,方便应用程序的存储、分享和版本管理。管理模块提供了对云平台的管理功能,包括对资源的配置、监控和调度,确保平台的稳定运行和高效管理。应用维护功能使得应用程序在迁移后能够进行正常的运维工作,包括配置管理、依赖管理和数据迁移等。
本公开的应用适配平台部署一套基于任意的CPU架构的服务器,部署容器云平台并通过自动化适配工具将应用程序平滑适配到多种不同CPU架构的环境,且无需对应用程序的代码进行任何改动,通过提供基础镜像管理、镜像仓库管理、平台管理、应用维护和应用适配等功能,简化、标准化和精细化迁移过程。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例中,接收模块11、查询模块12、建立模块13和构建模块14中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。接收模块11、查询模块12、建立模块13和构建模块14中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,接收模块11、查询模块12、建立模块13和构建模块14中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
参照图11所示,本公开的实施例提供的电子设备,包括处理器1110、通信接口1120、存储器1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信;
存储器1130,用于存放计算机程序;
处理器1110,用于执行存储器1130上所存放的程序时,实现如下所示应用适配方法:
接收指定应用适配第一服务器的请求,其中,指定应用安装在第二服务器上,第一服务器与第二服务器不同;
根据第一服务器和第二服务器上的指定应用,查询已知镜像仓库中与请求对应的镜像,其中,镜像包括第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件、第一服务器;
在已知镜像仓库中存在与请求对应的镜像的情况下,获取镜像中的交叉编译组件和指定应用在云平台上的运行工具,并根据交叉编译组件和指定应用在云平台上的运行工具,建立指定应用与第二服务器之间的数据交互通道;
在已知镜像仓库中不存在与请求对应的镜像的情况下,构建与请求对应的镜像。
上述的通信总线1140可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1120用于上述电子设备与其他设备之间的通信。
存储器1130可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器1130还可以是至少一个位于远离前述处理器1110的存储装置。
上述的处理器1110可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于同一发明构思,本公开的第五个示例性实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的应用适配方法。
该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的应用适配方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种应用适配方法,其特征在于,所述方法包括:
接收指定应用适配第一服务器的请求,其中,指定应用安装在第二服务器上,第一服务器与第二服务器不同;
根据第一服务器和第二服务器上的指定应用,查询已知镜像仓库中与请求对应的镜像,其中,镜像包括第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件、第一服务器;
在已知镜像仓库中存在与请求对应的镜像的情况下,获取镜像中的交叉编译组件和指定应用在云平台上的运行工具,并根据交叉编译组件和指定应用在云平台上的运行工具,建立指定应用与第二服务器之间的数据交互通道;
在已知镜像仓库中不存在与请求对应的镜像的情况下,构建与请求对应的镜像。
2.根据权利要求1所述的方法,其特征在于,所述构建与请求对应的镜像,包括:
根据请求中指定应用的应用包、指定应用在云平台上的运行工具以及指定应用在云平台上的运行实例,确定指定应用对应的交叉编译组件;
基于所述交叉编译组件,建立指定应用与第二服务器之间的数据交互通道;
将第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件和第一服务器组成镜像。
3.根据权利要求2所述的方法,其特征在于,所述根据指定应用的应用包、指定应用在云平台上的运行工具以及指定应用在云平台上的运行实例,确定指定应用对应的交叉编译组件,包括:
将指定应用的应用包和指定应用在云平台上的运行工具,放置在云平台上的运行实例中,使得指定应用基于运行工具在运行实例中运行;
从预设的交叉编译组件库中,选择与指定应用开发语言对应的交叉编译组件;
遍历选择的每一个交叉编译组件,直到遍历出满足预设条件的交叉编译组件为止,将满足预设条件的交叉编译组件作为指定应用对应的交叉编译组件,其中,所述预设条件是将指定应用的指令编译为第二服务器可执行的指令。
4.根据权利要求1所述的方法,其特征在于,所述镜像仓库包括本地镜像仓库和远端镜像仓库,所述镜像仓库通过以下步骤得到:
在本地创建命名空间;
将镜像放入命名空间,得到本地镜像仓库;
将本地镜像仓库推送至远端,得到远端镜像仓库。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收配置文件,其中,所述配置文件包括镜像推送参数、镜像部署参数和镜像更新参数中的至少一种;
根据配置文件对镜像进行推送、部署和更新。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过以下步骤对镜像仓库进行实时存储:
对镜像仓库的存储情况进行实时监控和采集,并利用瓶颈识别技术,采集获取迁移瓶颈状态数据信息,并在缓存设置方面,实时检测缓存调节态势数据信息,建立存储性能数据集;
将迁移瓶颈状态数据信息和缓存调节态势数据信息均传输至存储性能数据集内,并将其进行数据清洗和特征提取,并依据无量纲处理技术将处理后的数据信息进行标准化处理;
利用云计算技术将数据清洗后的迁移瓶颈状态数据信息进行综合分析学习,以获取瓶颈因子,并结合数据迁移时出现的中断次数,汇总生成迁移状态系数;
通过特征提取后的缓存调节态势数据信息,获取块大小和缓存命中率,并将所述块大小与所述缓存命中率相关联,获取缓存调控系数,将所述缓存调控系数与所述迁移状态系数进行综合分析,并结合神经网络模型后训练生成软件存储性能预测模型,并经过无量纲处理后,以获取性能态势评估指数;
预先设置评估阈值,并将评估阈值与所述性能态势评估指数进行对比分析,获取预测结果,针对预测结果获取相应的等级提升策略。
7.根据权利要求6所述的方法,其特征在于,所述性能态势评估指数通过以下表达式获取:
其中,Ttlz表示为吞吐量,F1、F2和F3分别表示为缓存调控系数Tkxs、迁移状态系数Pyxs和吞吐量Ttlz的比例系数,其中,0.10≤F1≤0.22,0.15≤F2≤0.36,0.20≤F3≤0.42,且0.55≤F1+F2+F3≤1.0,C表示为第一修正常数。
8.一种应用适配装置,其特征在于,包括:
接收模块,用于接收指定应用适配第一服务器的请求,其中,指定应用安装在第二服务器上,第一服务器与第二服务器不同;
查询模块,用于根据第一服务器和第二服务器上的指定应用,查询已知镜像仓库中与请求对应的镜像,其中,镜像包括第二服务器上的指定应用、指定应用在云平台上的运行工具、交叉编译组件、第一服务器;
建立模块,用于在已知镜像仓库中存在与请求对应的镜像的情况下,获取镜像中的交叉编译组件和指定应用在云平台上的运行工具,并根据交叉编译组件和指定应用在云平台上的运行工具,建立指定应用与第二服务器之间的数据交互通道;
构建模块,用于在已知镜像仓库中不存在与请求对应的镜像的情况下,构建与请求对应的镜像。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7中任一项所述的应用适配方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的应用适配方法。
CN202410123500.8A 2024-01-30 2024-01-30 应用适配方法及装置、设备及存储介质 Active CN117648198B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410123500.8A CN117648198B (zh) 2024-01-30 2024-01-30 应用适配方法及装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410123500.8A CN117648198B (zh) 2024-01-30 2024-01-30 应用适配方法及装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN117648198A true CN117648198A (zh) 2024-03-05
CN117648198B CN117648198B (zh) 2024-05-10

Family

ID=90050002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410123500.8A Active CN117648198B (zh) 2024-01-30 2024-01-30 应用适配方法及装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117648198B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190238331A1 (en) * 2018-01-29 2019-08-01 International Business Machines Corporation Encryption key management in a data storage system communicating with asynchronous key servers
CN111273960A (zh) * 2020-01-20 2020-06-12 山东汇贸电子口岸有限公司 一种实现云原生的mips架构容器云的方法
CN111679965A (zh) * 2020-04-23 2020-09-18 平安国际智慧城市科技股份有限公司 自动化测试方法、装置、计算机设备和存储介质
CN111858370A (zh) * 2020-07-28 2020-10-30 浪潮云信息技术股份公司 DevOps的实现方法、装置、计算机可读介质
CN113687913A (zh) * 2021-08-05 2021-11-23 浪潮云信息技术股份公司 一种面向边缘计算异构环境的轻量级应用适配方法
CN115756833A (zh) * 2022-11-07 2023-03-07 福建亿榕信息技术有限公司 一种面向多重异构环境下ai推理任务调度的方法及系统
CN116541065A (zh) * 2023-06-14 2023-08-04 飞腾信息技术有限公司 软件系统构建方法、装置、设备及计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190238331A1 (en) * 2018-01-29 2019-08-01 International Business Machines Corporation Encryption key management in a data storage system communicating with asynchronous key servers
CN111273960A (zh) * 2020-01-20 2020-06-12 山东汇贸电子口岸有限公司 一种实现云原生的mips架构容器云的方法
CN111679965A (zh) * 2020-04-23 2020-09-18 平安国际智慧城市科技股份有限公司 自动化测试方法、装置、计算机设备和存储介质
CN111858370A (zh) * 2020-07-28 2020-10-30 浪潮云信息技术股份公司 DevOps的实现方法、装置、计算机可读介质
CN113687913A (zh) * 2021-08-05 2021-11-23 浪潮云信息技术股份公司 一种面向边缘计算异构环境的轻量级应用适配方法
CN115756833A (zh) * 2022-11-07 2023-03-07 福建亿榕信息技术有限公司 一种面向多重异构环境下ai推理任务调度的方法及系统
CN116541065A (zh) * 2023-06-14 2023-08-04 飞腾信息技术有限公司 软件系统构建方法、装置、设备及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐星;李银桥;刘学锋;毛建华;: "企业开发、测试环境快速部署方案的设计与实现", 工业控制计算机, no. 03, 25 March 2018 (2018-03-25) *

Also Published As

Publication number Publication date
CN117648198B (zh) 2024-05-10

Similar Documents

Publication Publication Date Title
US10353913B2 (en) Automating extract, transform, and load job testing
US10430204B2 (en) System and method for cloud provisioning and application deployment
US9852196B2 (en) ETL tool interface for remote mainframes
US10372433B2 (en) Caching and analyzing images for faster and simpler cloud application deployment
US10592222B1 (en) System and method for installing, updating and uninstalling applications
US20120072903A1 (en) Multi-image migration system and method
US20050289538A1 (en) Deploying an application software on a virtual deployment target
US10366112B2 (en) Compiling extract, transform, and load job test data cases
US20130232245A1 (en) Automation for virtualized it environments
US20110209144A1 (en) Application runtime expert for deployment of an application on multiple computer systems
US8856740B2 (en) Implementing multiple versions of a plug-in concurrently
WO2023160327A1 (en) Container image management
CN117648198B (zh) 应用适配方法及装置、设备及存储介质
US20210232562A1 (en) Container-image reproduction and debugging
US10146804B2 (en) Computer implemented systems and methods to augment data from data sources by simultaneously adding enhancements generated by different technologies

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant