半年来一直在做一个 PaaS 的项目,比较关注市面上的相关产品。最近发现一个叫做 wercker 的项目,感觉做的还不错,介绍一下。
目前有很多的平台(如 mesos, rancher, kubernetes)都支持以 docker image
的形式进行应用的部署,但是却没有很多的工具帮助将 ci/cd 与这些平台进行更好的对接。而 wercker 的口号是 From code to container
,强调自己可以做 ci/cd 的事情将代码转化为容器。那么之后就可以将这个容器作为交付的内容在需要的环境进行部署了。
pipeline as cde
wercker 提供一个类似于 ansible
的 wercker.yml
并提供与 ansible
类似的自定义命令来做部署的工作。
自定义命令的功能非常的强大,种类也非常的丰富。例如 npm-install
安装 node
的依赖,internal/docker-push
将生成的 image
上传到 docker registry
,marathon-deploy
将应用部署到 marathon
平台。
整个 pipeline
可以通过这些命令拼装起来,所有的 pipeline 都可以通过一个 wercker.yml
文件进行管理。
本地环境
wercker 有一个命令行工具 wercker-cli
支持在本地通过 docker
和 wercker-cli
构建一个本地的开发环境,并且支持在本地环境提供 backing service
。
多 vendor 支持
wercker 可以和多个 PaaS
对接的,包括 heroku
kubernetes
marathon
ecs
等。这一点非常的难能可贵,想象一下,作为一个开发者,当有了类似于 ecs
或者 heroku
这样的公有云之后再配合 wercker
这样的工具可以快速的搭建 pipeline
以及完成以前需要花费更多时间才能得到的 ci/cd
开发效率真是大大的提升。
ui 界面
提供一个 ui 界面管理整个 pipeline
与 github & bitbucket 对接
支持 github bitbucket hook,在有新的 commit 之后自动构建、部署。
管理关键数据,有些数据不适合存放在 wercker.yml
中,例如 heroku
的 accesskey
,docker-hub
的账号密码。