应用自动容器化的方法、装置、设备、介质和程序产品与流程
未命名
09-12
阅读:80
评论:0

1.本发明涉及计算机数据处理领域,特别涉及一种应用自动容器化的方法、装置、设备、介质和程序产品。
背景技术:
2.目前国内大型银行的应用大多依赖于虚拟机的运行环境,虚拟机是基于计算机硬件上使用软件进行模拟硬件使用的一种终端环境,应用是在虚拟机中执行的二进制代码,不仅依赖于虚拟机的操作系统,例如,现有国外操作系统大多为centos、redhat、oraclelinux等,存在系统许可证被卡脖子的风险,国产化系统(kylinv10)改造的需求十分迫切,而且在系统国产化改造过程中,不仅包括操作系统的国产化适配,还需要底层硬件做到国产化适配,使用软件技术达到脱离操作系统层级的限制,在此技术上对业务功能开发的代码做到无缝迁移和运行。
3.目前业界没有针对在应用程序在kylinv10系统的容器化改造的自动化工具,普遍是通过人工的方式进行源码阅读判断,然后依靠个人经验确定改造方案以及自动化推送部署方案。这种方案的缺点是:人工分析代码工程需要更多的时间和人力成本;针对同一个系统,不同开发者的个人经验可能不一样,改造方案无法统一,有可能造成代码可读性不强;从项目管理者的角度来说,无法精确地确定实际代码改造范围,从而给任务分工带来一定难度。
4.本发明提供的一种应用自动容器化的方法可以解决上述技术问题,可以把适用于redhat的源码改造为适用于kylinv10的代码,并在kylinv10上进行新的容器更新和镜像的改造。
技术实现要素:
5.本发明的目的在于提供一种应用自动容器化的方法、装置、设备、介质和程序产品,通过扫描目标目录进行源码文件的解析获得配置信息,并给出需要改造的目录以及改造规则,目录改造完成后,通过工具进行新的容器和镜像的改造。
6.第一方面,本发明的实施方式公开了一种应用自动容器化的方法,所述方法包括:
7.扫描步骤,扫描所述应用的目标目录下的源码文件以获得配置信息;
8.判断步骤,判断所述源码文件是否需要进行容器化改造,确定待改造的源码文件和无需改造的源码文件;
9.改造步骤,基于所述待改造的源码文件的所述配置信息生成预设规则表,基于所述配置信息和所述预设规则表更新所述源码文件至容器。
10.可选地,所述改造步骤还包括创建python任务,执行所述python任务处理所述待改造的源码文件以获得改造文件,基于所述改造文件更新所述源码文件至所述容器。
11.可选地,所述配置信息包括所述源码文件的线程池大小、待扫描文件路径、排外路径、结果存放路径、队列深度、支持后缀、正则表达式、所述正则表达式对应的规则。
12.可选地,所述python任务包括扫描任务和分析任务,对所述待改造的源码文件执行所述扫描任务和所述分析任务获得所述改造文件,所述改造文件包括改造规则。
13.可选地,所述扫描任务包括创建区块队列以处理所述待改造的源码文件。
14.可选地,所述分析任务包括基于线程池容量创建相应数量的线程以分析所述待改造的源码文件。
15.可选地,支持扫描的所述源码文件的格式后缀包括java、c、xml、sh、sql、qry、ctl。
16.第二方面,本发明公开了一种应用自动容器化的装置,所述装置包括:
17.扫描模块,扫描所述应用的目标目录下的源码文件以获得配置信息;
18.判断模块,判断所述源码文件是否需要进行容器化改造,确定待改造的源码文件和无需改造的源码文件;
19.改造模块,基于所述待改造的源码文件的所述配置信息生成预设规则表,基于所述配置信息和所述预设规则表更新所述源码文件至容器。
20.第三方面,本发明的实施方式公开了一种电子设备,其特征在于,所述设备包括处理器和存储有计算机可执行指令的存储器,所述处理器被配置为执行所述指令以实施上述的应用自动容器化的方法。
21.第四方面,本发明的实施方式公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机指令,所述至少一条指令由处理器加载并执行,以实现上述的应用自动容器化的方法。
22.第五方面,本发明的实施方式公开了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被执行时,以实现上述的应用自动容器化的方法。
23.本发明提供了一种应用自动容器化的方法、装置、介质和程序产品,通过自动扫描并分析代码工程中指定目录下的所有源码文件,根据自定义的规则映射表,生成是否涉及容器化改造的改造文件,并在结果清单中给出具体改造规则。
24.本发明实施方式与现有技术相比,主要区别及其效果在于:本发明主要解决的是业务功能代码从虚拟机一键式改造为容器化适配的通配性及自动化版本更新至容器的问题,可以实现开发流程的工具化;本发明为应用系统国产化和容器化改造过程中自动化编排、推送、更新、部署提升了开发速度和开发质量;本发明可根据不同的文件后缀执行对应的正则匹配规则服务,使生成的结果集更加灵活精准。
附图说明
25.图1是根据本发明实施例的一种应用自动容器化的方法的场景示意图;
26.图2是根据本发明实施例的一种应用自动容器化的方法的流程图;
27.图3是根据本发明实施例的一种更新容器的流程图;
28.图4是根据本发明实施例的一种应用自动容器化的装置的结构框图;
29.图5是根据本发明实施例的一种电子设备的硬件结构框图。
具体实施方式
30.下面结合具体实施例和附图对本发明做进一步说明。可以理解的是,此处描述的具体实施例仅仅是为了解释本发明,而非对本发明的限定。此外,为了便于描述,附图中仅
示出了与本发明相关的部分而非全部的结构或过程。应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项。
31.应当理解的是,虽然在本文中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了进行区分,而不能理解为指示或暗示相对重要性。举例来说,在不背离示例性实施例的范围的情况下,第一特征可以被称为第二特征,并且类似地第二特征可以被称为第一特征。
32.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
33.本发明中涉及的若干技术术语解析:
34.虚拟机应用:虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。每个虚拟机都有独立的cmos、硬盘和操作系统,应用运行在虚拟机环境中。
35.容器化应用:容器是用于将应用与其所有必要文件捆绑到一个运行时环境中的技术。
36.jrscdockertool:基于镜像技术一键式改造应用容器化的工具。
37.图1是根据本发明实施例的一种应用自动容器化的方法的场景示意图。
38.图1示出了本公开实施例适用的一种应用场景的示意图。在该应用场景中,涉及的设备包括用于自动容器化的应用的设备,应用设备可以为虚拟机,图1以应用设备为第一虚拟机101为例。在第一虚拟机101上,可扫描应用的目标目录下的源码文件,获得源码文件的配置信息。
39.如图1所示,源码文件可预先存储在数据库中。
40.如图1所示,应用场景涉及的设备还可包括用于通过预设规则表对源码文件进行处理的改造设备,改造设备可以为虚拟机,图1以改造设备为第二虚拟机102为例。在第一虚拟机101上基于源码,容器化改造源码后,将第一虚拟机101上的改造后的源码文件部署至第二虚拟机102上,在第二虚拟机102上,通过自动化工具对新的容器进行更新和镜像改造。
41.其中,虚拟机101和虚拟机102可以为一个或多个,虚拟机的数量不应该作为本发明的限制条件。例如在应用工程系统中,源码文件来自于不同的虚拟机,至少一个虚拟机将改造后的文件发送至新的虚拟机。本技术实施例提供的应用自动容器化的方法可以应用于终端中,也可以应用于服务器中,虚拟机和终端可以是智能手机、平板电脑、笔记本电脑、台式电脑等计算机设备,具备运算能力、输入输出功能及网络连接功能。虚拟机101和虚拟机102可以是单台虚拟机设备,也可以是虚拟机集群、云虚拟机等具备向外提供游戏应用服务的计算机设备。服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现应用程序迁移方法的应用等,但并不局限于以上形式。
42.现有技术中,业界针对业务功能容器化改造,主要集中在源码编译以及x86架构下的适配改造,对于应用程序在kylinv10系统的容器化改造,由于差异性不好处理,并没有完美的转换工具。
43.本发明可以实现应用程序在kylinv10系统的容器化改造,可以解决业务功能代码从虚拟机一键式改造为容器化适配的通配性及自动化版本更新至容器的问题。
44.图2是根据本发明实施例的一种应用自动容器化的方法的流程图。
45.如图2所示,本发明的应用自动容器化的方法需要虚拟机101和虚拟机102的配合,该方法包括以下步骤:
46.扫描步骤s100:扫描应用的目标目录下的源码文件以获得配置信息。
47.一种举例中,出于数据安全的考量,需要对应用进行迁移改造,许多基于操作系统centos、red hat、oracle linux的应用需要迁移到国产操作系统,例如国产操作系统kylinv10,国外操作系统centos、red hat、oracle linux和国产操作系统kylinv10具备不同的产品特性,而且操作系统与应用程序之间存在耦合,为了保证应用的正常运作,需要对应用进行相应的改造适配,才能在新的操作系统上正常运行,操作系统centos、red hat、oracle linux上的应用数据相当于源码数据,国产操作系统kylinv10上的应用数据相当于目标数据,通过稻苗应用目录下源码的配置信息,给出需要改造的目录,即确定出需要进行容器化改造的源码文件,筛选出不需要进行改造的源码文件,大大节约改造的时间成本和减弱改造的复杂程度,对需要进行容器化改造的源码文件进行扫描,确定与之匹配的预设规则表,该预设规则表用于确定需要改造的源码文件所要执行的队列任务,经过队列处理后,给出改造文件的改造结果,改造结果包括改造文件的具体方法,最终实现应用的转换适配,获得适用于国产操作系统的目标数据,无需人工迁移,能够提高开发效率;基于此,对需要进行改造的应用扫描,通过预设规则表对应的匹配规则并执行python任务,给出具体的改造规则清单,能够有效的将应用所连接的数据库由源码数据库迁移至目标数据库,实现了应用的源码文件的自动同步迁移,相对于人工迁移,能够减少源码迁移过程的耗时,从而提高开发效率,另外,还能提高源码迁移的准确率,保证源码迁移的质量,针对同一个系统,改造方案统一,有利于增强代码的可读性。
48.作为一种实施方式,获取应用的源码文件包括:获取应用的应用信息;基于应用信息,确定源码地址;基于源码地址,获取应用的源码文件;其中,应用信息是指应用迁移过程相关的信息,应用信息包括但不限于:源码文件或者python相关的开发工具包和接口。应用信息是应用程序的转换适配过程必要的输入信息,每个待转换适配的应用程序维护一条应用数据。
49.作为一种实施方式,源码文件的配置信息包括源码文件的线程池大小、待扫描文件路径、排外路径、结果存放路径、队列深度、支持后缀、正则表达式、正则表达式对应的规则。
50.可以理解的是,获得应用目录下的源码文件的配置信息有利于进行目标匹配,匹配队列进行任务处理和分析活动。
51.在具体实践中,源码文件在改造更新后,后续需要对更新后的源码文件进行源码编译和部署处理,得到更新后的应用程序。
52.作为一种实施方式,支持扫描的源码文件的格式后缀包括java、c、xml、sh、sql、qry、ctl。
53.本发明可自动化扫描应用工程目标目录下目标文件后缀的文件。
54.值得注意的是,本发明提供的应用自动容器化的方法不仅可以适用于java类型的
应用程序,还可以适用于多种文件后缀类型的应用程序。
55.判断步骤s200:判断源码文件是否需要进行容器化改造,确定待改造的源码文件和无需改造的源码文件。
56.本发明为python语言+shell语言开发的应用程序,利用python语言的filecmp模块和difflib模块进行源码文件目录及源码文件内容的检索和对比,获取应用的配置属性文件,利用多线程和线程锁技术实现文件扫描、规则匹配和生成改造结果的任务,可以自动判断源码文件是否需要容器化改造。
57.一种举例中,迁移操作系统oracle linux上应用,基于oracle linux上应用的源码文件的配置信息确定源码是否适用于国产操作系统kylinv10,当源码适用于国产操作系统kylinv10时,该源码不进行改造,当源码不适用于国产操作系统kylinv10时,该源码需要进行改造以适用于国产操作系统kylinv10。
58.改造步骤s300:基于待改造的源码文件的配置信息生成预设规则表,基于配置信息和预设规则表更新源码文件至容器。
59.作为一种实施方式,改造步骤还包括创建python任务,执行python任务处理待改造的源码文件以获得改造文件,基于改造文件更新源码文件至容器。
60.作为一种实施方式,根据不同的文件格式生成不同的预设规则表,每一种预设规则表具有相应的匹配规则,匹配规则与python任务相对应。
61.作为一种实施方式,python任务包括扫描任务和分析任务,对待改造的源码文件执行扫描任务和分析任务获得改造文件,改造文件包括改造规则。
62.作为一种实施方式,扫描任务包括创建区块队列以处理待改造的源码文件。
63.作为一种实施方式,分析任务包括基于线程池容量创建相应数量的线程以分析待改造的源码文件。
64.一种举例中,迁移操作系统oracle linux上应用,获取应用文件的应用信息,基于应用信息确定源码位置,获取源码文件,获取源码文件的配置信息,基于oracle linux上应用的源码文件的配置信息确定源码是否适用于国产操作系统kylinv10,当源码适用于国产操作系统kylinv10时,该源码不进行改造,当源码不适用于国产操作系统kylinv10时,该源码需要进行改造以适用于国产操作系统kylinv10,即对需要进行改造的源码文件执行步骤s300,基于待改造的源码文件的配置信息,例如,源码文件的线程池大小、待扫描文件路径、排外路径、结果存放路径、队列深度、支持后缀、正则表达式、正则表达式对应的规则,生成预设规则表,预设规则表具有相应的匹配规则,匹配规则与python任务相对应,基于配置信息和预设规则表创建python任务,创建区块队列,扫描路径下所有的待扫描的源码文件,并逐一塞入区块队列,基于任务的线程池容量创建相应数量的线程以分析待源码文件,待python任务执行结束,导出结果集,获得改造文件,改造文件包括具体的改造规则,基于改造规则更新源码文件至容器。
65.源码文件在改造更新后,后续需要对更新后的源码文件进行源码编译和部署处理,得到更新后的应用程序。
66.图3是根据本发明实施例的一种更新容器的流程图。
67.本发明为python语言和shell语言结合开发的应用程序,利用python语言的filecmp模块和difflib模块进行源码文件目录及源码文件内容的检索和对比,获取应用配
置属性文件,利用多线程和线程锁技术实现文件扫描、规则匹配和生成结果集任务,可以自动判断源码是否需要容器化改造。
68.利用python技术和shell技术实现信创技术栈kylinv10系统的一键式自动化源码编译、私有镜像编排制作、镜像推送、镜像部署、容器更新验证。
69.本发明进行国产化需求的改造,把原本适用于red hat的源码改造为适用于kylinv10的代码,并在kylinv10上进行新的容器和镜像的改造,实现源码编译和镜像制作。
70.其中,源码编译,即根据已改造完成的容器化源码进行编译,使用python语言的工具进行编译。
71.其中,镜像制作包括私有镜像编排制作、镜像推送、镜像部署;私有镜像编排制作,即根据当前的自动化工具依据应用部署单元进行不同单元的编排;镜像推送,即根据当前自动化工具实现镜像在kylinv10系统进行推送至容器;镜像部署,即根据当前自动化工具推送私有镜像至容器后自动完成部署;镜像更新,即根据当前自动化工具在镜像完成推送后自动更新。以上为现有技术,在此不做赘述。
72.如图3所示,本发明的一种更新容器的流程图涉及两次更新活动,可以理解的是,更新容器为基于改造文件的改造规则对需要进行改造的源码进行改造,将改造后的源码更新至容器,镜像更新为应用程序的更新,即对更新后的源码文件进行源码编译和镜像制作,获得更新后的应用程序。
73.一种举例中,迁移操作系统oracle linux上应用,获取应用文件的应用信息,基于应用信息确定源码位置,获取源码文件,获取源码文件的配置信息,基于oracle linux上应用的源码文件的配置信息确定源码是否适用于国产操作系统kylinv10,当源码适用于国产操作系统kylinv10时,该源码不进行改造,当源码不适用于国产操作系统kylinv10时,该源码需要进行改造以适用于国产操作系统kylinv10,即对需要进行改造的源码文件执行步骤s300,基于待改造的源码文件的配置信息,例如,源码文件的线程池大小、待扫描文件路径、排外路径、结果存放路径、队列深度、支持后缀、正则表达式、正则表达式对应的规则,生成预设规则表,预设规则表具有相应的匹配规则,匹配规则与python任务相对应,基于配置信息和预设规则表创建python任务,创建区块队列,扫描路径下所有的待扫描的源码文件,并逐一塞入区块队列,基于任务的线程池容量创建相应数量的线程以分析待源码文件,待python任务执行结束,导出结果集,获得改造文件,改造文件包括具体的改造规则,基于改造规则更新源码文件至容器。对更新后的源码文件进行源码编译和镜像制作,源码编译可以包括对需要进行改造的源码文件的更新后的源码文件进行源码编译,也可以对不需要进行改造的源码文件进行源码编译,以适应应用的迁移;对编译后的源码进行镜像制作,例如,基于开源的docker容器及k8s集群进行容器自动化改造,可以实现自动更新容器,用于持续、自动、监控应用程序的更新和运行。
74.图4是根据本发明实施例的一种应用自动容器化的装置的结构框图。
75.如图4所示,应用自动容器化装置400包括:扫描模块410、判断模块420、改造模块430;
76.扫描模块410,扫描应用的目标目录下的源码文件以获得配置信息;
77.判断模块420,判断源码文件是否需要进行容器化改造,确定待改造的源码文件和无需改造的源码文件;
78.改造模块430,基于待改造的源码文件的配置信息生成预设规则表,基于配置信息和预设规则表更新源码文件至容器。
79.本实施方式与前述实施方式是相对应的方法实施方式,本实施方式可与前述实施方式方式互相配合实施。前述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在前述实施方式中。
80.根据本发明的一些实施例,公开了一种电子设备,设备包括存储有计算机可执行指令的存储器和处理器,处理器被配置为执行指令以实施一种应用自动容器化方法。
81.图5是实施根据本发明实施例的电子设备的硬件结构框图。
82.如图5所示,电子设备500可以包括一个或多个处理器502、与处理器502中的至少一个连接的系统控制逻辑508、与系统控制逻辑508连接的系统内存505、与系统控制逻辑508连接的非易失性存储器(nvm)506、以及与系统控制逻辑508连接的网络接口510。
83.处理器502可以包括一个或多个单核或多核处理器。处理器502可以包括通用处理器和专用处理器(例如,图形处理器、应用处理器、基带处理器等)的任何组合。在本发明的实施例中,处理器502可以被配置为执行根据如图2所示的应用自动容器化的方法。
84.在一些实施例中,系统控制逻辑508可以包括任意合适的接口控制器,以向处理器502中的至少一个和/或与系统控制逻辑508通信的任意合适的设备或组件提供任意合适的接口。
85.在一些实施例中,系统控制逻辑508可以包括一个或多个存储器控制器,以提供连接到系统内存505的接口。系统内存505可以用于加载以及存储数据和/或指令。在一些实施例中电子设备500的系统内存505可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(dram)。
86.nvm 506可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,nvm 506可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如hdd(hard disk drive,硬盘驱动器)、cd(compact disc,光盘)驱动器、dvd(digital versatile disc,数字通用光盘)驱动器中的至少一个。
87.nvm 506可以包括安装在电子设备500的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口510通过网络访问nvm 506。
88.特别地,系统内存505和nvm 506可以分别包括:指令520的暂时副本和永久副本。指令520可以包括:由处理器502中的至少一个执行时导致电子设备500实施如图2所示的方法的指令。在一些实施例中,指令520、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑508、网络接口510和/或处理器502中。
89.网络接口510可以包括收发器,用于为电子设备500提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(例如,前端模块、天线等)进行通信。在一些实施例中,网络接口510可以集成于电子设备500的其他组件。例如,网络接口510可以集成于处理器502、系统内存505、nvm 506、和具有指令的固件设备(未示出)中的至少一种,当处理器502中的至少一个执行所述指令时,电子设备500实现图2所示的各种实施例的一个或多个实施例。
90.网络接口510可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无
线电接口。例如,网络接口510可以是网络适配器、无线网络适配器、电话调制解调器和/或无线调制解调器。
91.在一个实施例中,处理器502中的至少一个可以与用于系统控制逻辑508的一个或多个控制器封装在一起,以形成系统封装(sip)。在一个实施例中,处理器502中的至少一个可以与用于系统控制逻辑508的一个或多个控制器集成在同一管芯上,以形成片上系统(soc)。
92.电子设备500可以进一步包括:输入/输出(i/o)设备512,与系统控制逻辑508连接。i/o设备512可以包括用户界面,使得用户能够与电子设备500进行交互;外围组件接口的设计使得外围组件也能够与电子设备500交互。在一些实施例中,电子设备500还包括传感器,用于确定与电子设备500相关的环境条件和位置信息的至少一种。
93.在一些实施例中,i/o设备512可包括但不限于显示器(例如,液晶显示器、触摸屏显示器等)、扬声器、麦克风、一个或多个相机(例如,静止图像照相机和/或摄像机)、手电筒(例如,发光二极管闪光灯)和键盘。
94.在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。
95.可以理解的是,本发明实施例示意的结构并不构成对电子设备500的具体限定。在本技术另一些实施例中,电子设备500可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或软件和硬件的组合实现。
96.可将程序代码应用于输入指令,以执行本发明描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,包括处理器502的用于处理指令的系统包括具有诸如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。
97.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本发明中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
98.根据本发明的一个实施例,还提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机指令,所述至少一条指令由处理器加载并执行,以实现前述的应用自动容器化的方法。
99.根据本发明的一个实施例,还提出了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被执行时,实现前述的应用自动容器化的方法。
100.本发明的说明性实施例包括但不限于一种应用自动容器化的方法、装置、设备、介质和程序产品。
101.将使用本领域技术人员通常采用的术语来描述说明性实施例的各个方面,以将他们工作的实质传达给本领域其他技术人员。然而,对于本领域技术人员来说,使用部分所描述的特征来施行一些替代性实施例是显而易见的。出于解释的目的,阐述了具体的数字和配置,以便对说明性实施例进行更加透彻的理解。然而,对于本领域技术人员来说显而易见的是,可以在没有具体细节的情况下实施替代实施例。在一些其他情况下,本文省略或简化了一些众所周知的特征,以避免使本发明的说明性实施例模糊不清。
102.此外,各种操作将以最有助于理解说明性实施例的方式被描述为多个彼此分离的操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖描述的顺序,其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序也可以被重新安排。当所描述的操作完成时,所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
103.说明书中对“一种举例”、“举例中”、“一种实施例”、“一种实施方式”等的引用表示所描述的实施例可以包括特定特征、结构或性质,但是每个实施例也可能或不是必需包括特定的特征、结构或性质。而且,这些短语不一定是针对同一实施例。此外,当结合具体实施例描述特定特征,本领域技术人员的知识能够影响到这些特征与其他实施例的结合,无论这些实施例是否被明确描述。
104.除非上下文另有规定,否则术语“包含”、“具有”和“包括”是同义词。短语“a和/或b”表示“(a)、(b)或(a和b)”。
105.如本文所使用的,术语“模块”可以指代,作为其中的一部分,或者包括:用于运行一个或多个软件或固件程序的存储器(共享、专用或组)、专用集成电路(asic)、电子电路和/或处理器(共享、专用或组)、组合逻辑电路、和/或提供所述功能的其他合适组件。
106.在附图中,可能以特定布置和/或顺序示出了一些结构或方法特征。然而,应当理解的是,这样的特定布置和/或排序不是必需的。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来进行说明。另外,特定附图中所包含得结构或方法特征并不意味着所有实施例都需要包含这样的特征,在一些实施例中,可以不包含这些特征或者可以与将这些特征与其他特征进行组合。
107.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
108.类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
109.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
110.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例
中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
技术特征:
1.一种应用自动容器化的方法,用于电子设备,其特征在于,包括:扫描步骤,扫描所述应用的目标目录下的源码文件以获得配置信息;判断步骤,判断所述源码文件是否需要进行容器化改造,确定待改造的源码文件和无需改造的源码文件;改造步骤,基于所述待改造的源码文件的所述配置信息生成预设规则表,基于所述配置信息和所述预设规则表更新所述源码文件至容器。2.根据权利要求1所述的应用自动容器化的方法,其特征在于,所述改造步骤还包括创建python任务,执行所述python任务处理所述待改造的源码文件以获得改造文件,基于所述改造文件更新所述源码文件至所述容器。3.根据权利要求1所述的应用自动容器化的方法,其特征在于,所述配置信息包括所述源码文件的线程池大小、待扫描文件路径、排外路径、结果存放路径、队列深度、支持后缀、正则表达式、所述正则表达式对应的规则。4.根据权利要求1所述的应用自动容器化的方法,其特征在于,所述python任务包括扫描任务和分析任务,对所述待改造的源码文件执行所述扫描任务和所述分析任务获得所述改造文件,所述改造文件包括改造规则。5.根据权利要求4所述的应用自动容器化的方法,其特征在于,所述扫描任务包括创建区块队列以处理所述待改造的源码文件。6.根据权利要求4所述的应用自动容器化的方法,其特征在于,所述分析任务包括基于线程池容量创建相应数量的线程以分析所述待改造的源码文件。7.根据权利要求1-6任一项所述的应用自动容器化的方法,其特征在于,支持扫描的所述源码文件的格式后缀包括java、c、xml、sh、sql、qry、ctl。8.一种应用自动容器化的装置,其特征在于,包括:扫描模块,扫描所述应用的目标目录下的源码文件以获得配置信息;判断模块,判断所述源码文件是否需要进行容器化改造,确定待改造的源码文件和无需改造的源码文件;改造模块,基于所述待改造的源码文件的所述配置信息生成预设规则表,基于所述配置信息和所述预设规则表更新所述源码文件至容器。9.一种电子设备,其特征在于,所述设备包括存储有计算机可执行指令的存储器和处理器,所述处理器被配置为执行所述指令以实施根据权利要求1-7中任一项所述的应用自动容器化的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机指令,所述至少一条指令由处理器加载并执行,以实现如权利要求1-7中任一项所述的应用自动容器化的方法。11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令被执行时,实现如权利要求1-7中任一项所述的应用自动容器化的方法。
技术总结
本发明涉及计算机数据处理领域,特别涉及一种应用自动容器化的方法,该方法包括扫描步骤,扫描所述应用的目标目录下的源码文件以获得配置信息;判断步骤,判断所述源码文件是否需要进行容器化改造,确定待改造的源码文件和无需改造的源码文件;改造步骤,基于待改造的源码文件的配置信息生成预设规则表,基于配置信息和预设规则表更新源码文件至容器。本发明还涉及一种应用自动容器化的装置、设备、介质和程序产品。本发明可以辅助本领域技术开发人员完成代码的扫描改造,实现应用的自动容器化改造,显著降低人工成本。显著降低人工成本。显著降低人工成本。
技术研发人员:吴方正 刘波 黄文宝 陈长鹏
受保护的技术使用者:建信金融科技有限责任公司
技术研发日:2023.07.11
技术公布日:2023/9/9
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/