目前大部分中大型企业软件交付都会采用DevOps平台来管理各个不同系统的持续交付,当客户已选定DevOps平台做交付后,通常不会再选择轻轨线(CI/CD)来做苍穹的交付。
由于苍穹交付采用动态微服务领域模型,交付物包含jar包、元数据和静态资源等,与目前主流软件交付有区别,需要针对不同客户DevOps平台做相应的适配,工作量大,且门槛高。
为此,苍穹推出CICD融合工具,减少交付人员针对不同客户通过脚本匹配的工作量及繁琐性,降低交付门槛。
前提条件
1、 客户需要能在自有DevOps平台实现源码编译和构建。
2、 源代码构建完成后,需要将jar包再按云编码-应用编码.zip的命名方式(如fi-bos.zip)打包并上传至能够通过URL下载的文件服务器或制品库中,如NEXUS等。
3、 如客户希望在CD时使用monitor优雅重启,苍穹版本需要不低于V5.0.019,MC版本需要不低于V5.0.022。
4、 如客户苍穹版本较低,不使用monitor优雅重启,则需要能够在CD时实现苍穹容器服务的重启。
特性展示
CICD融合工具提供CI和CD相关的API接口供其他DevOps平台生成苍穹二开补丁包和升级苍穹,并提供工具对关键参数进行加密,确保数据安全。详细功能如下:

CICD融合工具方案
01 API接口
融合工具提供了3个接口包括generate_package、upgrade_cosmic、upgrade_metadata,分别用来在CI时生成苍穹二开补丁包、在CD时用来更新苍穹和更新元数据,用户只需按照说明将相关shell脚本复制进去,填写对应的参数即可完成,操作简单。
1) generate_package接口作用在于按照苍穹标准格式生成二开补丁包,代码编译和构建还是在客户平台完成(通用能力)。

generate_package接口配置说明
2)upgrade_cosmic和upgrade_metadata在CD流水线中使用,配置基本一致。
如果客户更新苍穹后,采用容器重启的方式,则两个接口分别进行调用,即在CD流水线中按照更新苍穹(调用upgrade_cosmic接口)→重启苍穹(客户容器平台提供该能力)→更新元数据(调用upgrade_metadata接口)的顺序创建节点进行执行;
如果客户采用monitor优雅重启,则只需要配置upgrade_cosmic接口即可完成执行CD流水线,upgrade_cosmic接口兼容了upgrade_metadata接口更新元数据的作用。

upgrade_cosmic接口配置说明
02 提供token加密工具
由于接口调用是在流水线节点中以shell脚本的方式进行,所有参数都是明文展示,所以为实现对客户的制品仓库、git仓库、MC等第三方应用的安全访问,需对客户第三方组件的token、key进行加密后才能使用。为此我们特意提供私有化的token加密工具,来确保数据安全。
具体操作方式为将需要加密的token在下图中输入,获取加密结果,用对应的加密结果填写在对应的shell脚本中,我们的程序会在运行时自动进行解密,减少这些核心信息在传递过程中出现泄露的风险。

token加密工具
03 日志查看
为了方便排查接口调用过程中出现的问题,我们提供了接口调用日志来方便查询异常错误。

接口调用日志列表

接口调用详情
04 操作审计
融合工具也提供账户的操作历史,方便查看融合工具后台的整体操作情况。

操作审计
亮点价值
亮点一:低成本实现与客户的DevOps平台实现融合,完成苍穹二开的构建和发布
提供API接口,用户无需使用gPaaS服务,在自己的DevOps平台中即可完成配置。客户只需要在自己的流水线中以脚本的方式进行调用就可以快速完成,极大地降低了适配难度。
亮点二:支持优雅重启
使用容器重启苍穹环境时,往往因为需要重启服务而导致正在进行的服务中断,影响客户的正常访问或正在办理的业务,我们的API接口支持通过利用monitor实现苍穹的优雅重启。
亮点三:确保数据安全
我们提供单独的Token加密工具,支持对敏感数据进行加密,避免因为在shell脚本中明文展示,导致数据泄露。
亮点四:方便错误排查
提供了接口调用日志和运行日志,方便在出现问题的时候进行排查。
应用案例
某大型制造业客户,整个集团统一使用rancher管理容器集群,使用Jenkins来管理CICD流水线服务。客户希望能在原有平台的基础上来进行苍穹二开的构建和部署,不部署gPaaS和轻轨线(CI/CD),并对交付时间有要求,时间紧,任务重。
在首次接触并应用CICD融合工具的情况下,仅用一周左右的时间就完成了从部署到调试成功的所有步骤,获得了现场的高度赞扬。

客户证言
相关链接
CICD融合工具的详细内容可参考下方链接:
https://vip.kingdee.com/link/s/l0M1W
划重点
CICD融合工具,可以低成本实现与客户的DevOps平台实现融合,完成苍穹二开的构建和发布,降低交付门槛,核心特性如下:
1) 融合工具提供了3个接口包括generate_package、upgrade_cosmic、upgrade_metadata,分别用来在CI时生成苍穹二开补丁包、在CD时用来更新苍穹和更新元数据,降低二开现场适配其他DevOps平台成本.
2) 提供token加密工具,支持对敏感数据进行加密,确保数据安全。
3) 提供接口调用日志,方便对出现异常时进行排查。