OPEN-C3 为解决 CI/CD/CO 而生。
在整个的运维环节中,对产品的持续构建(CI)持续部署(CD)伴随着产品的整个生命周期。 一个运行良好的运维系统可以辅助提升运营效率,达到持续运营(CO)的效果。OPEN-C3 为解决 CI/CD/CO 而生。
可以把 OPEN-C3 当作 CI/CD 平台来使用。安装部署后便可以独立使用。根据文档中的描述可以方便的完成体验版、单机版和集群版的安装。同时可以根据实际情况,给 OPEN-C3 提供指定接口后,可以在不修改任何 OPEN-C3 代码的情况下对接公司的登录系统、服务树、权限系统、OA 审批。
使用 GPL-2.0 开源协议
前端有两种样式可以进行选择,可以在连接器中进行切换。
如果只需要作业平台的功能,可以通过连接器进行切换。
CICD 系统 / 发布系统 / 作业平台 / 监控系统 / 云监控 / 故障自愈 / K8S 集群管理 / CMDB / 公有云资源管理 / 工单系统
- 高效的文件传输协议,在面对服务器数量庞大的情况下效果明显。
- 强大的网络代理方式,可以方便的管理分布在全球各地区的服务器。
- 高可用,系统没有核心单点,易运维,易部署,可以水平扩展。
- 独立性,系统可以独立使用,也可以根据公司环境对接登录系统、服务树 OA 审批。
- 插件性,可以方便的添加插件已满足对流程编排的不同的需求。
- 支持作业叠加,支持流水线中调用流水线,作业中调用作业,从满足更复杂的编排要求。
- 快速执行脚本: 快速的选择机器进行命令操作。
- 快速分发文件: 快速的选择机器进行文件同步。
- 虚拟终端: 提供单台机器的 webshell 和批量操作机器的功能。
- 文件发送: 提供把本地文件上传到远程服务器和从远程服务器下载文件到本地的功能。
- 作业任务: 支持定义一个作业,作业中可以使用插件:执行命令、同步文件、审批。
- 定时任务: 可以把一个作业设置成定时执行。
- 分组作业: 可以配置一个机器分批,分批的进行作业调用。
- 流水线: 完成一个 CI/CD 的过程。
- 报告: 提供 git 代码提交报告,提供发布回滚等报告。
- 容器发布 :通过 OPEN-C3 对容器服务进行发布。
- 主机和容器混合发布:在一个流水线中同时发布主机服务和容器服务。
- 资源编排 :通过 terraform 做资源编排。
- 轻应用 : OPEN-C3 中的轻应用功能。
- 应用群同时发布 :怎么在一次发布中有顺序的发布 / 回滚多个模块。
- 演示广场 : 一个大家都有权限的服务树节点。
- 私人节点 : 每个人自己的私有节点。
- CDN 刷新 :对各 CDN 厂商的 CDN 进行刷新。
OPEN-C3系统内置登录管理、用户管理、权限管理、服务树、审批功能。
但考虑到企业环境中该部分功能需要和公司的基础架构进行联动。
OPEN-C3内部把这部分功能全部集中到了系统中的连接器模块。可以通过修改配置把这部分接口指向外部系统。
以下几种动作可以操控 OPEN-C3 系统。他们影响着 OPEN-C3 的运行逻辑。
人为操作
- 用户在控制台上进行操作,可以配置流水线、作业、定时任务、可以批量操作服务器、批量传输文件等。
- 用户的审批操作,审批操作可以通过移动端完成,审批的结果(通过或者拒绝)会影响 OPEN-C3 的流程。
代码仓库触发
- 代码的变化可以触发构建操作,同时构建操作可以和发布进行联动。
- SVN: 通过打 tag 的方式进行触发。
- GIT:支持 tag 方式和 webhook 方式触发(webhook 方式可以做到每次 git push 操作都触发一次构建)
- FILE: 支持通过上传文件触发构建。
故障自愈系统触发
- 如果有故障自愈系统,可以把自愈操作对接到 OPEN-C3 中。
文件上传
- 上传文件除了在控制台页面中直接上传,同时也可以通过命令来进行上传,可以配置成文件上传后触发某个流程,达到上传后立即发布的效果。
定时任务
生成程序包
- 构建成功后会保存构建好的压缩包,压缩包会保存在 OPEN-C3 的文件系统中等待发布时使用。
上传镜像到镜像仓库
- 如果是容器发布,可以配置成构建容器镜像,上传到镜像仓库中。
控制服务器
- 批量操作服务器,同时内置了部分指令用于发布程序。
- 批量同步文件,文件同步可以跨区域,文件传输过程支持多对多传输。
通过内建插件控制其他服务
- 可以方便的添加插件,内置了 terraform(可以用于资源编排)和 kubectl(可以用于发布 kubernetes 应用)等插件。
如要对 OPEN-C3 进行二次开发,需要准备一个开发环境,安装一个单机版,在这个基础上进行二次开发。
OPEN-C3 的后端通过 perl 来编写,代码直接修改即可,不需要编译,
如果修改的是插件部分,修改后直接生效,否则需要通过下面命令重启服务。
/data/open-c3/open-c3.sh restart
地址:https://github.com/open-c3/open-c3
更多功能广大网友可以继续挖掘。