Closed timzaak closed 6 years ago
Jenkins 里插件对 docker 的支持不是很完善,还不如自己写 Shell 来做。虽说可视化配置,但是为了复用,还是需要走配置文件的: Jenkinsfile 。
在把玩了两天后,感觉 Jenkins 做单元测试、镜像构建、Pipeline、信息通知和第三方集成是比较合适的。
但到部署部分,感觉 Jenkins 就贼吃力了。因为部署有很多配置性的东西需要考量。配置一般还不能公开,而且一般微服务环境部署的时候,可能需要部署所有,又有可能只需要更新一个。所以部署应该放在 Jenkins 之外做。(其实,也可以用 jenkins 做,脚本要写好)
因为 Jenkins 会准备好镜像,那么剩下的就是 服务编排 的事情了。目前想用 docker swarm,理由是:简单,资源消耗少。至于 k8s 和 marathon,则是太麻烦,吃资源也多。
服务编排
还有一个需要注意的是:容器状态可视化,这会极大的方便配置检查。 docker-swarm-visualizer 目前找到最好的,但是缺乏 docker实例 之间关联展示。这个可能需要 docker swarm 自身提供相应的api来做。或者可使用 Tag 来做 容器调用关联 逻辑。
至于部署操作,脚本啥的都可以,或者构建专有部署服务也行。但这个地方存在很多的特别情况,所以尽量还是靠最基本的脚本来做比较合适。
continuous-integration-and-delivery-with-docker
python-jenkins
continuous-integration-platform-using-docker-container-jenkins-sonarqube-nexus-gitlab
使用 Jenkins 搭建 CI 并集成至 phabricator
Jenkins 里插件对 docker 的支持不是很完善,还不如自己写 Shell 来做。虽说可视化配置,但是为了复用,还是需要走配置文件的: Jenkinsfile 。
在把玩了两天后,感觉 Jenkins 做单元测试、镜像构建、Pipeline、信息通知和第三方集成是比较合适的。
但到部署部分,感觉 Jenkins 就贼吃力了。因为部署有很多配置性的东西需要考量。配置一般还不能公开,而且一般微服务环境部署的时候,可能需要部署所有,又有可能只需要更新一个。所以部署应该放在 Jenkins 之外做。(其实,也可以用 jenkins 做,脚本要写好)
因为 Jenkins 会准备好镜像,那么剩下的就是
服务编排
的事情了。目前想用 docker swarm,理由是:简单,资源消耗少。至于 k8s 和 marathon,则是太麻烦,吃资源也多。还有一个需要注意的是:容器状态可视化,这会极大的方便配置检查。 docker-swarm-visualizer 目前找到最好的,但是缺乏 docker实例 之间关联展示。这个可能需要 docker swarm 自身提供相应的api来做。或者可使用 Tag 来做 容器调用关联 逻辑。
至于部署操作,脚本啥的都可以,或者构建专有部署服务也行。但这个地方存在很多的特别情况,所以尽量还是靠最基本的脚本来做比较合适。
参考资料
continuous-integration-and-delivery-with-docker
python-jenkins
continuous-integration-platform-using-docker-container-jenkins-sonarqube-nexus-gitlab
使用 Jenkins 搭建 CI 并集成至 phabricator