Docker项目发布流程

微服务框架(三十一)

Posted by Tillend on April 19, 2019

  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。

  本文为Docker项目发布流程

本系列文章中所使用的框架版本为Spring Boot 2.0.3-RELEASE,Spring 5.0.7-RELEASE,Dubbo 2.6.2。

Piplin部署

piplin的详细部署流程见piplin部署

目前所有的算法微服务暴露两个端口,9700段为服务调用端口,22800段为服务QOS端口, 所有的服务均会通过zookeeper注册中心获取服务地址

发布流程

docker镜像标签、git标签、构建产物版本 应严格保持一致 部署环境的环境名称需与spring.profiles.active的项目配置名称保持一致

  1. 项目设置docker镜像标签image.tag(如1.0.1)
  2. git tag的标签与docker镜像标签保持一致(如1.0.1)
  3. gitlab-CI标签自动触发,打包对应版本的docker镜像并上传至docker私有仓库
  4. 由标签事件触发piplin Webhook,自动构建对应版本产物
  5. 创建构建产物版本与docker镜像标签保持一致(如1.0.1)
  6. 机柜直接发布 或 选择灰度服务器灰度发布

容器启动时可 动态选择配置文件 或 配置线程策略、线程数等参数
(e.g. –spring.profiles.active=dev –dubbo.provider.timeout=1500)

灰度部署流程

可在piplin设置灰度服务器,并手动发布

若为REST接口,可依照每个服务至少需要两台服务器,按照目前的调用情况,维持一台权重为 100,另一台权重为 50,并实时根据调用情况做调整

管理中心

若希望人工管理服务提供者的上线和下线,此时需将注册中心标识为非动态管理模式。

1
dubbo.registry.dynamic = false

服务提供者初次注册时为禁用状态,需人工启用。断线时,将不会被自动删除,需人工禁用。

dubbo-admin后台启动禁用操作