## 一期项目说明 ### 设计说明: * 支持可配置的资源模型选择,应用使用标签进行部署类型选择。本月支持StatefulSets。 * 支持两种数据持久化源etcd and mysql,本月支持mysql。 * 支持单实例启停,重启操作,多实例滚动升级操作,水平伸缩,垂直伸缩操作,应用组启动策略操作。 * 支持基于应用标签的高级调度 ### 功能点和时间点规划 * [*] 消息队列HTTP API @8.1 * [*] 消息队列gRPC完成,golang,python客户端完成 @8.18 * [*] 各种操作类型模型确定 @8.2 * [*] 数据持久层接口,实现mysql插件 @8.3-8.4 * [*] 使用zmq进行日志服务客户端封装 @8.3-8.4 * [*] 任务发现器 @8.7-8.8 @崔斌 * [ ] podname dns解析服务 @8.12-8.15 @崔斌 * [*] 任务分析模块 @8.9-8.11 @崔斌 1. 任务截流 2. 数据库相关操作 3. 任务分析 4. logger创建 5. 测试 @8.17 * [ ] 任务执行器 @8.7-8.18 * [*]无状态单应用启动停止,重启,伸缩。 * [*]有状态单应用启动停止,重启,伸缩。 * [*]应用滚动升级。 * [ ]应用组启动停止。 * [ ] 控制台支持应用标签,指定应用使用v2 API @8.16-8.18 * [*] region api v2版API @8.14-8.17 @崔斌 1. 兼容API已完成 * [*] region api 端口分配修改。原接口使用podname获取服务数据。新接口podname 与服务数据难对应。思考调整 @崔斌 * [*] 应用运行状态控制器status_manager @8.17 @崔斌 * [ ] 原数据库数据校验与清理 [*] 应用部署信息表:service_deploy_record,(同步部署信息,集群同步回来) [ ] 应用与Pod信息表:tenant_service_pod ### 模块说明 * 任务发现器 任务发现器持续从消息队列中获取任务信息,并发往任务分析器进行分析。任务分析器需要控制当前节点任务等候数量,如果超过配置值,任务发现器需要将任务重新放回任务队列。 * 任务分析器 任务分析器接收到任务以后分析任务类型,需要的任务数据,封装成执行任务添加到任务执行器中。 高级功能:维护任务的状态。 * 任务执行器 ### gRPC ``` cd pkg/api/grpc protoc --go_out=plugins=grpc:./ message.proto ``` ### 部署说明 #### 环境变量 * EX_DOMAIN 数据中心对应域名 例如 `ali-sh.goodrain.net:10080` * CUR_NET 网络类型 例如 `midonet` ## 二期项目说明 ### 设计说明: * 支持任务执行过程可中断,可恢复,可回滚。 ## 无状态说明 本组件设计目标无状态,目前POD状态维护具有有状态性,应用状态维护具有有状态性. POD状态问题影响不大,已数据库一致性为主。 应用状态多实例间忽略数据不一致,会导致应用状态异常设置。