diff --git a/应用部署/youfool-increpack-readme.md b/应用部署/youfool-increpack-readme.md new file mode 100644 index 0000000..b9df8fe --- /dev/null +++ b/应用部署/youfool-increpack-readme.md @@ -0,0 +1,250 @@ +
众望通科技 研发中心
+
YOUFOOL-INCREPACK 架构设计
+ +[TOC] + + + +## 1 项目说明 + +YOUFOOL-INCREPACK是一个管理补丁发布的 **工具链**。主要为了解决 **开发环境** 与 **实施环境** 网络隔离情况下,规范Web应用中补丁的升级,同时为Web应用添加校验机制,未经授权的修改无法部署到Web应用中,规范了实施环境的管理。 + +## 2 主要功能 + +* 根据配置生成指定范围增量补丁文件; +* 版本管理自动化,对版本号形成强约束管理; +* 向补丁发放授权; +* 补丁升级过程自动化:补丁下载、解压、备份、覆盖、系统关停、启动、升级成功检测; +* Web中间件启动过程校验,未经授权的文件无法部署启动。 + +## 3 技术设计 + +![输入图片说明](./youfool-increpack-framework.png "YOUFOOL-INCREPACK 架构示意图") + +YOUFOOL-INCREPACK由四个部分组成: + +* PMS +* Increpack-maven-plugin +* Increpack-client +* Increpack-interceptor + +### 3.1 PMS + +项目管理系统,闭环管理的角色,升级流程的起点与终点: + +* 发布的补丁的授权文件,设定版本逐级发布的链路(链路节点参与补丁授权),最后接收现场升级后的完成信息,作为版本发布的闭环节点; +* 负责所有系统版本发布信息的管理; +* 负责所有系统的License管理; + +### 3.2 Increpack-maven-plugin + +Maven插件,只适用在Maven管理的开发项目中,Package阶段完成补丁的打包。配置 `Git` 仓库信息、Revision信息和版本号信息后,生成特定版本号样式的补丁。 + +> 补丁名称样例:*aicods_gz-1.0.12-RELEASE-r252.200504.zip* + +#### 3.2.1 补丁文件结构 + +* 工程文件,目录结构遵循约定,与部署环境一致 +* incre_config 目录专门存放配置文件信息 +* auth文件,补丁的授权信息 +* version.json文件,补丁的版本信息 +* README.txt文件,补丁的描述信息 + +#### 3.2.2 版本号说明 + +补丁版本号示例: ` youfool-pms_v1.0.12_c6303209da_20201011 ` + +* 项目名称:youfool-pms,按照约定,与POM中 artifactId 一致; + +* 版本号: v1.0.12,编号规则(严格递增): + + `MajorVersionNumber.MinorVersionNumber.BugFixNumber` + + 1. `MajorVersionNumber`,主版本号,项目发生重大升级时递增 + + 2. `MinorVersionNumber`,子版本号,项目进行需求变动升级时递增 + + 3. `BugFixNumber`,修正版本号,项目进行Bug修复时递增 + +* 代码版本号:c6303209da,对应 `GIT` 的 commit SHA-1 编号,增量补丁截止的版本 + +* 时间序列号:20201011,打包操作的时间描述,2020年10月11日 + + +### 3.3 Increpack-client + +客户端负责工具,由实施人员操作。主要用于辅助实施人员完成补丁的升级、回退和一些简单的系统管理功能。具体功能有: + +* 补丁授权的校验 +* 补丁版本号校验 +* 执行补丁文件的覆盖与备份 +* 往实施环境写入授权信息 +* 应用系统的关闭与启动 +* 系统可用性检测 + +### 3.4 Increpack-interceptor + +Web容器拦截器,用于Web容器启动时进行授权校验: + +* 计算环境中应用文件的Hash信息是否与auth授权数据一致,如果出现不一致,认为应用文件被篡改,中断系统启动过程; +* 应用的license校验; +* 系统启动的消息发布,发布渠道:企业微信和应用自带的版本发布消息模块。 + + + +## 4 版本发布流程 + +### 4.1 版本发布服务器 + +### 4.2 分支管理 + +### 4.3 版本号管理 + + + +## 5 配置说明 + +### 5.1 工程配置说明 + +#### 5.1.1 POM配置 + + 1. 引入依赖youfool-increpack-maven-plugin + + ```xml + + com.chinaweal.youfool + youfool-increpack-maven-plugin + 2.0.0-SNAPSHOT + + ``` + + 2. 在build.plugins节点下配置需要用到的插件(直接拷贝即可) + + ```xml + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + ${project.artifactId} + + target/assembly.xml + + + + + make-assembly + package + + single + + + + + + org.codehaus.mojo + exec-maven-plugin + 1.6.0 + + + compile + + java + + + com.chinaweal.youfool.increpack.maven.IncrePackMain + + ${project.artifactId} + ${project.version} + + false + + + + authMac + package + + java + + + com.chinaweal.youfool.increpack.common.AuthPackMain + + + + + + ``` + + +#### 5.1.2 increpack.xml配置 + + 文件放置在Maven工程根目录 + +```XML + + + http://172.22.80.91:8086/control/upgradeRecord/getUpgradeByAppIdAndCodeId + + d789d196fdb40bdb2df321216da192ff + + e53514c7330d9ccbe701a26cf0803243 + + + + git + http://47.107.61.133:3000/chinaweal/fsrl-server.git + D:\chinaweal\gitea-code\fsrl-server_medical + youfool-increpack-maven-plugin-git + + d160c658ccf1e764cb65bc5e59986b1b2b791144 + 64575ae03c6406744821bc4cba81b69f9f27181f + + + + + src\main\resources\properties + src\main\resources\spring\JobBySpring.xml + src\main\resources\config.properties + src\main\resources\logback.xml + src\main\resources\backfill\backfill.properties + + + +``` + +#### 5.1.3 前端工程配置 + +package.json追加工程信息 + +```json +{ + "appId": "7d7182320870b9f0a36d843ddbb77362",// 应用ID + "codeId": "ec05f963917a612d247f39ec8fc1ba47",//工程ID + "increApi": "http://172.22.80.91:8086/control/upgradeRecord/getUpgradeByAppIdAndCodeId"//版本服务器接口地址 +} +``` + +vue.config.js 配置引用插件 + +```javascript +configureWebpack: { + plugins: [ + new IncrePack(packageJson) + ] +} +``` + + + +## 6 下一步 + +### 6.1 完善功能 + +1. 增量打包插件进行调整新建目录专门存放配置文件 +2. 增量打包插件,进行记录删除的日志进行移除文件 + +### 6.2 规划方向 + +1. Client功能的完整:下载补丁、关停中间件、启动中间件、系统可用性检测、系统版本升级数据管理; +2. 升级的闭环:PMS结合项目实现补丁授权、生产环境升级历史的统一管理。 diff --git a/技术规范/新兵作战指南(后端篇).md b/技术规范/新兵作战指南(后端篇).md index 77939c8..c8aa75d 100644 --- a/技术规范/新兵作战指南(后端篇).md +++ b/技术规范/新兵作战指南(后端篇).md @@ -145,12 +145,17 @@ IDEA社区版运行tomcat必装 ### 增量打包部署 +[youfool-increpack-readme](../应用部署/youfool-increpack-readme.md) + ## 军情报告(日报,周报) ### 日报 -一般在入职后的第二周,项目经理就开始要求你写日报。 +一般在入职后的第二周,项目经理就开始要求你写日报。日报通过企业微信的工作台的`汇报`-`日报`功能进行每日的工作,以及第二天的工作的汇报。 ### 周报 -## 常见问题 +同样的,一般在入职后第二周或第三周开始,项目经理就开始要求你每周周五早上写周报。点击下载周报模版。 +模版一般通过企业邮箱发送到自己的项目经理手上。这个具体要看你的项目经理的安排。 + +## 常见问题(Q&A) diff --git a/模版/xxx个人工作周报(2021.12.13 - 2021.12.17).xls b/模版/xxx个人工作周报(2021.12.13 - 2021.12.17).xls new file mode 100644 index 0000000..c052d77 Binary files /dev/null and b/模版/xxx个人工作周报(2021.12.13 - 2021.12.17).xls differ