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

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:2

实践案例 | 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 注意事项


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




#往期推荐#


# 实践案例 | 苍穹轻轨线助力多应用开发的高效管理

轻松管理数百个数据库的“中间件”,它来了

苍穹开发环境管理系列:DevOps流水线连连看

GPaaS蓝绿发布——让您的升级更丝滑


更多精彩内容,“码”上了解!↓


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

小编推荐还在采用手工的方式进行打包升级部署?工作重复低效,且代码、元数据、脚本没有版本管理,难以排查问题,也不利于后期版本升级管理...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息