实践案例 | 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 方案的可推广价值
利用Git+CI/CD实现二开研发过程中自动升级部署。二开研发不再需要手工打jar包,实施人员或者研发人员不再需要手工在多个环境修改元数据,避免重复工作量,减少了大量的手工操作,且打包部署全由工具实现,避免手工误操作。
统一规范了代码、元数据、脚本修改入口,并有可记录、过程可追溯的版本管理。代码、元数据、脚本增删改统一由研发人员在开发环境发起,并统一以dev git分支为来源,同步到各个分支上,避免了各个环境来源不统一、差异性较大,导致难以升级维护的问题。
4 注意事项
1. Git分支命名与CI/CD命名需统一规范。Git分支搭建思路,按照标准产品的云和应用进行搭建,CI/CD流水线思路同理。云和应用的标识,建议按照标准产品的云和应用的编码来规范。如供应链云为:scmc,销售管理为:sm。
图11-命名规范示例
2. 推送元数据前需对比差异。提交元数据需仔细对比,目前的元数据都是通过开发平台git界面进行提交的,在提交时务必需要进行对比,以防多人同时开发一个单据时,将他人还未自测通过的元数据提交到了Git。
3. 开发平台导出脚本并制作关联xml文件上传Git。目前开发平台导出脚本只支持编码规则脚本、单据类型脚本,在导出后,需要手工上传至Git对应的脚本文件夹中。
4. 二开研发管理流程制定与实施需前置。在实施项目上,一般以业务方案为主,由于项目资源问题,很少顾及研发管理事项,导致后期才开始考虑,会有些措手不及。
建议二开研发管理要在开发入场前就需要有规划,不要等需求已经梳理完了才考虑研发管理事项。即开发入场前需要搭建好Git分支与完成CI/CD的部署,并能两者结合,CI流水线与CD流水线都能运行成功,且能成功环境更新。
5. Git+CI/CD工具使用有成本,项目上可根据实际情况裁剪使用。Git的分支管理有使用成本,如何差量提交合并等,需要研发人员熟练掌握Git。CI/CD部署以及搭建流水线并测试运行,也需要配置专门的运维人员和开发人员负责人来实践,前期搭建会有一定的工作量。
5 相关资料
1. 如何在开发平台用Git提交元数据和脚本?
https://developer.kingdee.com/article/263701899596448768
https://developer.kingdee.com/article/94721204937791488
2. 如何部署CI/CD?
需要联系CI/CD团队的陈炎老师。
3. 在CI/CD中如何建方案、项目、流水线?
https://developer.kingdee.com/article/219132801180810240
4. 如何配置CI/CD环境变量?
https://developer.kingdee.com/article/244483011482316800
#往期推荐#
实践案例 | Git+CI/CD实现定制化研发自动升级部署
本文2024-09-23 01:09:26发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144130.html