[关闭]
@yanglfyangl 2018-06-22T04:59:38.000000Z 字数 908 阅读 460

用Docker CI化方案来优化团队效率

Docker与CI持续集成/CD
使用docker-maven-plugin插件将项目编译为docker镜像到远程linux服务器
用浏览器管理 Docker
Flyway学习笔记

目前我们的产品在部署的过程中出了很多问题。其中90%的问题都与配置有关。在业界,Docker其实已经是这个问题的有效解决方案。基于此,建议我们开发过程也尽量Docer化,来避免越来越复杂的应用导致更严重的问题。

未来希望能够:

Created with Raphaël 2.1.2开发开发本地环境本地环境社交服务器社交服务器测试框架测试框架Docker HubDocker Hub测试人员测试人员测试服务器测试服务器运维运维正式服务器正式服务器调试调试完成部署自己服务的Docker部署完成执行单元测试将结果通知开发将结果推到docker 仓库通知测试使用新版本拉镜像推到测试服务器进行测试测试结果拉镜像

开发的重点是在自己的服务器上跑通和测试好,然后测试和运维就可以拉镜像云测试,整个过程不在需要任何人参与或改配置等等。(至少节省了大量的高级或架构师来去参与部署和配置)
这样,开发不需要维护这么多的“环境”分支版本。而是重点放到“功能”分支版本

各种配置怎么办?

我们现在99%的配置都应该是走xxl-config的。
但有一个问题,root zk的配置还是在不同代码分支下写在代码中的。

两个方案
1. 由docker启动时传入
2. 走k8s的dns,不同的dns导向到不同的zk.
这个可以和运维讨论一个解决方案。

数据格式如果发生变化怎么办?

  1. 使用Flyway来管理mysql.

需要做的事

  1. 每个需要运行的工程都加上docker目录,并附上dockerfile,将运维目前的dockerfile取来,如果可以,直接附到代码上。
  2. 在我们自己的服务器上建立docker hub,与运维讨论基础镜像和 root zk的配置方式。
  3. 配置我们的服务器支持远程编译docker。
  4. 在我们的服务器上安装DockerUI,让开发可以来自已启动和停止自己部署上去的镜像。
  5. 一键测试界面(开发可以一键执行测试脚本)
  6. 将sql做为代码的一部分,也参与持续集成。(使用Flyway)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注