CN113553089A - 一种代码增量发布更新方法及系统 - Google Patents

一种代码增量发布更新方法及系统 Download PDF

Info

Publication number
CN113553089A
CN113553089A CN202110792121.4A CN202110792121A CN113553089A CN 113553089 A CN113553089 A CN 113553089A CN 202110792121 A CN202110792121 A CN 202110792121A CN 113553089 A CN113553089 A CN 113553089A
Authority
CN
China
Prior art keywords
file
version
code
index table
release
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
CN202110792121.4A
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.)
Shanghai Qingqing Information Technology Co ltd
Original Assignee
Shanghai Qingqing Information 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 Shanghai Qingqing Information Technology Co ltd filed Critical Shanghai Qingqing Information Technology Co ltd
Priority to CN202110792121.4A priority Critical patent/CN113553089A/zh
Publication of CN113553089A publication Critical patent/CN113553089A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • 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
    • 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

Abstract

本发明公开了一种代码增量发布更新方法及系统,属于应用开发技术领域,包括:步骤S1,对构建的代码源文件进行打包;步骤S2,配置文件名索引,更新索引表;步骤S3,提取变更的文件名索引对应的变更文件;步骤S4,分层部署,将更新版本记录信息上传至发布系统,并将更新版本镜像到内容分发网络中;步骤S5,接收并自动录入更新版本记录信息,接收用户选择的发布信息,并将发布信息中对应的版本更新至对应服务器的缓存中;步骤S6,服务器从缓存中得到索引表,根据索引表从内容分发网络中获取静态资源文件。本发明的有益效果在于:集代码构建、打包、发布于一体,规范化了版本发布流程,优化用户加载体验,操作安全便捷易操作。

Description

一种代码增量发布更新方法及系统
技术领域
本发明涉及应用开发技术领域,具体涉及一种代码增量发布更新方法及系统。
背景技术
随着互联网的发展,用户浏览网页属于常见行为。网页可以向用户展示各类信息、为用户提供各种功能的服务。网页主要通过在服务器端部署的代码实现前述作用。而针对网页所部署的代码主要包括前端代码和后端代码,前端代码主要用于实现网页页面上的静态展示、交互等功能,而后端代码主要用于实现网页后台的数据处理、处理逻辑等。
前端网页页面的需求经常性发生变更,有时候只是改动了一个文案或一张图片,但是需要将完整的代码重新打包发布,此时代码编译后的整个文件中只有其中的一两个文件发生细微变化,大部分(约有99%)代码是没有改动的。为了满足业务上线需求,需要将编译后的整个代码目录完整上传发布即替换文件夹,或者在nginx服务器(或apache服务器)上配置重写rewrite规则,采用这种方式发布更新增量代码存在诸多问题,例如用户第二次访问网页页面时,需要完整重新下载所有需要的代码,且历史缓存文件失效,对于流量控制及页面加载体验都很不友好;储存文件存在很多重复,造成服务器的存储空间大量浪费;线上发布异常回滚流程繁琐,容易出错导致线上故障;发布过程需要运行维护人员参与,可扩展性较差,因此针对以上问题,迫切需要设计出一种代码增量发布更新方法及系统,以满足实际使用的需要。
发明内容
本发明的目的在于,提供一种代码增量发布更新方法及系统,集代码构建、打包、发布于一体,能够支持同一公司的各业务部门的代码发布、增量更新、灰度发布等服务。
本发明所解决的技术问题可以采用以下技术方案来实现:
本发明提供一种代码增量发布更新方法,包括:
步骤S1,对构建的代码源文件进行打包,得到一个或一个以上的打包文件;
步骤S2,为每个所述打包文件配置一文件名索引,并将配置好的所述文件名索引更新到一索引表中;
步骤S3,判断所述索引表中的所述文件名索引是否发生变更,若发生变更,则提取发生变更的所述文件名索引对应的变更文件,并存储提取的所述变更文件作为产出物;
步骤S4,根据所述产出物对所述变更文件进行分层部署,以更新版本,将更新版本记录信息上传至一发布系统,所述更新版本记录信息包括所述索引表,并将更新后的版本镜像到一内容分发网络中;
步骤S5,所述发布系统通过一内容管理单元接收并自动录入所述更新版本记录信息,所述内容管理单元接收用户选择的发布信息,并将所述发布信息中对应的版本更新至对应服务器的缓存中;
步骤S6,所述服务器根据当前的版本信息从所述缓存中匹配得到对应的所述索引表,并根据匹配得到的所述索引表从所述内容分发网络中获取静态资源地址,完成更新。
优选地,所述步骤S1中,对开发的代码源文件进行打包,之前还包括:
步骤S0,基于编程框架构建开发代码,得到构建的所述代码源文件。
优选地,所述步骤S1具体包括:
步骤S11,调用一模块打包器;
步骤S12,所述模块打包器采用多入口打包的方式对所述代码源文件进行打包,得到所述一个或一个以上的打包文件。
优选地,所述步骤S3具体包括:
步骤S31,对所述索引表中的所述文件名索引对应的所述打包文件进行差异化对比,得到一对比结果;
步骤S32,根据所述对比结果提取发生变更的所述打包文件作为所述变更文件;
步骤S33,将提取的所述变更文件存储至所述产出物中。
优选地,所述步骤S4中,采用一应用容器引擎对所述产出物中的所述变更文件进行分层动态部署。
优选地,所述步骤S6中,所述服务器通过所述内容管理单元的接口直接从所述缓存中读取对应的所述索引表;或
若所述缓存中没有对应版本的所述索引表,则通过所述内容管理单元的接口读取版本对应的所述索引表,并写入到对应的所述缓存中。
本发明还提供一种代码增量发布更新系统,用于实施如上述的代码增量发布更新方法,包括:
一代码构建单元,用于构建开发代码,并对构建的代码源文件进行打包,所述代码构建单元还包括:
一配置子单元,连接所述代码构建单元,用于为每个所述打包文件配置一文件名索引,并将配置好的所述文件名索引更新到一索引表中;
一变更提取子单元,分别连接所述配置子单元和所述索引表,用于当判断出所述索引表中的所述文件名索引发生变更时,提取发生变更的所述文件名索引对应的变更文件,并存储提取的所述变更文件作为产出物;
一部署单元,连接所述变更提取单元,用于根据所述产出物对所述变更文件进行分层部署,以更新版本,将更新版本记录信息上传至一发布系统,所述更新版本记录信息包括所述索引表,并将更新后的版本镜像到一内容分发网络中;
一发布系统,连接所述部署单元,所述发布系统包括:
一内容管理单元,用于接收并自动录入所述更新版本记录信息,所述内容管理单元接收用户选择的发布信息,并将所述发布信息中对应的版本更新至对应服务器的缓存中;
至少一个服务器,分别连接内容管理单元和所述内容分发网络,用于根据当前的版本信息从所述缓存中匹配得到对应的所述索引表,并根据匹配得到的所述索引表从所述内容分发网络中获取静态资源地址,完成更新。
优选地,所述代码构建单元基于编程框架构建开发代码,得到构建的所述代码源文件。
优选地,所述内容管理单元包括一数据库,所述数据库用于记录版本的发布信息、更新版本记录信息。
优选地,还包括:
一模块打包器,连接所述代码构建单元,用于所述代码构建单元调用所述模块打包器时,所述模块打包器采用多入口打包的方式对所述代码源文件进行打包,得到所述一个或一个以上的打包文件。
本发明技术方案的有益效果在于:
本发明集代码构建、打包、发布于一体,能够支持同一公司的各业务部门的代码发布、增量更新、灰度发布等服务;对构建的代码源文件进行打包并配置文件名索引,更新到索引表中,通过逐行读取对比索引表,找出变更文件,并进行分层部署,服务部署可横向扩展支持多种业务,节约存储成本;发布系统将发布版本代码索引表存储至对应的缓存中,节约服务存储成本,缓存复用,加速用户访问、加载体验,服务器从缓存中匹配得到对应的索引表,并根据匹配得到的索引表从内容分发网络中获取静态资源地址,规范化了版本发布、版本回滚流程,优化用户加载体验,操作安全便捷易操作。
附图说明
图1是本发明中一种代码增量发布更新方法的流程示意图;
图2是本发明中步骤S1具体实施例的流程示意图;
图3是本发明中步骤S4具体实施例的流程示意图;
图4是本发明中一种代码增量发布更新系统具体实施例的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明提供一种代码增量发布更新方法及系统,一种集代码构建、打包、发布于一体的全自动化CI&CD平台,能够支持同一公司的各业务部门的代码发布、增量更新、灰度发布等服务;该系统主要使用到模块打包器webpack、Jenkins、应用容器引擎、nodejs服务器等中间件或服务。
webpack是一个模块打包器,是一种常用于现代JavaScript应用程序的静态模块打包工具,webpack运行时自动解析模块依赖生成一个或多个bundle打包文件。
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,使软件项目可以进行持续集成,是开源CI&CD软件领导者,Jenkins提供超过1000个插件来支持构建、部署、自动化,满足任何项目的需要。
Docker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用代码源文件以及依赖包到一个可移植的容器中,然后发布到任何安装了docker应用容器引擎的服务器上(包括流行的Linux机器、windows机器),与虚拟机类似,应用容器引擎也可以实现虚拟化,提供代码独立运行宿主环境。并且容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),几乎没有性能开销,不依赖于任何语言、框架包括系统。
内容管理单元(cms):基于nodejs开发的一个Nodejs服务,用于维护版本更新、变更、发布、回滚、灰度管理平台,服务器本身依赖mysql数据库、redis缓存等中间件。
本发明提供一种代码增量发布更新方法,属于应用开发技术领域,参见图1-4,包括:
步骤S1,对构建的代码源文件进行打包,得到一个或一个以上的打包文件;
作为优选的实施方式,步骤S1中,对开发的代码源文件进行打包,之前还包括:
步骤S0,前端基于编程框架工程化构建开发代码,得到构建的代码源文件。优选的,在本实施例中,采用渐进式前端框架vue或Web开发框架react等编程框架开发代码,进一步的,还可以采用其他主流的编程框架实现源代码的开发。
具体的,在本实施例中,多个业务维护在同一个工程项目中,因此,本技术方案区别于一般单个单页应用,对构建流程(即步骤S1-S3)做了进一步的改进。
作为优选的实施方式,如图2所示,步骤S1具体包括:
步骤S11,调用一模块打包器;
步骤S12,模块打包器采用多入口打包的方式对代码源文件进行打包,得到一个或一个以上的打包文件。
在步骤S1中,Jenkins调用模块打包器webpack,通过多入口打包方式将各入口处的代码源文件分别进行打包。当webpack运行时,对文件进行预编译;Loder-CSS/JS语法检查;自动解析模块依赖压缩/合并文件,生成一个或多个打包文件,打包文件为bundles格式的文件。
步骤S2,为每个打包文件配置一文件名索引,并将配置好的文件名索引更新到一索引表中;
在步骤S2中,使用md5哈希算法为每个打包文件形成文件名索引,同时将每个文件名索引维护到一个索引表中。
步骤S3,判断索引表中的文件名索引是否发生变更,若发生变更,则提取发生变更的文件名索引对应的变更文件,并存储提取的变更文件作为产出物;
作为优选的实施方式,如图3所示,步骤S3具体包括:
步骤S31,对索引表中的文件名索引对应的打包文件进行差异化对比,得到一对比结果;
步骤S32,根据对比结果提取发生变更的打包文件作为变更文件;
步骤S33,将提取的变更文件存储至产出物中。
在步骤S3中,使用shell脚本对索引表进行文件差异化对比,即逐行读取对比索引表,找出增量修改文件,作为变更文件并提取出来,可通过复制copy的方式将变更文件存储得到产出物中。
步骤S4,根据产出物对变更文件进行分层部署,以更新版本,将更新版本记录信息上传至一发布系统,更新版本记录信息包括索引表,并将更新后的版本镜像到一内容分发网络中;
作为优选的实施方式,步骤S4中,采用一应用容器引擎(Docker容器)对产出物中的变更文件进行分层动态部署。
完成分层动态部署后,更新版本的记录并将更新后的版本对应的索引表包括在更新版本记录信息中上传至发布系统,同时将更新后对应版本的Docker容器镜像推到内容分发网络中,通过分层部署,可横向扩展支持多种业务,节约存储成本。
步骤S5,发布系统通过一内容管理单元接收并自动录入更新版本记录信息,内容管理单元接收用户选择的发布信息,并将发布信息中对应的版本更新至对应服务器的缓存中;
具体的,完成分层动态部署后,得到更新版本记录信息,更新版本记录信息包括最新的版本号、对应的运行环境和服务器以及更新后的版本号对应的索引表,调用发布系统的接口完成更新版本记录信息的自动录入,为了避免发布系统将新的版本直接发布到线上,发布系统有一个专门的服务后台,简称内容管理单元CMS,内容管理单元自动录入更新版本记录信息后,会形成对应的版本记录,由测试人员在内容管理单元选择对应的版本号作为需要发布的版本,以及指定的运行环境和服务器,并更新对应运行环境的服务器的缓存redis中缓存记录,发布系统连接至少一个业务系统,前端的每个业务系统对接内容管理单元的接口,优先读取缓存redis中的缓存数据;如果redis中没有缓存数据,则向内容管理单元的接口服务读取版本并写入新的版本到指定redis中。前端业务系统读取指定redis的缓存信息,匹配到对应版本的哈希索引表,从内容分发网络中获取静态资源地址,生成最终服务的静态资源文件,完成前端版本的上线。
采用上述流程完成前端业务版本上线,老用户再次访问页面时无需再重新加载历史缓存数据,提升了用户加载速度优化了用户体验。
步骤S6,服务器根据当前的版本信息从缓存中匹配得到对应的索引表,并根据匹配得到的索引表从内容分发网络中获取静态资源地址,完成更新。
作为优选的实施方式,步骤S6中,服务器通过内容管理单元的接口直接从缓存中读取对应的索引表,其中服务器可以是只有一个,也可以是多个,可以是WWW服务器或liveweb服务器或m服务器或front服务器中的任意一种;或
若缓存中没有对应版本的索引表,则通过内容管理单元的接口读取版本对应的索引表,并写入到对应的缓存中。
具体的,通过将发布版本代码索引表存储至对应的缓存中,节约服务存储成本,缓存复用,加速用户访问、加载体验;服务器从缓存中匹配得到对应的索引表,并根据匹配得到的索引表从内容分发网络中获取静态资源地址,规范化了版本发布、版本回滚流程,优化用户加载体验,操作安全便捷易操作。
本发明还提供一种代码增量发布更新系统,用于实施如上述的代码增量发布更新方法,如图4所示,包括:
一代码构建单元1,代码构建单元1采用Jenkins构建开发代码,并Jenkins调用模块打包器webpack对构建的代码源文件进行打包,然后对打包后的文件进行预处理,预处理包括文件配置、增量差异化文件(即变更文件)提取;
即代码构建单元1还包括:
一配置子单元,连接代码构建单元1,用于为每个打包文件配置一文件名索引,并将配置好的文件名索引更新到一索引表中;
一变更提取子单元,分别连接配置子单元和索引表,用于当判断出索引表中的文件名索引发生变更时,提取发生变更的文件名索引对应的变更文件,并复制到产出物中存储;
一部署单元2,连接变更提取子单元,用于根据产出物对变更文件进行分层部署,以更新版本,将更新版本记录信息上传至一发布系统,更新版本记录信息包括索引表,并将更新后的版本镜像到一内容分发网络5中;
部署单元2采用应用容器引擎,应用容器引擎中包括一个及一个以上的Docker容器,每个Docker容器可分别对应一个服务器或业务系统
一发布系统,连接部署单元2,发布系统包括:
一内容管理单元31,用于接收并自动录入更新版本记录信息,内容管理单元31接收用户选择的发布信息,并将发布信息中对应的版本更新至对应服务器的缓存中;
作为优选的实施方式,内容管理单元CMS是发布系统的一个专门的服务后台,测试人员可以在内容管理单元中选择发布的版本,以及指定的运行环境和服务器,这些信息包括在发布信息中。
内容管理单元依赖于mysql数据库、redis缓存等中间件,来维护版本更新、变更、发布、回滚、灰度的管理,内容管理单元通过将需要更新、变更、发布、回滚、灰度的版本信息存储在缓存中,由服务器读取对应的缓存中的索引表,再从内容分发网络中获取静态资源地址,得到静态资源文件,即版本对应的软件包。
至少一个服务器4,分别连接内容管理单元31和内容分发网络5,用于根据当前的版本信息从缓存中匹配得到对应的索引表,并根据匹配得到的索引表从内容分发网络5中获取静态资源地址。
作为优选的实施方式,代码构建单元1基于编程框架构建开发代码,得到构建的代码源文件;
编程框架包括渐进式前端框架vue或Web开发框架react。
作为优选的实施方式,内容管理单元31包括一数据库,数据库用于记录版本的发布信息、更新版本记录信息。
作为优选的实施方式,还包括:
一模块打包器webpack,连接代码构建单元1,用于代码构建单元1调用模块打包器时,模块打包器采用多入口打包的方式对代码源文件进行打包,得到一个或一个以上的打包文件。
本发明技术方案的有益效果在于:
本发明集代码构建、打包、发布于一体,能够支持同一公司的各业务部门的代码发布、增量更新、灰度发布等服务;对构建的代码源文件进行打包并配置文件名索引,更新到索引表中,通过逐行读取对比索引表,找出变更文件,并进行分层部署,服务部署可横向扩展支持多种业务,节约存储成本;发布系统将发布版本代码索引表存储至对应的缓存中,节约服务存储成本,缓存复用,加速用户访问、加载体验,服务器从缓存中匹配得到对应的索引表,并根据匹配得到的索引表从内容分发网络中获取静态资源地址,规范化了版本发布、版本回滚流程,优化用户加载体验,操作安全便捷易操作。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (10)

1.一种代码增量发布更新方法,其特征在于,包括:
步骤S1,对构建的代码源文件进行打包,得到一个或一个以上的打包文件;
步骤S2,为每个所述打包文件配置一文件名索引,并将配置好的所述文件名索引更新到一索引表中;
步骤S3,判断所述索引表中的所述文件名索引是否发生变更,若发生变更,则提取发生变更的所述文件名索引对应的变更文件,并存储提取的所述变更文件作为产出物;
步骤S4,根据所述产出物对所述变更文件进行分层部署,以更新版本,将更新版本记录信息上传至一发布系统,所述更新版本记录信息包括所述索引表,并将更新后的版本镜像到一内容分发网络中;
步骤S5,所述发布系统通过一内容管理单元接收并自动录入所述更新版本记录信息,所述内容管理单元接收用户选择的发布信息,并将所述发布信息中对应的版本更新至对应服务器的缓存中;
步骤S6,所述服务器根据当前的版本信息从所述缓存中匹配得到对应的所述索引表,并根据匹配得到的所述索引表从所述内容分发网络中获取静态资源文件。
2.根据权利要求1所述的一种代码增量发布更新方法,其特征在于,所述步骤S1中,对开发的代码源文件进行打包,之前还包括:
步骤S0,基于编程框架构建开发代码,得到构建的所述代码源文件。
3.根据权利要求1所述的一种代码增量发布更新方法,其特征在于,所述步骤S1具体包括:
步骤S11,调用一模块打包器;
步骤S12,所述模块打包器采用多入口打包的方式对所述代码源文件进行打包,得到所述一个或一个以上的打包文件。
4.根据权利要求1所述的一种代码增量发布更新方法,其特征在于,所述步骤S3具体包括:
步骤S31,对所述索引表中的所述文件名索引对应的所述打包文件进行差异化对比,得到一对比结果;
步骤S32,根据所述对比结果提取发生变更的所述打包文件作为所述变更文件;
步骤S33,将提取的所述变更文件存储至所述产出物中。
5.根据权利要求1所述的一种代码增量发布更新方法,其特征在于,所述步骤S4中,采用一应用容器引擎对所述产出物中的所述变更文件进行分层动态部署。
6.根据权利要求1所述的一种代码增量发布更新方法,其特征在于,所述步骤S6中,所述服务器通过所述内容管理单元的接口直接从所述缓存中读取对应的所述索引表;或
若所述缓存中没有对应版本的所述索引表,则通过所述内容管理单元的接口读取版本对应的所述索引表,并写入到对应的所述缓存中。
7.一种代码增量发布更新系统,其特征在于,用于实施如权利要求1-6任意一项所述的代码增量发布更新方法,包括:
一代码构建单元,用于构建开发代码,并对构建的代码源文件进行打包,所述代码构建单元还包括:
一配置子单元,连接所述代码构建单元,用于为每个所述打包文件配置一文件名索引,并将配置好的所述文件名索引更新到一索引表中;
一变更提取子单元,分别连接所述配置子单元和所述索引表,用于当判断出所述索引表中的所述文件名索引发生变更时,提取发生变更的所述文件名索引对应的变更文件,并存储提取的所述变更文件作为产出物;
一部署单元,连接所述变更提取子单元,用于根据所述产出物对所述变更文件进行分层部署,以更新版本,将更新版本记录信息上传至一发布系统,所述更新版本记录信息包括所述索引表,并将更新后的版本镜像到一内容分发网络中;
一发布系统,连接所述部署单元,所述发布系统包括:
一内容管理单元,用于接收并自动录入所述更新版本记录信息,所述内容管理单元接收用户选择的发布信息,并将所述发布信息中对应的版本更新至对应服务器的缓存中;
至少一个服务器,分别连接内容管理单元和所述内容分发网络,用于根据当前的版本信息从所述缓存中匹配得到对应的所述索引表,并根据匹配得到的所述索引表从所述内容分发网络中获取静态资源文件。
8.根据权利要求7所述的一种代码增量发布更新系统,其特征在于,所述代码构建单元基于编程框架构建开发代码,得到构建的所述代码源文件。
9.根据权利要求7所述的一种代码增量发布更新系统,其特征在于,所述内容管理单元包括一数据库,所述数据库用于记录版本的发布信息、更新版本记录信息。
10.根据权利要求7所述的一种代码增量发布更新系统,其特征在于,还包括:
一模块打包器,连接所述代码构建单元,用于所述代码构建单元调用所述模块打包器时,所述模块打包器采用多入口打包的方式对所述代码源文件进行打包,得到所述一个或一个以上的打包文件。
CN202110792121.4A 2021-07-13 2021-07-13 一种代码增量发布更新方法及系统 Pending CN113553089A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110792121.4A CN113553089A (zh) 2021-07-13 2021-07-13 一种代码增量发布更新方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110792121.4A CN113553089A (zh) 2021-07-13 2021-07-13 一种代码增量发布更新方法及系统

Publications (1)

Publication Number Publication Date
CN113553089A true CN113553089A (zh) 2021-10-26

Family

ID=78131787

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110792121.4A Pending CN113553089A (zh) 2021-07-13 2021-07-13 一种代码增量发布更新方法及系统

Country Status (1)

Country Link
CN (1) CN113553089A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114189512A (zh) * 2021-12-14 2022-03-15 南京欧珀软件科技有限公司 基线代码的下载方法、装置、终端设备和存储介质
CN115982504A (zh) * 2023-02-22 2023-04-18 鲁班(北京)电子商务科技有限公司 一种通用的前端工程化缓存优化部署方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114189512A (zh) * 2021-12-14 2022-03-15 南京欧珀软件科技有限公司 基线代码的下载方法、装置、终端设备和存储介质
CN115982504A (zh) * 2023-02-22 2023-04-18 鲁班(北京)电子商务科技有限公司 一种通用的前端工程化缓存优化部署方法及系统
CN115982504B (zh) * 2023-02-22 2023-06-30 鲁班(北京)电子商务科技有限公司 一种通用的前端工程化缓存优化部署方法及系统

Similar Documents

Publication Publication Date Title
CN108279932B (zh) 一种移动终端动态配置用户界面方法和装置
CN109491695A (zh) 一种集成安卓应用的增量更新方法
CN112764753B (zh) 一种项目的部署方法、装置、电子设备及存储介质
CN113553089A (zh) 一种代码增量发布更新方法及系统
CN110851167B (zh) 容器环境更新方法、装置、设备及存储介质
CN106648741A (zh) 一种应用系统部署方法及装置
US20070050762A1 (en) Build optimizer tool for efficient management of software builds for mobile devices
CN111782302B (zh) 进程更新方法和装置、存储介质及电子设备
CN104793946A (zh) 基于云计算平台的应用部署方法和系统
CN103077043B (zh) 一种快速启动及运行Linux的方法
CN107193615A (zh) 项目代码信息的更新部署方法及装置
EP1691282A1 (en) Build optimizer tool for efficient management of software builds for mobile devices
CN112527415A (zh) 小程序跨平台迁移方法、装置、设备和介质
CN111190687A (zh) 一种容器镜像的构建方法、装置、设备及存储介质
CN115268879A (zh) 代码处理方法、装置、电子设备及存储介质
CN114461217A (zh) 代码编译方法、装置、电子设备及存储介质
CN112000334A (zh) 页面开发方法、装置、服务器及存储介质
CN111966382A (zh) 机器学习模型的在线部署方法、装置及相关设备
CN115016785B (zh) 一种用于多环境共用的前端项目打包方法及装置
CN109429100B (zh) 一种页面路径的存储方法、装置及系统
CN114089965A (zh) 基于单体式代码仓库Monorepo的程序开发项目管理方法、装置
CN113835731A (zh) 根据更新组件提示出错方法、装置、电子设备及存储介质
US20230289151A1 (en) Generation and consumption of templates based on source code examples
CN113672269B (zh) 数据处理方法、系统、电子设备及程序产品
CN116009912B (zh) 针对私网环境的自动生成升级包的构建方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication