思路对比
Zadig做CI/CD的思路: 把所有要管理的项目平铺展示,每个项目中可以有5种元素: 工作流、环境、服务、构建、测试。 项目从“环境”和“工作流”切入。从项目的视角可以看到该项目的所有“环境”和“工作流”,工作流中可以把构建,测试,分发包含进去。Zadig可以方便的看到这些动作的状态。每个动作都触发式执行,没有流程审批的概念,开源版只有管理员一个角色,回滚需要进行人为控制。Zadig专注于k8s服务的发布,针对容器发布的生命周期管理比较完整。
Open-C3做CI/CD的思路:Open-C3中有服务树,可以在任何服务树节点配置流水线。每一个服务树节点为一个项目。每个项目下可以配置多个流水线。一个流水线包括一个服务模块CI/CD的过程。其中CD又包括测试环境和线上环境。一个流水线管理了一个模块。研发人员对代码仓库打tag后会触发一个流水线的CI,CI结束后会触发测试环境的CD,测试环境CD结束后会触发线上环境的CD,CD过程可以自由编排,可以包含审批的动作,可以进行进行快速回滚。
详细对比
Open-C3 | Zadig | ||
---|---|---|---|
公司 | 聚云科技 | KodeRover | |
语言 | perl/angluarjs | golang/vue | golang作为开发语言更为流行 |
项目地址 | https://github.com/open-c3/open-c3 | https://github.com/koderover/zadig | Open-C3代码更新活跃;Zadig贡献者和专注度更多 |
文档 | https://open-c3.github.io | https://docs.koderover.com/zadig | 文档都比较完善 |
版本 | 体验版/单机版/集群版【三个版本功能基本一致,体验版不能使用容器来做构建】 | 开源版/企业版【企业版功能更多(权限管理/操作审计/质效中心),有专属技术支持群】 | Zadig 的开源版限制了一部分功能 |
触发 | 手工触发/git/svn/命令行关联文件 | git/jira/手工/定时器/触发器/命令行 | Zadig 不支持svn;Open-C3不支持定时器和jira触发 |
项目管理方式 | 一个服务树节点为一个独立的项目,项目下可以有多个发布流水线 | 项目排列放置,项目下有多个工作流 | Open-C3的项目可以有上下级关系 |
用户管理 | 系统内管理/支持通过接口对接到第三方平台【系统默认研发/运维/管理员】 | 系统内管理【开源版所有用户都是管理员,不支持其他角色】,支持ldap,sso对接 | Zadig 开源版的权限过于简单 |
构建环境 | 支持通过主机构建和容器中构建 | 支持主机构建/容器构建/jenkins构建 | 最终效果一致,Zadig 支持在Zadig 中直接触发jenkins |
构建触发方式 | 通过打tag或者push事件 | 构建触发时通过配置的分支拉取当前代码 | open-c3的方式更为安全,Zadig 的方式对研发人员干扰少 |
测试 | 最新版本中不存在测试环节 | 包含测试的过程,自动收集报告 | Zadig 有测试的环节,Open-C3在老的版本中有测试的环节,新版中没有 |
概念区分 | 项目中可以有多个流水线,一个流水线是一个CICD的过程,CD可以包括测试环境和线上环境的发布 | 项目中可以有多个工作流,工作流中可以包含构建,分发,测试等 | |
报告 | 系统会按照项目和公司的维度生成git代码提交情况的报告和发布报告 | 测试过程可以对测试报告进行管理 | |
服务发布 | 通过插件来实现,当前存在插件可以发布k8s,aws ecs,kubestart,terraform,cdn,传统主机 | k8s,传统主机 | Open-C3支持的更多一些,同时可以通过插件进行扩展;Zadig专注于k8s发布,生命周期管理完整 |
服务的管理 | 平台内管理 | 支持托管在代码仓库中【支持手动同步和webhook自动同步】, | 针对于k8s的发布,Zadig配置页面更为友好,Open-C3以插件的形式,没有针对k8s服务配置页做定制化 |