目录
构建与部署,是日常开发过程中很频繁也很关键的步骤,本文将介绍dapeng部署构建中心两大模块的核心概念。
平台架构
系统分为两个主要部分:
-
配置中心 配置将服务运行所需要的所有配置项入库, 负责生成运行所需的配置文件(一般为yml), 并指示agent进行系统的发布/回滚等.
-
agent-client(以下简称agent). agent部署在服务节点上, 并接收配置中心的指令并根据指令做具体的操作.
- 配置管理员在web配置中心进行增删改操作,更新配置
- 配置管理员确认配置参数无误,进行配置的同步下发(web端表现为升级操作)
- 配置中心从数据库获取各项配置返回至配置中心
- 配置中心将配置按照优先级进行整理,基于docker-compose文件模型生成最终配置
- 在升级前通过指定事件消息将当前已经在运行的配置文件内容返回,与配置中心生成的配置文件进行对比(差异可视)
- 当文件最终确定后,通过事件消息将配置发送至agent
- agent接收到事件消息后将文件生成,并执行指定的操作(升级)
- 升级完成
主要功能项
- 持续集成
- 构建任务
- 展示构建任务列表
- 发送构建操作
- 查看构建历史
- 删除构建历史
- 查看当前构建任务
- 点击历史查看构建日志
- 构建任务
- 发布部署
- 服务管理
- 展示服务列表
- 导入导出服务
- 服务信息增删改查
- 环境管理
- 展示环境集列表
- 环境集信息增删改查
- 指定构建主机
- 管理SetSubEnv
- 节点管理
- 展示节点列表
- 节点信息增删改查
- 部署单元管理
- 展示部署单元列表
- 部署单元增删改查
- 批量修改tag
- 批量修改分支
- 对比配置
- 上线部署
- 展示容器信息;容器状态,容器tag
- 升级,停止,重启,预览配置,移除容器操作
- 查看agent列表
- 部署记录
- 展示部署的操作记录
- 回滚服务配置
- 文件管理
- 管理容器与宿主机卷挂载的文件,一般是内容有限内容的明文配置文件
- 文件增删改查
- 关联部署单元,换言之可具体关联某个节点的容器
- 网络管理
- 预定义和配置容器网络参数
- 将配置的网络关联到节点
- 下发网络配置,在关联节点创建网络
- 服务管理
功能主逻辑
服务:微服务架构,将业务细化,每个模块作为一个服务向外提供服务,往往每个模块具体化为一个代码库,而这里的服务就是描述这个镜像最基本的配置
环境集:一个环境集合,例如测试环境中的某个sandbox环境,生产的统一集群环境。环境集中包含一个环境集中服务高度共享的environment
信息
SetSubEnv:环境集内描述某个服务在某个节点的environment
信息
节点:节点从属于环境,一个环境集下可存在多个节点。如生产环境的多个节点app1,app2
部署单元:部署单元由环境集,节点,服务,三部分组合而成的服务容器(通俗的描述:就是在某个环境集的某台节点部署某个服务,在docker服务下表现为服务容器,运行状态下可使用docker ps查询)
文件:文件将会绑定部署单元,而部署单元在升级时会携带绑定的文件和内容 网络:解决特定的网络环境问题,如mtu,容器子网网段
yaml配置文件:每一个容器,在docker-compose模型中,都可以以一份yaml文件来描述其运行信息,应用以各项配置的优先级(服务<环境集<SetSubEnv<节点<部署单元)
进行整合,最终生成为一份yaml配置文件。
构建任务:构建任务描述信心实际上是部署单元的描述信息(在某个环境构建某个服务的某个分支,部署在这个环境的某个节点上)