CN111459539A - 基于镜像分层的持续集成流水线运行方法及装置 - Google Patents
基于镜像分层的持续集成流水线运行方法及装置 Download PDFInfo
- Publication number
- CN111459539A CN111459539A CN202010265278.7A CN202010265278A CN111459539A CN 111459539 A CN111459539 A CN 111459539A CN 202010265278 A CN202010265278 A CN 202010265278A CN 111459539 A CN111459539 A CN 111459539A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- image data
- target
- layer mirror
- continuous integration
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种基于镜像分层的持续集成流水线运行方法及装置,其中,该方法包括:应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据;接收目标持续集成流水线的运行任务信息,从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据;基于Jenkins工具,应用所述目标基础通信层镜像数据和目标基础环境层镜像数据,运行所述目标持续集成流水线。本申请能够实现持续集成流水线的镜像分层,灵活且高效,进而能够提高持续集成流水线运行的可靠性和效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于镜像分层的持续集成流水线运行方法及装置。
背景技术
Docker是一种开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Jenkins是一种开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
现阶段流水线中使用的镜像均为综合性镜像,常用镜像为2.74G,运行比较占物理空间。在镜像中安装例如git/yum/expect这些常用的基础性工具,在此基础上安装代码编译环境,镜像可以分为maven(jdk1.8)、Java1.6、Python、node、C、Go和Android。这样制作出来的镜像文件非常庞大,虽然功能完全,但与对于编译打包来说很多工具都使用不到,增加了Jenkins集群运行负荷,占用kubernetes容器资源。
发明内容
针对现有技术中的问题,本申请提出了一种基于镜像分层的持续集成流水线运行方法及装置,能够实现持续集成流水线的镜像分层,灵活且高效,进而能够提高持续集成流水线运行的可靠性和效率。
为了解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种基于镜像分层的持续集成流水线运行方法,包括:
应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据;
接收目标持续集成流水线的运行任务信息,从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据;
基于Jenkins工具,应用所述目标基础通信层镜像数据和目标基础环境层镜像数据,运行所述目标持续集成流水线。
进一步地,所述应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据,包括:基于所述预存储的Dockerfile文件对JNLP程序进行封装,生成所述目标持续集成流水线对应的基础通信层镜像数据;基于所述预存储的Dockerfile文件和编程语言类型,生成所述目标持续集成流水线对应的基础环境层镜像数据。
进一步地,在所述从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据之后,还包括:将所述目标基础通信层镜像数据和目标基础环境层镜像数据存储在所述运行任务信息对应的数据卷中。
进一步地,在所述应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据之前,还包括:应用Jenkins工具生成目标持续集成流水线的主控节点;相对应的,在所述从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据之后,还包括:对所述目标基础环境层镜像数据进行编译并将编译后的目标基础环境层镜像数据经由所述目标基础通信层镜像数据对应的容器传输至所述主控节点。
第二方面,本申请提供一种基于镜像分层的持续集成流水线运行装置,包括:
镜像分层模块,用于应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据;
获得目标镜像数据模块,用于接收目标持续集成流水线的运行任务信息,从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据;
运行模块,用于基于Jenkins工具,应用所述目标基础通信层镜像数据和目标基础环境层镜像数据,运行所述目标持续集成流水线。
进一步地,所述镜像分层模块,包括:生成基础通信层单元,用于基于所述预存储的Dockerfile文件对JNLP程序进行封装,生成所述目标持续集成流水线对应的基础通信层镜像数据;生成基础环境层单元,用于基于所述预存储的Dockerfile文件和编程语言类型,生成所述目标持续集成流水线对应的基础环境层镜像数据。
进一步地,所述的基于镜像分层的持续集成流水线运行装置,还包括:存储模块,用于将所述目标基础通信层镜像数据和目标基础环境层镜像数据存储在所述运行任务信息对应的数据卷中。
进一步地,所述的基于镜像分层的持续集成流水线运行装置,还包括:主控模块,用于应用Jenkins工具生成目标持续集成流水线的主控节点;相对应的,所述基于镜像分层的持续集成流水线运行装置,还包括:传输模块,用于对所述目标基础环境层镜像数据进行编译并将编译后的目标基础环境层镜像数据经由所述目标基础通信层镜像数据对应的容器传输至所述主控节点。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的基于镜像分层的持续集成流水线运行方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的基于镜像分层的持续集成流水线运行方法。
由上述技术方案可知,本申请提供一种基于镜像分层的持续集成流水线运行方法及装置。其中,该方法包括:应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据;接收目标持续集成流水线的运行任务信息,从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据;基于Jenkins工具,应用所述目标基础通信层镜像数据和目标基础环境层镜像数据,运行所述目标持续集成流水线,能够实现持续集成流水线的镜像分层,灵活且高效,进而能够提高持续集成流水线运行的可靠性和效率;具体地,还能够减小镜像占用物理空间,简化镜像,可扩展性较好,支持镜像的快速应用,仅需要根据需要将镜像添加至新的镜像即可完成新的环境组装;通过对不同功能的镜像进行拆分层,能够实现一套镜像灵活应对多个项目,提高持续集成流水线的利用率和搭建效率;能够提高代码质量,进而提高产品交付效率,提升用户满意度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中持续集成流水线的结构示意图;
图2是本申请实施例中基于镜像分层的持续集成流水线运行方法的流程示意图;
图3是本申请实施例中基于镜像分层的持续集成流水线运行方法步骤101和102的流程示意图;
图4是本申请实施例中基于镜像分层的持续集成流水线运行装置的结构示意图;
图5是本申请实施例中基于镜像分层模块的结构示意图;
图6是本申请一个举例中持续集成流水线的分层镜像示意图;
图7为本申请实施例的电子设备9600的***构成示意框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术中,对构建持续集成流水线镜像,花费时间成本和人力,每次构建新的定制化镜像需要花费大量的时间成本,镜像测试也需要花费大量的时间成本。且镜像不具备通用性,由于镜像功能不完全相同,也不易进行版本管理,安全性低,可能存在***漏洞,无法保证每次新增的功能安全可靠;存在环境差异:新镜像和原有镜像存在一定的环境差异,需要进行大量的测试。
如图2所示,本申请中的持续集成流水线,是一种替代传统开发方式中手工代码构建、扫描、测试、部署的一种自动化实现方案和工具。具有降低研发成本,提高研发效率、提升代码质量等优势。在实际应用中,一个项目会根据代码的部署环境进行分级,可能会有多条流水线,如,预提交流水线、***集成测试流水线、用户验收测试流水线、灰度发布流水线和生产部署流水线等。传统的持续集成流水线是通过服务器来进行每个步骤间的流转的。
基于此,为了提高持续集成流水线镜像分层的灵活性和效率,进而提高持续集成流水线运行的可靠性和效率,本申请是基于Jenkins通信容器,通过镜像分层的方式,达到缩减镜像大小,提高镜像利用率,灵活组合镜像的目的。具体地,基于容器技术,持续集成流水线每执行一次,都会基于固定的镜像创建一个容器,在流水线执行结束后销毁该容器。基于容器运行的持续集成流水线,包含有一个master服务器作为主控节点,每个容器作为主控节点的从节点,在启动时会自动与master服务器连接,被master服务器调度。
为了提高持续集成流水线镜像分层的灵活性和效率,进而提高持续集成流水线运行的可靠性和效率,本申请实施例提供一种基于镜像分层的持续集成流水线运行装置,该装置可以是一服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。
在实际应用中,进行基于镜像分层的持续集成流水线运行的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
具体通过下述各个实施例进行说明。
如图1所示,为了提高持续集成流水线镜像分层的灵活性和效率,进而提高持续集成流水线运行的可靠性和效率,本实施例提供一种执行主体是基于镜像分层的持续集成流水线运行装置的基于镜像分层的持续集成流水线运行方法,具体包含有如下内容:
步骤100:应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据。
具体地,所述Dockerfile文件可根据实际情况进行设置,参见图6,基础通信层镜像可以是JNLP镜像,基础环境层镜像可以分为Java1.8镜像、Python2.7镜像、Python3镜像、Go镜像和ant镜像。
在一种举例中,所述Dockerfile文件的编写规则可以包含有:
FROM命令:新制作镜像必须是icdp的基础镜像,不得私自引用dockerhub中的镜像。
RUN命令:Dockerfile中执行RUN时,***会在镜像中新建一层,为了减小镜像层次,建议将解压、删除等文件操作写在同一个RUN命令下。eg:RUN tar zxf eg.tar.gz&&mveg eg-app,将文件解压和重名操作写在同一个RUN命令中。镜像中删除多余的不必要的文件,例如安装文件的tar包rpm包等文件。解压、删除、重名和设置环境变量等操作尽量放在一个RUN命令中执行。
CMD命令:设置镜像中默认启动命令和参数,容器启动之后如果没有加入任何启动命令,则执行CMD中的命令。设置启动命令是尽量使用json格式eg:CMD[“command”,”arg1”,”arg2”]。
ENTRYPOINT命令:当镜像中需要执行前置操作时,可在ENTRYPOINT中指定命令或者脚本,eg:ENTRYPOINT[“entrypoint.sh”]。
COPY/ADD:要求制作的镜像拷贝本地安装包。
举例来说,生成基于RedHat7.3的镜像,建立容器与Jenkins master主控通信的基础通信层镜像,可以建立1个基础通信层镜像,即JNLP通信镜像,用于容器与Jenkinsmaster的通信;而后对开发语言进行分析,基于java、html、python和go语言,建立基础环境层,在本层拆分为4个镜像,并为每个镜像添加环境变量和基础命令等信息,如可以生成4个基础环境层镜像分别为:java1.8镜像,供编译后端代码使用,html5镜像,供前端代码使用;python2.7镜像,供前端代码使用;go镜像。
其中,根据编译规则编写容器编排脚本,java1.8镜像执行java代码的编译,html5镜像负责处理页面,这两个镜像在运行时需要共享环境变量,所有编写编排脚本时两个容器要关联起来,这样容器启动后可以读取相互的环境变量。python2.7镜像和go镜像负责进行监控等任务,而python2.7镜像和go镜像中有数据共享,所以这两个容器在运行时要做数据卷,用于两组容器的内容交换。
步骤200:接收目标持续集成流水线的运行任务信息,从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据。
具体地,所述运行任务信息包含有:目标持续集成流水线对应的语言类型和通信方式。根据通信方式从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,根据语言类型从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据。应用步骤200提供的方式,无需每次运行持续集成流水线都重新生成新的镜像数据,同时,仅需要从大量镜像数据中获得与所述运行任务信息对应的镜像数据,能够降低数据量,提高运行效率。
步骤300:基于Jenkins工具,应用所述目标基础通信层镜像数据和目标基础环境层镜像数据,运行所述目标持续集成流水线。
为了进一步提高持续集成流水线镜像分层的灵活性和准确性,参见图3,在本申请一个实施例中,步骤100包含有:
步骤101:基于所述预存储的Dockerfile文件对JNLP程序进行封装,生成所述目标持续集成流水线对应的基础通信层镜像数据。
步骤102:基于所述预存储的Dockerfile文件和编程语言类型,生成所述目标持续集成流水线对应的基础环境层镜像数据。
为了进一步提高持续集成流水线镜像数据的可靠性,在本申请一个实施例中,在步骤200之后还包含有:
步骤201:将所述目标基础通信层镜像数据和目标基础环境层镜像数据存储在所述运行任务信息对应的数据卷中。
为了提高对持续集成流水线分层镜像数据调用的效率和灵活性,在本申请一个实施例中,在步骤300之前还包含有:应用Jenkins工具生成目标持续集成流水线的主控节点;相对应的,在步骤200之后还包含有:对所述目标基础环境层镜像数据进行编译并将编译后的目标基础环境层镜像数据经由所述目标基础通信层镜像数据对应的容器传输至所述主控节点。
从软件层面来说,为了提高持续集成流水线镜像分层的灵活性和效率,进而提高持续集成流水线运行的可靠性和效率,本申请提供一种用于实现所述基于镜像分层的持续集成流水线运行方法中全部或部分内容的基于镜像分层的持续集成流水线运行装置的实施例,参见图4,所述基于镜像分层的持续集成流水线运行装置具体包含有如下内容:
镜像分层模块10,用于应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据。
获得目标镜像数据模块20,用于接收目标持续集成流水线的运行任务信息,从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据。
运行模块30,用于基于Jenkins工具,应用所述目标基础通信层镜像数据和目标基础环境层镜像数据,运行所述目标持续集成流水线。
进一步地,参见图5,在本申请一个实施例中,所述镜像分层模块10包含有:
生成基础通信层单元11,用于基于所述预存储的Dockerfile文件对JNLP程序进行封装,生成所述目标持续集成流水线对应的基础通信层镜像数据。
生成基础环境层单元12,用于基于所述预存储的Dockerfile文件和编程语言类型,生成所述目标持续集成流水线对应的基础环境层镜像数据。
进一步地,在本申请一个实施例中,所述的基于镜像分层的持续集成流水线运行装置,还包含有:存储模块,用于将所述目标基础通信层镜像数据和目标基础环境层镜像数据存储在所述运行任务信息对应的数据卷中。
进一步地,在本申请一个实施例中,所述的基于镜像分层的持续集成流水线运行装置,还包含有:主控模块,用于应用Jenkins工具生成目标持续集成流水线的主控节点;相对应的,所述基于镜像分层的持续集成流水线运行装置,还包含有:传输模块,用于对所述目标基础环境层镜像数据进行编译并将编译后的目标基础环境层镜像数据经由所述目标基础通信层镜像数据对应的容器传输至所述主控节点。
本说明书提供的基于镜像分层的持续集成流水线运行装置的实施例具体可以用于执行上述基于镜像分层的持续集成流水线运行方法的实施例的处理流程,其功能在此不再赘述,可以参照上述基于镜像分层的持续集成流水线运行方法实施例的详细描述。
为了进一步说明本方案,本申请还提供一种基于镜像分层的持续集成流水线运行方法的具体应用实例,具体描述如下:
1.通过Jenkins工具部署持续集成流水线的Jenkins master主控节点。
2.通过kubernetes技术搭建基础的容器调度平台。
3.制作基于RedHat7.3的镜像。
构建容器与Jenkins master主控节点通信的基础通信层镜像,在本具体应用实例中构建1个基础通信层镜像,即JNLP通信镜像,主要负责容器与Jenkins master主控节点的通信工作。基于Dockerfile和RedHat7.3封装JNLP通信。
具体地,jenkins-master主控节点会ssh到jenkins-slave从节点上执行java-jar/app/jenkins/agent.jar文件,建立主从关系,建立免密链接。
jenkins-master服务器上root用户执行命令如表1所示:
表1
记录root用户的公钥,收集私钥id_rsa和公钥id_rsa.pub,并将公钥id_rsa.pub内容添加到authorized_keys,即“cat id_rsa.pub>>authorized_keys”。
如表2所示,制作JNLP通信镜像:
表2
对开发语言进行分析,本具体应用实例中的项目应用java、html、python和go语言构建基础环境层镜像,将本层镜像拆分为4个镜像,并为每个镜像添加环境变量和基础命令等信息,在本具体应用实例中,构建了4个基础环境层镜像,分别为:java1.8镜像,供编译后端代码使用;html5镜像,供前端代码使用;python2.7镜像,供前端代码使用;go镜像。
4.根据编译规则编写容器编排脚本,在本具体应用实例中,应用java1.8镜像执行java代码的编译,html5镜像负责处理页面,这两个镜像在运行时需要共享环境变量,因此编写容器编排脚本时两个容器要关联起来,这样容器启动后可以读取相互的环境变量。python2.7镜像和go镜像负责进行监控等任务,而python2.7镜像和go镜像中有数据共享,所以这两个容器在运行时要做数据卷,用于两组容器的数据交换。
5.流水线运行阶段首先应用Jenkins工具创建任务,调起一组POD,POD中包含所有层级的镜像产生的容器,基础通信层的JNLP容器,java1.8容器、python2.7容器、go容器和数据卷PVC,将基础环境层的各容器服务编译打包。
6.将编译打包后的所有代码存储到PVC中,该组POD共享网络和PVC中存储的数据。
7.编译构建阶段,不同的语言在各自的容器中进入不同的目录进行编译。
8.编译之后将产物通过JNLP容器传送到Jenkins master节点归档。
9.在一个新的持续集成流水线中,若需要java1.8镜像和python2.7镜像,则可以直接调用上述构建的持续集成流水线分层镜像中的JNLP镜像,java1.8镜像和python2.7镜像。
镜像调用方式:定义Jenkinsfile时需要制定jenkinsfile的头部和node中的主体脚本,流水线在定义头部的时需预定义好头部文件,头部文件中主要是指定podTemplate中的容器和数据卷,同时需要定义动态的label。现labelname的定义是根据流水线名称和构建编号,保证每次的label-name保持唯一。在头部定义了label-name后在node中就需要指定,简而言之将定义的label-name这个变量写入node中即可。代码示例如表3所示:
表3
镜像功能分类:镜像按照功能分为通信JNLP基础镜像和工具性镜像,通信JNLP基础镜像即上述基础通信层镜像,工具性镜像即上述基础环境镜像。工具性镜像分类如下:
1)maven-image:maven工程镜像,主要作为maven工程的编译环境。
2)Ant-image:非maven工程的JavaWeb编译环境,需要用户代码中加入build.xml文件。指定jdk为1.6,因为现在行内基本是p2框架的项目需要用ant工具进行编译。
3)Go-image:Go语言的编译环境。
4)Npm-image:安装npm工具编译前端vue的代码。
5)C-image:支持C语言的编译。
6)Andriod-image:安装sdk/gradle等工具,需要安卓同时支持。
7)Python-image:安装uliweb工具包,安装Python2.7。后续支持Python3.x版本。
生成镜像的过程遵循3s原则(small,simple,secure),并且尽可能减小镜像层次;新制作镜像要进行安全审核不可私自推送到镜像仓库或者将镜像加载到所有的节点上。
镜像命名规范:docker.oa.com:8080/ythpt/icdp-jenkins-toolsName:version。其中,Version原则为:主版本号.次版本号.修正号。主版本,用于功能重大升级和变更;次版本,用于一般功能的新增和修改;修改号,用于缺陷修改和优化;举例来说,镜像命名结果如表4所示:
表4
将主版本镜像推送到仓库,将次版本的镜像存放在node上,在流水线中非特殊情况只引用主版本。
以Dockfile方式生成镜像,每次生成镜像后,将Dockerfile(Dockerfile文件中包含有新版本信息以及修改的内容)和安装的工具包放在以新镜像名称和版本号命名的文件夹下并上传到服务器保存。
由上述描述可知,本申请提供一种基于镜像分层的持续集成流水线运行方法及装置,能够实现持续集成流水线的镜像分层,灵活且高效,进而能够提高持续集成流水线运行的可靠性和效率;具体地,(1)版本可控,可通过层级进行版本标识独立记录版本。(2)工具升级:由于采用分层模式,所以工具升级仅需要升级环境层,基础层和代码层都无需修改。减少测试的工作量,也能够更快的进行安全检查,对于没有修改的层级,节省了重复检查扫描的时间成本。(3)抹平环境差异,灵活,支持多个镜像,可自由组合不同的通信层、环境层、代码层,对于一些特殊用户需求可以快速支持。(4)单个镜像较小,便于上传下载和管理,当更新镜像时只需要更新对应的层即可,提高镜像上传速度和下载更新速度。(5)简化综合性镜像:将现有的镜像进行拆分,拆分成maven、Python、普通的java(ant工具),镜像中现有的公共工具(git/expect/yum)保持不变。
从硬件层面来说,为了提高持续集成流水线镜像分层的灵活性和效率,进而提高持续集成流水线运行的可靠性和效率,本申请提供一种用于实现所述基于镜像分层的持续集成流水线运行方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述基于镜像分层的持续集成流水线运行装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述基于镜像分层的持续集成流水线运行方法的实施例及用于实现所述基于镜像分层的持续集成流水线运行装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图7为本申请实施例的电子设备9600的***构成的示意框图。如图7所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图7是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在本申请一个或多个实施例中,基于镜像分层的持续集成流水线运行功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤100:应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据。
步骤200:接收目标持续集成流水线的运行任务信息,从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据。
步骤300:基于Jenkins工具,应用所述目标基础通信层镜像数据和目标基础环境层镜像数据,运行所述目标持续集成流水线。
从上述描述可知,本申请的实施例提供的电子设备,能够提高持续集成流水线镜像分层的灵活性和效率,进而提高持续集成流水线运行的可靠性和效率。
在另一个实施方式中,基于镜像分层的持续集成流水线运行装置可以与中央处理器9100分开配置,例如可以将基于镜像分层的持续集成流水线运行装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现基于镜像分层的持续集成流水线运行功能。
如图7所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图7中所示的所有部件;此外,电子设备9600还可以包括图7中没有示出的部件,可以参考现有技术。
如图7所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
上述描述可知,本申请的实施例提供的电子设备,能够提高持续集成流水线镜像分层的灵活性和效率,进而提高持续集成流水线运行的可靠性和效率。
本申请的实施例还提供能够实现上述实施例中的基于镜像分层的持续集成流水线运行方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的基于镜像分层的持续集成流水线运行方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据。
步骤200:接收目标持续集成流水线的运行任务信息,从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据。
步骤300:基于Jenkins工具,应用所述目标基础通信层镜像数据和目标基础环境层镜像数据,运行所述目标持续集成流水线。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够提高持续集成流水线镜像分层的灵活性和效率,进而提高持续集成流水线运行的可靠性和效率。
本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于镜像分层的持续集成流水线运行方法,其特征在于,包括:
应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据;
接收目标持续集成流水线的运行任务信息,从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据;
基于Jenkins工具,应用所述目标基础通信层镜像数据和目标基础环境层镜像数据,运行所述目标持续集成流水线。
2.根据权利要求1所述的基于镜像分层的持续集成流水线运行方法,其特征在于,所述应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据,包括:
基于所述预存储的Dockerfile文件对JNLP程序进行封装,生成所述目标持续集成流水线对应的基础通信层镜像数据;
基于所述预存储的Dockerfile文件和编程语言类型,生成所述目标持续集成流水线对应的基础环境层镜像数据。
3.根据权利要求1所述的基于镜像分层的持续集成流水线运行方法,其特征在于,在所述从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据之后,还包括:
将所述目标基础通信层镜像数据和目标基础环境层镜像数据存储在所述运行任务信息对应的数据卷中。
4.根据权利要求1所述的基于镜像分层的持续集成流水线运行方法,其特征在于,在所述应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据之前,还包括:
应用Jenkins工具生成目标持续集成流水线的主控节点;
相对应的,在所述从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据之后,还包括:
对所述目标基础环境层镜像数据进行编译并将编译后的目标基础环境层镜像数据经由所述目标基础通信层镜像数据对应的容器传输至所述主控节点。
5.一种基于镜像分层的持续集成流水线运行装置,其特征在于,包括:
镜像分层模块,用于应用预存储的Dockerfile文件生成目标持续集成流水线对应的基础通信层镜像数据和基础环境层镜像数据;
获得目标镜像数据模块,用于接收目标持续集成流水线的运行任务信息,从所述基础通信层镜像数据中获得与所述运行任务信息对应的目标基础通信层镜像数据,以及从所述基础环境层镜像数据中获得与所述运行任务信息对应的目标基础环境层镜像数据;
运行模块,用于基于Jenkins工具,应用所述目标基础通信层镜像数据和目标基础环境层镜像数据,运行所述目标持续集成流水线。
6.根据权利要求5所述的基于镜像分层的持续集成流水线运行装置,其特征在于,所述镜像分层模块,包括:
生成基础通信层单元,用于基于所述预存储的Dockerfile文件对JNLP程序进行封装,生成所述目标持续集成流水线对应的基础通信层镜像数据;
生成基础环境层单元,用于基于所述预存储的Dockerfile文件和编程语言类型,生成所述目标持续集成流水线对应的基础环境层镜像数据。
7.根据权利要求5所述的基于镜像分层的持续集成流水线运行装置,其特征在于,还包括:
存储模块,用于将所述目标基础通信层镜像数据和目标基础环境层镜像数据存储在所述运行任务信息对应的数据卷中。
8.根据权利要求5所述的基于镜像分层的持续集成流水线运行装置,其特征在于,还包括:
主控模块,用于应用Jenkins工具生成目标持续集成流水线的主控节点;
相对应的,所述基于镜像分层的持续集成流水线运行装置,还包括:
传输模块,用于对所述目标基础环境层镜像数据进行编译并将编译后的目标基础环境层镜像数据经由所述目标基础通信层镜像数据对应的容器传输至所述主控节点。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述的基于镜像分层的持续集成流水线运行方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至4任一项所述的基于镜像分层的持续集成流水线运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010265278.7A CN111459539B (zh) | 2020-04-07 | 2020-04-07 | 基于镜像分层的持续集成流水线运行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010265278.7A CN111459539B (zh) | 2020-04-07 | 2020-04-07 | 基于镜像分层的持续集成流水线运行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459539A true CN111459539A (zh) | 2020-07-28 |
CN111459539B CN111459539B (zh) | 2023-03-28 |
Family
ID=71685901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010265278.7A Active CN111459539B (zh) | 2020-04-07 | 2020-04-07 | 基于镜像分层的持续集成流水线运行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459539B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736810A (zh) * | 2020-08-18 | 2020-10-02 | 四川新网银行股份有限公司 | 基于jenkins实时任务动态创建docker容器节点执行任务的方法 |
CN112596814A (zh) * | 2020-12-24 | 2021-04-02 | 北京百度网讯科技有限公司 | 项目的集成打包方法、装置、设备、介质和程序产品 |
CN112711411A (zh) * | 2020-12-22 | 2021-04-27 | 宝付网络科技(上海)有限公司 | 一种基于Kubernetes及docker的CI/CD流水线*** |
CN112764881A (zh) * | 2021-01-19 | 2021-05-07 | 杭州朗澈科技有限公司 | 流水线部署镜像的方法、***、计算机设备和存储介质 |
CN114020242A (zh) * | 2021-11-05 | 2022-02-08 | 光大科技有限公司 | 开发运维一体化实现方法及平台 |
CN114172904A (zh) * | 2021-12-02 | 2022-03-11 | 上海众源网络有限公司 | 一种Jenkins信息处理方法、装置、电子设备及存储介质 |
CN117724725A (zh) * | 2024-02-05 | 2024-03-19 | 英诺达(成都)电子科技有限公司 | 持续集成的自动化调度方法、装置、***和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110314466A1 (en) * | 2010-06-17 | 2011-12-22 | International Business Machines Corporation | Creating instances of cloud computing environments |
CN109710276A (zh) * | 2018-12-21 | 2019-05-03 | 郑州云海信息技术有限公司 | 一种针对OpenStack云平台的持续集成与持续交付的敏捷方法及装置 |
CN110083369A (zh) * | 2019-04-25 | 2019-08-02 | 中电科嘉兴新型智慧城市科技发展有限公司 | 一种基于容器方案的持续集成和持续交付方法 |
CN110472413A (zh) * | 2019-07-26 | 2019-11-19 | Oppo广东移动通信有限公司 | 基于jenkins的设备管理方法、装置、存储介质及电子设备 |
CN110704156A (zh) * | 2019-08-16 | 2020-01-17 | 北京奇艺世纪科技有限公司 | 一种Docker镜像构建方法及装置 |
-
2020
- 2020-04-07 CN CN202010265278.7A patent/CN111459539B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110314466A1 (en) * | 2010-06-17 | 2011-12-22 | International Business Machines Corporation | Creating instances of cloud computing environments |
CN109710276A (zh) * | 2018-12-21 | 2019-05-03 | 郑州云海信息技术有限公司 | 一种针对OpenStack云平台的持续集成与持续交付的敏捷方法及装置 |
CN110083369A (zh) * | 2019-04-25 | 2019-08-02 | 中电科嘉兴新型智慧城市科技发展有限公司 | 一种基于容器方案的持续集成和持续交付方法 |
CN110472413A (zh) * | 2019-07-26 | 2019-11-19 | Oppo广东移动通信有限公司 | 基于jenkins的设备管理方法、装置、存储介质及电子设备 |
CN110704156A (zh) * | 2019-08-16 | 2020-01-17 | 北京奇艺世纪科技有限公司 | 一种Docker镜像构建方法及装置 |
Non-Patent Citations (2)
Title |
---|
丘晖: "基于容器的持续集成和部署方法研究", 《广东通信技术》 * |
薛继鹏: "jenkins k8s 动态增减 jenkins-salve (2) 实现 slave 节点动态构建", 《CSDN》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736810A (zh) * | 2020-08-18 | 2020-10-02 | 四川新网银行股份有限公司 | 基于jenkins实时任务动态创建docker容器节点执行任务的方法 |
CN112711411A (zh) * | 2020-12-22 | 2021-04-27 | 宝付网络科技(上海)有限公司 | 一种基于Kubernetes及docker的CI/CD流水线*** |
CN112711411B (zh) * | 2020-12-22 | 2024-02-23 | 宝付网络科技(上海)有限公司 | 一种基于Kubernetes及docker的CI/CD流水线*** |
CN112596814A (zh) * | 2020-12-24 | 2021-04-02 | 北京百度网讯科技有限公司 | 项目的集成打包方法、装置、设备、介质和程序产品 |
CN112596814B (zh) * | 2020-12-24 | 2024-03-01 | 北京百度网讯科技有限公司 | 项目的集成打包方法、装置、设备、介质和程序产品 |
CN112764881A (zh) * | 2021-01-19 | 2021-05-07 | 杭州朗澈科技有限公司 | 流水线部署镜像的方法、***、计算机设备和存储介质 |
CN112764881B (zh) * | 2021-01-19 | 2024-04-05 | 深圳软通动力信息技术有限公司 | 流水线部署镜像的方法、***、计算机设备和存储介质 |
CN114020242A (zh) * | 2021-11-05 | 2022-02-08 | 光大科技有限公司 | 开发运维一体化实现方法及平台 |
CN114172904A (zh) * | 2021-12-02 | 2022-03-11 | 上海众源网络有限公司 | 一种Jenkins信息处理方法、装置、电子设备及存储介质 |
CN114172904B (zh) * | 2021-12-02 | 2024-02-13 | 上海众源网络有限公司 | 一种Jenkins信息处理方法、装置、电子设备及存储介质 |
CN117724725A (zh) * | 2024-02-05 | 2024-03-19 | 英诺达(成都)电子科技有限公司 | 持续集成的自动化调度方法、装置、***和存储介质 |
CN117724725B (zh) * | 2024-02-05 | 2024-05-03 | 英诺达(成都)电子科技有限公司 | 持续集成的自动化调度方法、装置、***和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111459539B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459539B (zh) | 基于镜像分层的持续集成流水线运行方法及装置 | |
US9606778B2 (en) | System and method for meta-data driven, semi-automated generation of web services based on existing applications | |
US7805735B2 (en) | System and method of representing data entities of standard device applications as built-in components | |
CN109739523B (zh) | 应用程序打包方法、装置、存储介质及终端 | |
CN111352653B (zh) | 基于PaaS云平台服务器的***开发方法及服务器 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CA2511916A1 (en) | System and method of building wireless component applications | |
CN111796838A (zh) | Mpp数据库自动部署方法及装置 | |
CN112905337A (zh) | 软硬件混合部署的MySQL集群调度方法及装置 | |
CN110427260B (zh) | 主机作业调度方法、装置及*** | |
CN113296742A (zh) | App数据处理方法、装置及移动终端 | |
CN112394932A (zh) | 浏览器网页自动换肤方法及装置 | |
CN112000334A (zh) | 页面开发方法、装置、服务器及存储介质 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN111683005B (zh) | 一种物联网智能网关设备及其构建方法 | |
CN111367561B (zh) | 软件程序远程开发方法及装置 | |
CN115658140A (zh) | 一种sdk的打包方法、装置、终端以及存储介质 | |
CN114816475A (zh) | 一种嵌入式操作***的更新方法、装置、设备和介质 | |
CN112882698A (zh) | 开发环境的生成方法及装置、计算机存储介质及电子设备 | |
CN116991380B (zh) | 一种应用程序的构建方法、装置、电子设备及存储介质 | |
CN118170426A (zh) | 基于微前端单仓架构的业务处理方法、装置以及架构 | |
CN112463212A (zh) | 一种支持跨***平台的环境搭建方法及装置 | |
CN111414232A (zh) | 虚拟机模板数据处理方法及装置 | |
CN117193760A (zh) | 应用的开发方法及相关设备 | |
CN118349225A (zh) | 组件处理方法、装置、产品、设备和介质 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220908 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |