CN111831323A - 容器化的增量持续交付方法 - Google Patents

容器化的增量持续交付方法 Download PDF

Info

Publication number
CN111831323A
CN111831323A CN202010475031.8A CN202010475031A CN111831323A CN 111831323 A CN111831323 A CN 111831323A CN 202010475031 A CN202010475031 A CN 202010475031A CN 111831323 A CN111831323 A CN 111831323A
Authority
CN
China
Prior art keywords
source code
abstract
continuous delivery
changed
function module
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.)
Pending
Application number
CN202010475031.8A
Other languages
English (en)
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.)
Dashu Jinke Network Technology Co ltd
Original Assignee
Dashu Jinke Network Technology 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 Dashu Jinke Network Technology Co ltd filed Critical Dashu Jinke Network Technology Co ltd
Priority to CN202010475031.8A priority Critical patent/CN111831323A/zh
Publication of CN111831323A publication Critical patent/CN111831323A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及数据库领域,具体涉及一种能够减少系统资源占用、提高效率的增量持续交付方法。首先对工程聚合的源代码功能模块进行摘要计算;然后将新版本源代码功能模块的摘要同旧版本源代码功能模块的摘要进行比较,并进行数据保存;若摘要未变化,则结束;若摘要变化则执行源代码功能模块变化部分的持续交付更新流程,直至更新完毕结束。本发明容器化的增量持续交付方法,只是针对摘要变化部分的源代码功能模块进行持续交付更新流程,使得软件开发流程的效率得到大步的提升,周期缩短;因为大部分子工程的源代码并没有变化,故而节省了“编译源码‑>打包源码‑>打包镜像‑>生成容器‑>发布运行”五个步骤的服务器CPU资源占用。

Description

容器化的增量持续交付方法
技术领域
本发明涉及数据库领域,具体涉及一种能够减少系统资源占用、提高效率的增量持续交付方法。
背景技术
持续交付(Continuous delivery)指的是频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。
其中持续集成指的是频繁地(一天多次)将代码集成到主干。
在持续交付领域,容器化进程已经十分成熟。目前的持续交付流程大体是:
编译源码->打包源码->打包镜像->生成容器->发布运行
可以看到,持续交付分为五个步骤。从上面的步骤来看,对于源码未发生变化的部分,也要打包,生成容器并发布运行。当前的持续交付可以胜任任何场景,都能达到最终的运行环境于代码保持一致的目的。它给不断的迭代并发布新的可运行环境可供了快速的构建算法。这种流程非常通用,旨在响应任何变化。
现有技术的流程是只要提交就开始触发整个流程,流程自动进行,除非手动中断。
但是上述现有技术的缺点主要为:
有时候,我们会把多个工程聚合,整合成为一个大的工程。这个大的工程中任何一个小的部分发生改变,那么我们需要将整个工程全部重新编译、构建并持续交付,如图2所示。这种方案下,传统的容器化持续交付就变得比较低效率,会耗费较多的系统资源。
发明内容
针对现有技术中的缺陷,本发明提供一种能够减少系统资源占用、提高效率的增量持续交付方法。
本发明采用的技术方案是:容器化的增量持续交付方法,包括以下步骤:
a、对工程聚合的源代码功能模块进行摘要计算;
b、将新版本源代码功能模块的摘要同旧版本源代码功能模块的摘要进行比较,并进行数据保存;
c、若摘要未变化,则跳转步骤f;若摘要变化则跳转步骤d;
d、执行源代码功能模块变化部分的持续交付更新流程;
e、重复步骤a~d,直至更新完毕;
f、结束。
所述的步骤a中,所述的工程聚合包括多个源代码功能模块,每个源代码功能模块的进行摘要计算,若新版本和旧版本的源代码功能模块的源代码一致,则得到简短的摘要字符串;若源代码内容发生变化,则得到详细的摘要字符串。
为更好地实现本发明,所述的步骤b中,将新版本源代码功能模块计算出的摘要输入,同时调出保存的旧版本源代码功能模块的摘要进行比较,并保存新版本源代码功能模块的摘要和旧版本源代码功能模块的摘要。
所述的步骤c中,若摘要未变化,则对应的源代码功能模块新版本和旧版本一致,也没有发生变化;此时结束。
为更好地实现本发明,所述的步骤d中,若摘要变化,则对应的源代码功能模块新版本和旧版本不一致,发生了变更,此时执行源代码功能模块变化部分的持续交付更新流程,当更新完毕结束。
为更好地实现本发明,所述的步骤d中,执行源代码功能模块变化部分的持续交付更新流程包括以下步骤:
1)触发编译;
2)打包源码;
3)打包镜像;
4)生成容器;
5)发布运行。
为更好地实现本发明,当摘要变化,则触发自动编译,将变化的源代码功能模块编译,然后打包源码、打包镜像、生成容器。
为更好地实现本发明,生成容器后,替换掉变化源代码的功能模块,最后发布运行更新后的新版本。
本发明的有益效果体现在:本发明的容器化的增量持续交付方法,首先对工程聚合的源代码功能模块进行摘要计算;然后将新版本源代码功能模块的摘要同旧版本源代码功能模块的摘要进行比较,并进行数据保存;若摘要未变化,则结束;若摘要变化则执行源代码功能模块变化部分的持续交付更新流程,直至更新完毕结束。本发明容器化的增量持续交付方法,只是针对摘要变化部分的源代码功能模块进行持续交付更新流程,使得软件开发流程的效率得到大步的提升,周期缩短;因为大部分子工程的源代码并没有变化,故而节省了“编译源码->打包源码->打包镜像->生成容器->发布运行”五个步骤的服务器CPU资源占用。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明的容器化的增量持续交付方法的一种流程框图;
图2为现有技术的容器化的增量持续交付方法的一种流程框图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
实施例1:
如图1、图2所示,本发明的容器化的增量持续交付方法,包括以下步骤:
a、对工程聚合的源代码功能模块进行摘要计算;
b、将新版本源代码功能模块的摘要同旧版本源代码功能模块的摘要进行比较,并进行数据保存;
c、若摘要未变化,则跳转步骤f;若摘要变化则跳转步骤d;
d、执行源代码功能模块变化部分的持续交付更新流程;
e、重复步骤a~d,直至更新完毕;
f、结束。
本发明的容器化的增量持续交付方法,首先对工程聚合的源代码功能模块进行摘要计算;然后将新版本源代码功能模块的摘要同旧版本源代码功能模块的摘要进行比较,并进行数据保存;若摘要未变化,则结束;若摘要变化则执行源代码功能模块变化部分的持续交付更新流程,直至更新完毕结束。本发明容器化的增量持续交付方法,只是针对摘要变化部分的源代码功能模块进行持续交付更新流程,使得软件开发流程的效率得到大步的提升,周期缩短;因为大部分子工程的源代码并没有变化,故而节省了“编译源码->打包源码->打包镜像->生成容器->发布运行”五个步骤的服务器CPU资源占用。
实施例2:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤a中,所述的工程聚合包括多个源代码功能模块,每个源代码功能模块的进行摘要计算,若新版本和旧版本的源代码功能模块的源代码一致,则得到简短的摘要字符串;若源代码内容发生变化,则得到详细的摘要字符串。这样设计以后,可方便地进行新版本源代码功能模块和旧版本源代码功能模块的摘要比对,方便快速地确定内容发生变化的源代码功能模块。
实施例3:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤b中,将新版本源代码功能模块计算出的摘要输入,同时调出保存的旧版本源代码功能模块的摘要进行比较,并保存新版本源代码功能模块的摘要和旧版本源代码功能模块的摘要。保存了新版本源代码功能模块的摘要和旧版本源代码功能模块的摘要,可以根据实际情况的需求,调用不同的摘要对应不同的源代码功能模块版本,实现任意版本的回滚,只需要更新源代码功能模块变化的部分,减少了系统资源占用。
实施例4:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤c中,若摘要未变化,则对应的源代码功能模块新版本和旧版本一致,也没有发生变化;此时结束。当摘要未变化,则说明对应的源代码功能模块新版本和旧版本一致,没有发生变化,此时直接结束,无需进行更新步骤,节约系统资源占用。
实施例5:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤d中,若摘要变化,则对应的源代码功能模块新版本和旧版本不一致,发生了变更,此时执行源代码功能模块变化部分的持续交付更新流程,当更新完毕结束。若摘要变化,则对应的源代码功能模块新版本和旧版本不一致,发生了变更,此时执行源代码功能模块变化部分的更新流程,而其他未变化部分不更新,大大节约了系统资源占用,提高了效率。
实施例6:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤d中,执行源代码功能模块变化部分的持续交付更新流程包括以下步骤:
1)触发编译;
2)打包源码;
3)打包镜像;
4)生成容器;
5)发布运行。
当摘要变化,则触发自动编译,将变化的源代码功能模块编译,然后打包源码、打包镜像、生成容器。生成容器后,组装到原有的工程聚合中,相当于只替换掉变化的源代码功能模块,最后发布运行更新后的新版本,在减少系统资源占用的情况下,完成了持续更新交付,大大提高了效率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (8)

1.容器化的增量持续交付方法,其特征在于包括以下步骤:
a、对工程聚合的源代码功能模块进行摘要计算;
b、将新版本源代码功能模块的摘要同旧版本源代码功能模块的摘要进行比较,并进行数据保存;
c、若摘要未变化,则跳转步骤f;若摘要变化则跳转步骤d;
d、执行源代码功能模块变化部分的持续交付更新流程;
e、重复步骤a~d,直至更新完毕;
f、结束。
2.根据权利要求1所述的容器化的增量持续交付方法,其特征在于:所述的步骤a中,所述的工程聚合包括多个源代码功能模块,每个源代码功能模块的进行摘要计算,若新版本和旧版本的源代码功能模块的源代码一致,则得到简短的摘要字符串;若源代码内容发生变化,则得到详细的摘要字符串。
3.根据权利要求2所述的容器化的增量持续交付方法,其特征在于:所述的步骤b中,将新版本源代码功能模块计算出的摘要输入,同时调出保存的旧版本源代码功能模块的摘要进行比较,并保存新版本源代码功能模块的摘要和旧版本源代码功能模块的摘要。
4.根据权利要求3所述的容器化的增量持续交付方法,其特征在于:所述的步骤c中,若摘要未变化,则对应的源代码功能模块新版本和旧版本一致,也没有发生变化;此时结束。
5.根据权利要求4所述的容器化的增量持续交付方法,其特征在于:所述的步骤d中,若摘要变化,则对应的源代码功能模块新版本和旧版本不一致,发生了变更,此时执行源代码功能模块变化部分的持续交付更新流程,当更新完毕结束。
6.根据权利要求5所述的容器化的增量持续交付方法,其特征在于:所述的步骤d中,执行源代码功能模块变化部分的持续交付更新流程包括以下步骤:
1)触发编译;
2)打包源码;
3)打包镜像;
4)生成容器;
5)发布运行。
7.根据权利要求6所述的容器化的增量持续交付方法,其特征在于:当摘要变化,则触发自动编译,将变化的源代码功能模块编译,然后打包源码、打包镜像、生成容器。
8.根据权利要求7所述的容器化的增量持续交付方法,其特征在于:生成容器后,替换掉有变化源代码的功能模块,最后发布运行更新后的新版本。
CN202010475031.8A 2020-05-29 2020-05-29 容器化的增量持续交付方法 Pending CN111831323A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010475031.8A CN111831323A (zh) 2020-05-29 2020-05-29 容器化的增量持续交付方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010475031.8A CN111831323A (zh) 2020-05-29 2020-05-29 容器化的增量持续交付方法

Publications (1)

Publication Number Publication Date
CN111831323A true CN111831323A (zh) 2020-10-27

Family

ID=72913471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010475031.8A Pending CN111831323A (zh) 2020-05-29 2020-05-29 容器化的增量持续交付方法

Country Status (1)

Country Link
CN (1) CN111831323A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506613A (zh) * 2020-12-11 2021-03-16 四川长虹电器股份有限公司 Gitlab-ci自动识别Maven变更子模块并推送docker镜像的方法
US11847431B2 (en) 2022-03-03 2023-12-19 International Business Machines Corporation Automatic container specification file generation for a codebase

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577319A (zh) * 2012-08-07 2014-02-12 腾讯科技(深圳)有限公司 源代码文件检测方法及装置、文件发布系统
CN104092780A (zh) * 2014-07-29 2014-10-08 中国联合网络通信集团有限公司 基于文件分块的文件修改方法、单文件同步方法及装置
CN105354037A (zh) * 2015-11-30 2016-02-24 用友优普信息技术有限公司 模块化的软件开发方法及软件开发装置
CN105677356A (zh) * 2016-01-11 2016-06-15 上海雷腾软件股份有限公司 一种运维方法及设备
CN106528125A (zh) * 2016-10-26 2017-03-22 腾讯科技(深圳)有限公司 一种数据文件的增量更新方法和服务器、客户端以及系统
CN106775808A (zh) * 2016-11-15 2017-05-31 中国电子科技集团公司第二十八研究所 基于远程校验算法的c/s架构软件自动更新升级方法
CN107688463A (zh) * 2017-09-21 2018-02-13 杭州全维技术股份有限公司 一种嵌入式设备版本文件打包的方法
CN108647041A (zh) * 2018-04-02 2018-10-12 金证财富南京科技有限公司 一种混合型APP本地Web资源热更新机制
CN109783451A (zh) * 2018-12-13 2019-05-21 平安科技(深圳)有限公司 基于消息摘要算法的文件更新方法、装置、设备及介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577319A (zh) * 2012-08-07 2014-02-12 腾讯科技(深圳)有限公司 源代码文件检测方法及装置、文件发布系统
CN104092780A (zh) * 2014-07-29 2014-10-08 中国联合网络通信集团有限公司 基于文件分块的文件修改方法、单文件同步方法及装置
CN105354037A (zh) * 2015-11-30 2016-02-24 用友优普信息技术有限公司 模块化的软件开发方法及软件开发装置
CN105677356A (zh) * 2016-01-11 2016-06-15 上海雷腾软件股份有限公司 一种运维方法及设备
CN106528125A (zh) * 2016-10-26 2017-03-22 腾讯科技(深圳)有限公司 一种数据文件的增量更新方法和服务器、客户端以及系统
CN106775808A (zh) * 2016-11-15 2017-05-31 中国电子科技集团公司第二十八研究所 基于远程校验算法的c/s架构软件自动更新升级方法
CN107688463A (zh) * 2017-09-21 2018-02-13 杭州全维技术股份有限公司 一种嵌入式设备版本文件打包的方法
CN108647041A (zh) * 2018-04-02 2018-10-12 金证财富南京科技有限公司 一种混合型APP本地Web资源热更新机制
CN109783451A (zh) * 2018-12-13 2019-05-21 平安科技(深圳)有限公司 基于消息摘要算法的文件更新方法、装置、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506613A (zh) * 2020-12-11 2021-03-16 四川长虹电器股份有限公司 Gitlab-ci自动识别Maven变更子模块并推送docker镜像的方法
US11847431B2 (en) 2022-03-03 2023-12-19 International Business Machines Corporation Automatic container specification file generation for a codebase

Similar Documents

Publication Publication Date Title
US10534590B2 (en) Dynamic recompilation techniques for machine learning programs
US9213707B2 (en) Ordered access of interrelated data files
US7739696B2 (en) Message translation systems and methods
CN108369591B (zh) 用于缓存和参数化ir的系统和方法
CN108984224A (zh) 一种插件管理方法、计算机可读存储介质及终端设备
CN103984582A (zh) 一种热更新方法和装置
CN104484269A (zh) 一种自动生成测试脚本的方法
CN111831323A (zh) 容器化的增量持续交付方法
CN102147743A (zh) 加快嵌入式系统应用程序启动速度的方法
CN107122216B (zh) 一种嵌入式实时操作系统动态加载方法
US20070089101A1 (en) Method of interpreting method bytecode and system operated by the same
CN101236503A (zh) 一种热部署实体类组件
US20080127130A1 (en) Compiler Option Consistency Checking During Incremental Hardware Design Language Compilation
US20190220363A1 (en) Method, apparatus and computer program product for improving inline pattern detection
US6944618B2 (en) Method, computer program product, and system for unloading a hierarchical database utilizing segment specific selection criteria
EP2606424A2 (en) System and method for execution of high performance computing applications
US20080040705A1 (en) Method for building software project
WO2017206302A1 (zh) 一种应用程序的运行方法和运行装置
WO2023121904A1 (en) Processing a user query
US11429358B2 (en) Representing asynchronous state machine in intermediate code
US20080147696A1 (en) Method for reducing memory size allocated by a string class using unicode
US20210342070A1 (en) Method, electronic device, and computer storage medium for information processing
CN109857380B (zh) 一种工作流文件编译方法及装置
CN111400319A (zh) 数据处理框架的实现方法、装置、设备及计算机存储介质
CN111190623A (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