电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

实践案例 | Git+CI/CD实现定制化研发自动升级部署

来源:金蝶云社区作者:金蝶2024-09-234

实践案例 | Git+CI/CD实现定制化研发自动升级部署


小编推荐

还在采用手工的方式进行打包升级部署?工作重复低效,且代码、元数据、脚本没有版本管理,难以排查问题,也不利于后期版本升级管理,却不知如何解决?


不愁!本期实践案例便带来“Git+CI/CD实现定制化研发自动升级部署”的解决方案,轻松实现自动打包升级部署,还能将研发过程进行标准化、规范化管理~


撰稿人:金蝶-余义




1 业务背景


在一线客户现场定制化研发过程中,二开研发团队由于不知道有哪些工具实现自动打包部署,往往采用手工的方式将本地代码打包成jar包,手工替换容器中的jar文件;元数据、脚本也是在开发环境手工从开发平台导出,然后再导入测试环境、生产环境。


这种手工更新的方式,一方面是工作重复、低效、无意义;二是代码、元数据、脚本没有版本管理,难以排查问题、追溯分析;三是不利于后期版本升级管理,每次升级都得手工比对,升级工作量巨大。


因此,客户希望能够实现自动打包升级部署,即需要将开发环境的代码、元数据、脚本自动升级到测试环境、甚至是生产环境,并且研发过程需要标准化、规范化管理


2 解决方案

2.1 方案整体思路


经过调研与现状分析,结合实际项目客户案例,Git+轻轨线CI/CD工具完美结合可实现自动化升级部署,满足二开研发团队标准化管理需求。整体框架图如下:


图1-方案整体框架图


Git+CI/CD具体搭建思路如下图所示,其中,CI流水线的作用是将Git仓库的内容构建成一个补丁包,CD流水线的作用是将补丁包升级部署到需要更新的环境上。CI流水线需要结合Git分支结构目录,即构建出来的包会将元数据、脚本、代码分别构建成不同的ZIP包,最后构建成一个整体的补丁包。


图2-Git+CI/CD具体搭建思路


2.2 关键步骤及效果展示


步骤1:二开研发Git分支搭建


项目案例中,Git分支结构按照云进行分组,以应用的维度构建Git分支。


1)按维度搭建Git群组,如下图所示:


图3-按云维度搭建Git群组


2)按应用维度搭建子组和项目,如下图所示:


图4-按应用维度搭建子组和项目


3)按应用维度搭建Git仓库。Git仓库包含代码、元数据、脚本,以及CI/CD需要打包的文件:build.gradle.server文件,如下图所示:


图5-按应用维度搭建Git仓库


4)本地开发环境代码结构示例,如下图所示:


图6-本地开发环境代码结构示例


步骤2:CI/CD流水线搭建


CI/CD相关流水线的搭建,请参考社区贴:CI/CD使用手册,这里只简单说明搭建项目和流水线的思路,如下:


1)按维度搭建项目,如下图所示:


图7-按云维度搭建项目


2)按应用维度搭建苍穹应用管理,如下图所示:


图8-按应用维度搭建苍穹应用管理


3)在应用的维度建CI流水线与CD流水线,如下图所示:


图9-在应用的维度建CI流水线与CD流水线


4)构建的补丁包示例,如下图所示:


图10-构建的补丁包示例


步骤3:一键升级部署


按照以上说明搭建好Git分支、CI/CD流水线后,日常研发过程只要按照规范提交元数据、脚本及相关代码之后,在CI/CD服务上运行CI流水线、CD流水线,就可以自动将开发好的内容部署到需要更新的环境。当然,CI/CD流水线还可以定时启动,只要设置好运行启动时间,不需要人为启动,即可实现自动化升级部署


3 方案的可推广价值


  1. 利用Git+CI/CD实现二开研发过程中自动升级部署。二开研发不再需要手工打jar包,实施人员或者研发人员不再需要手工在多个环境修改元数据,避免重复工作量,减少了大量的手工操作,且打包部署全由工具实现,避免手工误操作。

  2. 统一规范了代码、元数据、脚本修改入口,并有可记录、过程可追溯的版本管理。代码、元数据、脚本增删改统一由研发人员在开发环境发起,并统一以dev git分支为来源,同步到各个分支上,避免了各个环境来源不统一、差异性较大,导致难以升级维护的问题。


4 注意

实践案例 | Git+CI/CD实现定制化研发自动升级部署

小编推荐还在采用手工的方式进行打包升级部署?工作重复低效,且代码、元数据、脚本没有版本管理,难以排查问题,也不利于后期版本升级管理...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信