timzaak / blog

8 stars 1 forks source link

CI 环境搭建 #11

Closed timzaak closed 6 years ago

timzaak commented 7 years ago

Jenkins 里插件对 docker 的支持不是很完善,还不如自己写 Shell 来做。虽说可视化配置,但是为了复用,还是需要走配置文件的: Jenkinsfile 。

在把玩了两天后,感觉 Jenkins 做单元测试、镜像构建、Pipeline、信息通知和第三方集成是比较合适的。

但到部署部分,感觉 Jenkins 就贼吃力了。因为部署有很多配置性的东西需要考量。配置一般还不能公开,而且一般微服务环境部署的时候,可能需要部署所有,又有可能只需要更新一个。所以部署应该放在 Jenkins 之外做。(其实,也可以用 jenkins 做,脚本要写好)

因为 Jenkins 会准备好镜像,那么剩下的就是 服务编排 的事情了。目前想用 docker swarm,理由是:简单,资源消耗少。至于 k8s 和 marathon,则是太麻烦,吃资源也多。

还有一个需要注意的是:容器状态可视化,这会极大的方便配置检查。 docker-swarm-visualizer 目前找到最好的,但是缺乏 docker实例 之间关联展示。这个可能需要 docker swarm 自身提供相应的api来做。或者可使用 Tag 来做 容器调用关联 逻辑。

至于部署操作,脚本啥的都可以,或者构建专有部署服务也行。但这个地方存在很多的特别情况,所以尽量还是靠最基本的脚本来做比较合适。

参考资料