Cyclone 是一个打造容器工作流的云原生持续集成与持续发布平台,是由 caicloud 开源的 CI/CD 工具,它同时也是我的本科毕设在做的系统,因此我也参与了开发。2015年11月22日为它贡献了第一行代码,到现在已经一年多了。目前已经在 Github 上开源了,因为目前配套的 UI 还在继续开发中,所以还不是 production ready 状态的,但是这也不妨碍我先来吹一吹。下面都是我自己对 Cyclone 的看法,不代表 Cyclone 未来的发展方向。
Cyclone 参考了很多其他的开源 CI/CD 工具,相互之间有相似之处,但是也有不同的地方。按照我的理解,Cyclone 的目标是做私有云中的持续集成的,因此主要面向的竞品是 Jenkins。Jenkins 也是目前互联网公司里用的最多的 CI/CD 解决方案。就我自己的使用情况来看,Jenkins 最大的优势在于快糙猛。一个什么都不会的小白,也可以在10分钟内根据教程搭建一个 Jenkins 服务出来。而且 Jenkins 非常耐操,而且功能比较齐全,是典型的开源项目具备的特点。
Cyclone 在我看来,想做到的是跟 Jenkins 不同的道路。首先他们的抽象就不太一样,Cyclone 是一个深度跟容器整合的 CI/CD 工具。每次构建,Cyclone 都会产生一个镜像,这个镜像会被推送到用户自定义的镜像仓库中。这是 Cyclone 默认的行为,这也是目前 Cyclone 与 Jenkins 最大的不同。
其次,Jenkins 在不涉及对其进行开发时,是非常好用的。但是如果要为 Jenkins 贡献代码,或者修改它,那是非常复杂的。而 Cyclone 的抽象是非常简单的,而且 LOC 很小,可以算是一个 Hackable 的开源工具。一般来说,开源的产品是不可能完全满足需要的,总会有一些 ad-hoc 等等,那 Cyclone 在我看来是一个非常容易定制的工具。
目前来看,Cyclone 的发展方向是朝着 Kubernetes Native 在走,下季度希望做的就是无痛支持 Kubernetes。这是跟 caicloud 的 infra 有关系的。本身是一家基于 Kubernetes 的创业公司,所以做的 CI/CD 工具肯定也是要原生支持的。
而至于 Cloud Native,不知道什么时候可以支持 rkt,甚至是 runc 等等。目前用到的 docker 的 feature 中,最麻烦的是 network,这个短时间内可能不会实现。
安利结束,总之是一个不错的 CI/CD 工具,虽然现在不是 production ready 的,但是值得期待:)