1 - 产品部署清单
3 - 产品部署
概述
简述
本文档描述了如何通过安装工具部署V8,为实施和运维人员提供参考。安装工具已适配场景见下图:
角色介绍
角色 | 介绍 |
---|---|
管理员 | 拥有完全的微服务安装工具操作权限 |
关键能力
序号 | 关键能力 | 简述 |
---|---|---|
1 | 环境管理 | 对安装工具创建或托管的环境进行统一管理。支持创建全新环境、支持对已创建的环境进行基础配置维护或升级、支持适配已部署环境(指未通过安装工具部署V8,但需要通过安装工具进行托管及后续的运维) |
2 | 许可授权 | 对某一环境的许可进行维护。支持许可(license)的在线/离线更新 |
3 | 服务管理 | 对某一环境已部署的服务进行维护。支持服务的启动、重启、停止、回滚、重新部署及修改参数配置(包括Nacos及K8s配置);支持查看服务的部署日志及启动日志 |
4 | 应用管理 | 对某一环境的应用进行维护。支持应用的在线/离线更新 |
5 | 组件管理 | 对某一环境的组件进行维护。支持组件的离线更新 |
修订记录
序号 | 修订日期 | 版本 | 内容 |
---|---|---|---|
1 | 2024.7.30 | 1.0.0 | 初始化文档 |
2 | 2024.8.16 | 1.1.0 | 补充前置准备工作 |
前置准备工作
环境要求
微服务部署架构图
客户端服务要求
端 | 分类 | 兼容环境 | 详细需求 | 支持场景 | 不支持场景 |
---|---|---|---|---|---|
web端 | 操作系统 | windows | win7 32&64 win8.1 32&64 win10 32&64 win11 64 | 浏览器上全功能正常 | win7 32&64 win8.1 32&64 不支持 |
MAC | OS X 10.7以上版本 | 浏览器上全功能正常 | |||
Linux(信创) | UOS2.0SP1(芯片:鲲鹏、龙芯) 麒麟V10(芯片:飞腾) | 浏览器上全功能正常 | 浏览器上的功能不支持 | ||
分辨率 | 分辨率 | 最大支持2560*1440 最小支持1366*768 最佳效果分辨率1920*1080 响应式应用和大屏应用例外 | 范围内分辨率可使用的全部功能支持 | ||
浏览器 | windows | Chrome/Chromium 69+ /chrome65 Edge 79+ Firefox 65+ 360se 10.1+ IE 11+ 和以这些版本作为内核封装的各种浏览器 | 浏览器可使用的全部功能支持 Firefox、edge不支持pdf、签章 | IE 11+(不支持),chrome65只支持审批应用 | |
MAC | Chrome/Chromium 69+ Edge 79+ Firefox 65+ Safari 11.1+ | 浏览器可使用的全部功能支持 Safari 不支持pdf、签章 | |||
信创环境 | 国产化环境浏览器 360安全浏览器 | 浏览器可使用的全部功能支持 | 不支持 | ||
国产化环境浏览器 UOS浏览器 | 浏览器可使用的全部功能支持 | 不支持 | |||
桌面端 | 操作系统 | windows | win7 32&64 win8.1 32&64 win10 32&64 win11 64 | 移动桌面版安装、卸载,功能正常使用 | win7 32&64 win8.1 32&64 不支持 |
MAC | OS X 10.7以上版本 | 移动桌面版安装、卸载,功能正常使用 | |||
Linux(信创) | UOS2.0SP1(芯片:鲲鹏、龙芯) 麒麟V10(芯片:飞腾) | 移动桌面版安装、卸载,功能正常使用 | 等测试验证结果 | ||
移动端 | M5 | IOS设备 | iPhone设备:ios10以上系统 IPAD设备:ios10以上系统 | 安装、卸载、所有功能正常使用 | iPhone设备:ios12以上系统 IPAD设备:ios12以上系统 |
andriod设备 | andriod手机:5.2以上 andriod平板:5.2以上 | 安装、卸载、所有功能正常使用 | andriod手机:8.0以上 andriod平板:8.0以上 | ||
微信、企业微信 | 安装、卸载、所有功能正常使用 | iPhone设备:ios12以上系统 IPAD设备:ios12以上系统 | |||
钉钉 | 安装、卸载、所有功能正常使用 | andriod手机:8.0以上 andriod平板:8.0以上 | |||
welink | 安装、卸载、所有功能正常使用 | ||||
飞书 | 安装、卸载、所有功能正常使用 | ||||
文档客户端 | office | word | 2003以上 | 文档浏览、编辑正常使用 | 不支持 |
excel | 2003以上 | 文档浏览、编辑正常使用 | 不支持 | ||
powerpoint | 2003以上 | 文档浏览、编辑正常使用 | 不支持 | ||
wps | 文档/表格/演示 | wps2019专业版 | 文档浏览、编辑正常使用 | ||
AcrobatReader | 点聚轻阅读 | 文档浏览、编辑正常使用 | |||
wps在线服务 | |||||
签章 | pdf签章 | 点聚签章(点聚轻阅读) | |||
ofd签章 | 点聚签章(点聚轻阅读) | ||||
office签章 | 不支持 |
运行环境服务器要求
端 | 分类 | 兼容环境 | 详细需求 | 支持场景 |
---|---|---|---|---|
服务器 | 操作系统 | linux | 1、Linux Red Hat Enterprise 7、8 | 部署、启动、维护、备份 |
2、CentOs 7、8 | ||||
3、Ubuntu | ||||
4、信创:UOS2.0SP1(飞腾、龙芯、鲲鹏) | ||||
5、信创:麒麟V10(飞腾、龙芯、鲲鹏) |
- 检查是否64位
- 检查cpu内存是否达到最低配置要求8c16g,容器节点内存不敌低于8C64G
- 检查磁盘可用空间是否不低于200G
- 检查网卡速率是否符合基线要求,1000M
- 已部署各项服务内存之和,加上即将安装的产品内存配置(默认4G)不得超过物理内存80%
- 当前服务器可用内存不得低于物理内存60%
- Linux系统,ulimit -a检查open files和max user processes都不得低于60000
运行环境并发数描述
类型 | 安装资源 | 虚拟机规格 | 在线用户数对应服务器台数 | ||||
---|---|---|---|---|---|---|---|
cpu/mem/disk | 0-1k | 1-3k | 3-5k | 5-10k | >10k | ||
容器 | 容器master | 16C/32G/200G硬盘 | 高可用配置(三台或以上) | ||||
K8S Node | 16C/64G/200G硬盘 | 6 | 6 | 9 | 12 | 具体评估 | |
数据库 | Mysql主从 | 16C/64G/2TSSD | 2 | 2 | 2 | 4 | 具体评估 |
中间件 | Kafka集群 | 8C/16G/500G硬盘 | 3 | 3 | 3 | 6 | 具体评估 |
Redis集群 | 8C/16G/200G硬盘 | 6 | 6 | 6 | 12 | 具体评估 | |
nginx/keeplive代理 | 16C/32G/500G硬盘 | 2 | 2 | 2 | 2 | 具体评估 | |
nacos集群 | 8C/16G/200G硬盘 | 3 | 3 | 3 | 6 | 具体评估 | |
ClickHouse集群 | 16C/64G/1T硬盘 | 3 | 3 | 3 | 6 | 具体评估 | |
ElasticSearch集群 | 16C/32G/500G硬盘 | 3 | 3 | 3 | 6 | 具体评估 | |
运维监控 | 分布式日志ELK | 8C/16G/500G硬盘 | 1 | 1 | 1 | 1 | 具体评估 |
调用链监控 | 8C/16G/500G硬盘 | 1 | 1 | 1 | 1 | 具体评估 | |
存储 | 对象存储minio | 4C/8G/2T硬盘 | 2T硬盘 | ||||
镜像仓库habor | 8C/16G/2T硬盘 | 2T硬盘 | |||||
低代码平台服务(可选) | 流水线 | 16C/32G/500G硬盘 | 2 | 3 | 3 | 6 | 具体评估 |
制品仓库maven/npm | 16C/32G/500G硬盘 | 1 | 1 | 1 | 1 | 具体评估 | |
代码仓库 | 16C/32G/500G硬盘 | 1 | 1 | 1 | 1 | 具体评估 |
组件版本及端口
分类 | 资源 | 最低版本 | 默认维护端口 | 备注 |
---|---|---|---|---|
基础服务 | K8S Master | 1.17.3 | 6443 | |
K8S Node | 1.17.3 | |||
Kafka | 2.1.0 | 9092 | ||
Redis | 5 | 6379 | ||
TiDB/Mysql | 5.7 | 3306 | ||
Nginx(SLB等) | 适配 | 80、443 | ||
Nacos | 2.2.0 | 8848、9848 | ||
对象存储 | 适配 | 80 | ||
ClickHouse | 21.9.4.35 | 8123 | ||
ElasticSearch | 7.15 | 9200、9300 | ||
产品服务 | flow流水线 | 产品最新版本 | 8890 | |
Git | 2.37.0 | 无 | flow流水线依赖 | |
Maven | 3.6.3 | 无 | ||
Docker | 20.10.17 | 无 | ||
Yarn | 1.22.17 | 无 | ||
npm | 6.14.15 | 无 | ||
mysql | 适配 | 3306 | ||
网关 | 产品最新版本 | 30301/30401 | ctp/cip网关暴漏容器服务端口 | |
限流熔断 | 产品最新版本 | 8092 |
- 通过微服务安装工具部署V8时,高于Nacos 2.3.2版本需手动调整:${nacos.home}/conf目录下的application.properties文件中,设置nacos.core.param.check.enabled=false来关闭服务端的参数校验功能
- 安装工具所在服务器配置:JAVA_HOME配置,建议版本为openjdk8
部署资源清单
服务分类 | 后端服务 | 前端服务 | 说明 | jvm推荐内存 | 数据库创建 |
---|---|---|---|---|---|
网关服务 | ctp-webapi-gateway | webApi网关服务 | 4G | 否 | |
cip-openapi-gateway | 开放平台网关服务 | 4G | 否 | ||
基础服务 | app-common | app-common | 基础应用 | 4G | 是 |
app-office | |||||
ctp-message | ctp-message | 消息中心 | 4G | 是 | |
ctp-user | ctp-user | 用户(应用)中心 | 4G | 是 | |
ctp-user-mobile | |||||
organization | organization | 组织模型 | 4G | 是 | |
organization-mobile | |||||
m5 | m5-manage | 移动平台 | 4G | 是 | |
m5-desktop | |||||
m5-mobile | |||||
m5-login | |||||
m5-cloud | |||||
portal | login | 门户 | 4G | 是 | |
main | |||||
main-mobile | |||||
portal | |||||
portal-mobile | |||||
portal-portlet | |||||
流程待办 | app-approval | app-approval | 审批应用 | 6G | 是 |
app-approval-mobile | |||||
bpm | bpm | 流程引擎服务 | 6G | 是 | |
ctp-affair | ctp-affair | 待办服务 | 4G | 是 | |
ctp-affair-mobile | |||||
数据中台 | cdp-data | cdp-data | 数据中台服务 | 4G | 是 |
cdp-data-mobile | |||||
cdp-schedule | 数据分析定时任务 | 4G | 是 | ||
低代码平台 | udc | udc | 低代码定制平台 | 6G | 是 |
集成连接 | cip-capability | 能力接入服务 | 4G | 是 | |
cip-connector | cip-manager | 集成连接器 | 4G | 是 | |
cip-manager | third | 集成连接管理平台 | 4G | 是 | |
扩展服务 | ctp-media | 音视频服务 | 4G | 是 | |
cip-convert | office转换服务(在线预览) | 4G | 是 |
常见问题
jdk基础镜像上传及配置
仅私有化部署低代码平台时才需要上传jdk基础镜像,基础镜像可联系运维获取,获取后将基础镜像上传至所属环境的镜像仓库的/jdk_base目录下,同时通过安装工具修改app-sandbox的nacos配置:
gitlab创建群组
仅私有化部署低代码平台时才需要部署gitlab,而gitlab则用于存放低代码平台搭建的应用代码,操作步骤如下:
- 登录gitlab按下图创建群组
- 通过安装工具修改nacos public配置,将群组名分配填入parentGroupPath(搭建代码存放处)和parentExtendGroupPath(手写代码存放处)。修改配置后需重启UDC服务,并在V8“系统管理_沙箱管理”处重启沙箱才可生效
修改公共桶配置
- 按下图示例修改公共桶的属性和匿名用户权限,public桶属性改为public;匿名用户权限改为readonly
pvc创建
通过容器云平台创建pvc,避免应用因缺少pvc启动失败
- 创建方式:名称为“seeyonv8-${安装工具中定义的环境标识}-dump”;存储类和容量可自主选择
svc创建
通过容器云平台创建svc,仅需创建ctp-webapi-gateway、cip-openapi-gateway即可,svc创建生效后,需同步调整nginx配置
- svc创建示例如下:
- nginx配置修改点如下:nginx端口要与网关sevice svc端口对应(见上图中红框部分)
安装工具操作说明
安装工具初始化
微服务安装工具部署完成并启动后,需要配置安装工具的密码用于后续登录,首次登录后需选择部署模式及安装方式,以上初始化配置均完成后即可使用安装工具部署V8。
部署安装工具
- 将微服务安装工具部署包上传至服务器并解压
启动安装工具
- bin目录下找到安装工具启动脚本,通过脚本启动
设置密码
- 安装工具启动成功后,通过界面设置登录密码
登录安装工具
- 输入密码登录安装工具
选择部署模式及安装方式
- 首次登录安装工具后,基于部署资源确定部署模式及安装方式,确定后将不支持修改
修改密码
- bin目录下找到安装工具重置密码脚本,通过脚本重置密码
停用安装工具
- bin目录下找到安装工具停用脚本,通过脚本停用
环境管理
微服务安装工具提供了全新环境创建和托管已部署环境的能力,支持同时部署并管理多套环境,各环境均可以独立进行应用的初始化部署、应用升级、修改配置等操作。
创建全新环境
- 进入环境管理列表进行环境创建
- **第一步:**定义环境名称及环境简称。环境名称建议用中文进行描述,如:测试环境;环境简称将用于创建Nacos命名空间,建议用英文进行描述,如:test。环境部署成功后,以下参数将不支持修改。
- **第二步:**上传商务颁发的许可文件(license)
- **第三步:**将V8部署包上传至安装工具所在的服务器并解压,填写解压后的路径进行扫描,即可获取初始化安装的应用范围
- 按需选择需要部署的应用,并对各应用的部署及启动参数(K8s)、业务参数(Nacos)进行配置。部分参数已提供默认值,可按需修改
- **第四步:**对当前环境所需的基础设施参数进行配置。该步骤需要依赖组件的部署,组件部署请参照本手册第二章内容
- **第五步:**对基础设置配置进行测试连接检查,检查通过后会安装工具会自动部署服务;检查失败后请基于报错信息修改相关参数再试
继续部署
- 因异常导致环境部署中断,可选择继续部署
修改基础配置
- 环境部署完成后,可通过界面(或编辑器)修改Nacos public配置。Nacos public修改完成后需重启全部服务才能生效
- 通过编辑器修改Nacos public配置。
升级环境
升级环境是将已部署环境的全部必装应用进行批量升级,通常为应用的前两段版本号升级,如应用版本由3.5.x升级到3.6.x
- 通过环境管理发起应用升级,升级过程与创建全新环境的操作逻辑一致,一般需要更新license,上传此次升级的应用包
- 升级环境时,环境标识不支持修改,如许可有更新需上传最新的许可文件,应用包需使用升级目标版本的应用包
- 为确保环境升级的完整,通过安装工具升级应用并启动成功后,需登录系统管理员账号执行升级程序,具体操作详见《系统管理操作手册》的系统升级模块
许可授权
安装工具提供许可(license)的查询及在线/离线更新能力。初始化部署环境时必须要上传许可,否则V8将无法使用。许可的获取及更新可联系商务部门
查询证书编码
- 环境部署完成后,可切换到指定环境查询该环境的证书编码(license code)。
离线更新许可
- 从致远商务获取到最新的许可后,可通过离线上传的方式更新许可。许可更新完毕需要重启全部服务才能生效
在线更新许可
- 安装工具可以连通外网时,将自动从协同云查询是否有可更新的许可并给出提醒,此时可选择在线更新许可或忽略
服务管理
安装工具提供服务(应用)部署的全周期管理,包括服务部署阶段的K8s/Nacos配置上传、服务的前/后端资源上传、数据初始化及变更处理、服务启动及回滚等。部署过程中会输出结构化部署日志及启动日志,方便运维或实施及时发现并处理问题。
功能说明
操作 | 说明 |
---|---|
启动 | 对未启动的服务进行启动(安装工具操作K8s) |
重启 | 对已启动的服务进行重启(安装工具操作K8s) |
停止 | 对已启动的服务进行停止(安装工具操作K8s) |
回滚 | 对已启动的服务回滚至上一版本并重启服务 |
修改参数配置 | 修改服务的K8s配置或Nacos配置(安装工具操作K8s、Nacos) |
重新部署 | 对部署失败的服务重新部署 |
详情 | 查看已部署服务的pod状态 |
日志 | 查看服务的部署日志和K8s启动日志 |
状态说明
术语 | 说明 |
---|---|
部署中 | 通过安装工具对服务进行部署,包括服务的配置文件上传过程、前后端资源上传及备份过程、数据初始化及变更过程等 |
部署失败 | 部署过程中因异常导致的部署中断 |
启动中 | 通过控制K8S对服务进行启动 |
未启动 | 部署阶段完成但服务无法启动或启动失败 |
已启动 | 通过控制K8S对服务进行启动并启动成功 |
启动服务
- 将未启动的服务进行启动
重启服务
- 将已启动的服务进行重启
停止服务
- 将已启动的服务进行停止
修改参数
修改部署及启动参数(K8s)
- 支持通过界面或编辑器修改,参数修改完毕后需重启服务才可生效
* yaml配置请谨慎修改
修改业务参数(Nacos)
- 支持通过界面或编辑器修改,参数修改完毕后需重启服务才可生效
* yaml配置请谨慎修改
重新部署服务
- 对部署失败的服务重新部署
应用管理
安装工具提供应用的在线及离线更新能力,离线包可通过协同云下载或联系运维人员获取;在线更新指通过协同云下单成功后,如安装工具可连接外网,安装工具将自动从协同云获取可更新的应用清单。
离线更新应用
将应用包上传至安装工具服务器进行更新
- 将下载好的应用包上传至安装工具所在的服务器并解压,填写解压后的路径进行扫描
- 检查扫描出的应用参数配置是否完整,填写完成后即可进行应用安装
本地上传应用包进行更新
- 从本地上传应用包进行更新,由于应用包较大,上传耗时可能会很长,不建议采用此方式
- 应用包上传完成后参照上方说明进行应用安装
在线更新应用
- 安装工具可以连通外网时,将自动从出盘服务查询是否有可更新的应用,此时可以选择在线下载应用
- 应用下载完成后可进行应用安装,安装时需要检查应用参数配置是否完整(参照上方说明),确认无误后即可进行应用安装
组件管理
组件管理主要用环境出初始化部署时的全量前/后端组件上传及更新和私有化部署低代码平台的构建组件上传及更新。V8已对前端组件进行外部化处理,各应用部署完成后,需同时上传完整的前端业务组件才可正常使用V8。当私有化部署低代码平台时,低代码应用的构建会依赖构建组件,请及时上传;未部署低代码平台时可不关注该类型的组件
前/后端组件更新
- 将下载好的前/后端包上传至安装工具所在的服务器并解压,填写解压后的路径进行扫描
查看更新日志
安装工具更新
手动更新
- 备份数据:备份db/deployment.db
- 更新安装工具:下载最新版本的安装工具安装包,将安装包上传至服务器后解压覆盖,再环境之前备份的deployment.db
4 - 产品部署-虚拟机
1 环境要求
1.1 客户端服务要求
端 | 分类 | 兼容环境 | 详细需求 | 支持场景 | 不支持场景 |
---|---|---|---|---|---|
web端 | 操作系统 | windows | win7 32&64 win8.1 32&64 win10 32&64 win11 64 | 浏览器上全功能正常 | win7 32&64 win8.1 32&64 不支持 |
MAC | OS X 10.7以上版本 | 浏览器上全功能正常 | |||
Linux(信创) | UOS2.0SP1(芯片:鲲鹏、龙芯) 麒麟V10(芯片:飞腾) | 浏览器上全功能正常 | 浏览器上的功能不支持 | ||
分辨率 | 分辨率 | 最大支持2560*1440 最小支持1366*768 最佳效果分辨率1920*1080 响应式应用和大屏应用例外 | 范围内分辨率可使用的全部功能支持 | ||
浏览器 | windows | Chrome/Chromium 69+ /chrome65 Edge 79+ Firefox 65+ 360se 10.1+ IE 11+ 和以这些版本作为内核封装的各种浏览器 | 浏览器可使用的全部功能支持 Firefox、edge不支持pdf、签章 | IE 11+(不支持),chrome65只支持审批应用 | |
MAC | Chrome/Chromium 69+ Edge 79+ Firefox 65+ Safari 11.1+ | 浏览器可使用的全部功能支持 Safari 不支持pdf、签章 | |||
信创环境 | 国产化环境浏览器 360安全浏览器 | 浏览器可使用的全部功能支持 | 不支持 | ||
国产化环境浏览器 UOS浏览器 | 浏览器可使用的全部功能支持 | 不支持 | |||
桌面端 | 操作系统 | windows | win7 32&64 win8.1 32&64 win10 32&64 win11 64 | 移动桌面版安装、卸载,功能正常使用 | win7 32&64 win8.1 32&64 不支持 |
MAC | OS X 10.7以上版本 | 移动桌面版安装、卸载,功能正常使用 | |||
Linux(信创) | UOS2.0SP1(芯片:鲲鹏、龙芯) 麒麟V10(芯片:飞腾) | 移动桌面版安装、卸载,功能正常使用 | 等测试验证结果 | ||
移动端 | M5 | IOS设备 | iPhone设备:ios10以上系统 IPAD设备:ios10以上系统 | 安装、卸载、所有功能正常使用 | iPhone设备:ios12以上系统 IPAD设备:ios12以上系统 |
andriod设备 | andriod手机:5.2以上 andriod平板:5.2以上 | 安装、卸载、所有功能正常使用 | andriod手机:10.0以上 andriod平板:10.0以上 | ||
微信、企业微信 | 安装、卸载、所有功能正常使用 | iPhone设备:ios12以上系统 IPAD设备:ios12以上系统 | |||
钉钉 | 安装、卸载、所有功能正常使用 | andriod手机:10.0以上 andriod平板:10.0以上 | |||
welink | 安装、卸载、所有功能正常使用 | ||||
飞书 | 安装、卸载、所有功能正常使用 | ||||
文档客户端 | office | word | 2003以上 | 文档浏览、编辑正常使用 | 不支持 |
excel | 2003以上 | 文档浏览、编辑正常使用 | 不支持 | ||
powerpoint | 2003以上 | 文档浏览、编辑正常使用 | 不支持 | ||
wps | 文档/表格/演示 | wps2019专业版 | 文档浏览、编辑正常使用 | ||
AcrobatReader | 点聚轻阅读 | 文档浏览、编辑正常使用 | |||
wps在线服务 | |||||
签章 | pdf签章 | 点聚签章(点聚轻阅读) | |||
ofd签章 | 点聚签章(点聚轻阅读) | ||||
office签章 | 不支持 |
1.2 运行环境服务器要求
端 | 分类 | 兼容环境 | 详细需求 | 支持场景 |
---|---|---|---|---|
服务器 | 操作系统 | linux | 1、Linux Red Hat Enterprise 7、8 | 部署、启动、维护、备份 |
2、CentOs 7、8 | ||||
3、Ubuntu | ||||
4、信创:UOS2.0SP1(飞腾、龙芯、鲲鹏) | ||||
5、信创:麒麟V10(飞腾、龙芯、鲲鹏) |
1、检查是否64位
2、检查cpu内存是否达到最低配置要求8c16g,容器节点内存不敌低于8C64G
3、检查磁盘可用空间是否不低于200G
4、检查网卡速率是否符合基线要求,1000M
5、已部署各项服务内存之和,加上即将安装的产品内存配置(默认4G)不得超过物理内存80%
6、当前服务器可用内存不得低于物理内存60%
- Linux系统,ulimit -a检查open files和max user processes都不得低于60000
1.3 运行环境并发数描述
类型 | 安装资源 | 虚拟机规格 | 在线用户数对应服务器台数 | ||||
---|---|---|---|---|---|---|---|
cpu/mem/disk | 0-1k | 1-3k | 3-5k | 5-10k | >10k | ||
数据库 | Mysql主从 | 16C/64G/2TSSD | 2 | 2 | 2 | 4 | 具体评估 |
中间件 | Kafka集群 | 8C/16G/500G硬盘 | 3 | 3 | 3 | 6 | 具体评估 |
Redis集群 | 8C/16G/200G硬盘 | 6 | 6 | 6 | 12 | 具体评估 | |
nginx/keeplive代理 | 16C/32G/500G硬盘 | 2 | 2 | 2 | 2 | 具体评估 | |
nacos集群 | 8C/16G/200G硬盘 | 3 | 3 | 3 | 6 | 具体评估 | |
ClickHouse集群 | 16C/64G/1T硬盘 | 3 | 3 | 3 | 6 | 具体评估 | |
ElasticSearch集群 | 16C/32G/500G硬盘 | 3 | 3 | 3 | 6 | 具体评估 | |
a9c应用 | 部署a9c应用 | 16C/32G/200G硬盘 | 3 | 6 | 6 | 12 | 具体评估 |
应用部署说明:每个应用jvm占用4g左右,分布式部署到多台服务器上,根据服务器内存资源大小分配应用个数。 |
a9c应用兼容数据库及中间件非集群部署模式,生产环境数据库、中间件、应用都建议部署集群,确保环境稳定,其他环境可按需部署。
1.4 微服务部署图
1.5组件版本及端口
分类 | 资源 | 最低版本 | 默认维护端口 | 备注 |
---|---|---|---|---|
基础组件和数据库 | Kafka | 2.1.0 | 9092 | |
Redis | 5 | 6379 | ||
Mysql | 5.7 | 3306 | ||
Nginx | 适配 | 80、443 | ||
Nacos | 2.2.0 | 8848、9848 | ||
ClickHouse | 21.9.4.35 | 8123 | ||
ElasticSearch | 7.15 | 9200、9300 | ||
a9c应用 | 网关 | 产品最新版本 | 18084 | ctp/cip网关暴漏容器服务端口 |
用户中心 | 产品最新版本 | 8081 | 注册nacos端口 | |
门户 | 产品最新版本 | 8082 | 注册nacos端口 | |
组织模型 | 产品最新版本 | 8083 | 注册nacos端口 | |
流程引擎 | 产品最新版本 | 8084 | 注册nacos端口 | |
…… | 产品最新版本 | 808x | 注册nacos端口 | |
低代码平台 | 产品最新版本 | 8099 | 注册nacos端口 |
3 协同服务部署及维护
部署前置条件
部署前置条件:
- 提供部署环境账号信息(用户名、密码)
- 提供1.3中资源清单
- 访问域名及dns域名解析
- 制品仓库、镜像仓库需要公网访问权限
- 运行app服务器安装openjdk version “1.8.0_275”
部署资源清单
服务分类 | 后端服务 | 前端服务 | 说明 | jvm推荐内存 | 数据库创建 |
---|---|---|---|---|---|
网关服务 | ctp-webapi-gateway | webApi网关服务 | 4G | 否 | |
cip-openapi-gateway | 开放平台网关服务 | 4G | 否 | ||
基础服务 | app-common | app-common | 基础应用 | 4G | 是 |
app-office | |||||
ctp-message | ctp-message | 消息中心 | 4G | 是 | |
ctp-user | ctp-user | 用户(应用)中心 | 4G | 是 | |
ctp-user-mobile | |||||
organization | organization | 组织模型 | 4G | 是 | |
organization-mobile | |||||
m5 | m5-manage | 移动平台 | 4G | 是 | |
m5-desktop | |||||
m5-mobile | |||||
m5-login | |||||
m5-cloud | |||||
portal | login | 门户 | 4G | 是 | |
main | |||||
main-mobile | |||||
portal | |||||
portal-mobile | |||||
portal-portlet | |||||
流程待办 | app-approval | app-approval | 审批应用 | 6G | 是 |
app-approval-mobile | |||||
bpm | bpm | 流程引擎服务 | 6G | 是 | |
ctp-affair | ctp-affair | 待办服务 | 4G | 是 | |
ctp-affair-mobile | |||||
数据中台 | cdp-data | cdp-data | 数据中台服务 | 4G | 是 |
cdp-data-mobile | |||||
cdp-schedule | 数据分析定时任务 | 4G | 是 | ||
低代码平台 | udc | udc | 低代码定制平台 | 6G | 是 |
集成连接 | cip-capability | 能力接入服务 | 4G | 是 | |
cip-connector | cip-manager | 集成连接器 | 4G | 是 | |
cip-manager | third | 集成连接管理平台 | 4G | 是 | |
扩展服务 | ctp-media | 音视频服务 | 4G | 是 | |
cip-convert | office转换服务(在线预览) | 4G | 是 |
产品部署依赖 | 获取地址 |
---|---|
Nacos标准配置 | http://gitlab.seeyon.com/a9/devops/a9c_install.git |
Kafka Topic列表 | http://gitlab.seeyon.com/a9/devops/a9c_install.git |
Nginx配置模板及脚本 | http://gitlab.seeyon.com/a9/devops/a9c_install.git |
ddl脚本及data_init.sh | http://gitlab.seeyon.com/a9/devops/a9c_install.git |
后端程序镜像 | apps.jar |
前端静态文件 | 出盘流水线服务http://devops.seeyonv8.com |
产品使用license | 协同云获取 |
3.1 前端部署
3.1.1 创建文件存储路径
3.1.2 上传代理服务器
将前端静态资源上传至nginx服务器地址任意可读权限目录
例如 /opt/ 下,同步修改3.2.7.2中配置
删除 proxy_set_header Host xxxxx-public.xxxx; #文件存储域名
proxy_pass xxxxx-public.xxxx; #文件存储域名 → root /opt/frontend;
3.2 后端部署
3.2.1 安装openjdk version “1.8.0_275”
查看:
3.2.2 创建消息主题
无法开启自动创建topic或者不开启自动创建,需使用kafka控制台或者客户端命令创建
如下消息主题,其中${env}需修改为环境标识 例如:TEST
参数说明:
--topic:指定topic名称
--partitions:指定分区数
--replication-factor:用来设置主题得副本数,每个主题可以有多个副本
3.2.3 创建应用nacos配置
首先创建命名空间并修改脚本替换环境实际组件信息
脚本变量说明:
变量名称 | 说明 |
---|---|
${license-key} | 产品许可key,由致远互联厂商提供 |
${license-info} | 产品许可info,由致远互联厂商提供 |
${env} | 环境标识,例如test |
${dburl} | 数据库请求地址串 |
${dbport} | 数据库端口,默认3306 |
${dbusername} | 数据库用户名 |
${dbpassword} | 数据库密码 |
${dydburl}(可选) | 低代码应用数据库地址串,未购买此功能无需填写 |
${dydbport}(可选) | 低代码应用数据库端口,未购买此功能无需填写 |
${dydbusername}(可选) | 低代码应用数据库用户名,未购买此功能无需填写 |
${dydbpassword}(可选) | 低代码应用数据库密码,未购买此功能无需填写 |
${domain} | 访问域名,例如xxx.com |
${redisurl} | redis地址,例如ip1:port1,ip2:port2,ip3:ip3 |
${redispassword} | redis密码,如免密访问无需填写 |
${engine} | 消息服务类型,例如kafka / rocketmq |
${mqservers} | 消息服务地址,例如ip1:port1,ip2:port2,ip3:port3 |
${elasticsearchurl} | 搜索引擎地址,例如ip1:port1,ip2:port2,ip3:port3 |
${elasticsearchuser} | 搜索引擎用户名 |
${elasticsearchpwd} | 搜索引擎密码 |
${clickhouseUrl} | 数据仓库clickhouse地址,例如ip1:port1,ip2:port2,ip3:port3 |
${clickhouseusername} | 数据仓库clickhouse用户名 |
${clickhousepassword} | 数据仓库clickhouse密码 |
${storage-type} | 文件存储类型,例如oss/obs/minio |
${access-key-id} | oss秘钥 |
${access-key-secret} | oss秘钥 |
${api-endpoint} | oss java sdk调用使用域名,例如oss-cn-beijing-internal.aliyuncs.com |
${access-endpoint} | oss生成文件访问(前端上传/下载)地址域名,例如oss-cn-beijing.aliyuncs.com |
${private-bucket-name} | 私有桶名称 |
${public-bucket-name} | 公共桶名称 |
${ferryboatBucketName}(可选) | 摆渡桶名称,无低代码服务发布功能无需填写 |
${npmUrl} | npm私服地址,例如ip1:port1,ip2:port2,ip3:port3 |
${npmauth} | npm私服认证密码 |
${envList} | 数据库名称是否带环境标识后缀,可以空 |
${nacosuser} | 用于上传nacos配置 |
${nacospwd} | 用于上传nacos配置 |
${nacosUrl} | 用于上传nacos配置 |
${nacosnamespace} | 用于上传nacos配置 |
注:如需开通集成连接(短信平台等)功能/低代码发布服务/大数据报表功能需单独配置public/cip-capability/cip-connecor/udc/app-approval/cdp-data-datasource
3.2.4 数据库脚本初始化
初始化数据库,默认数据库名为应用名
3.2.5 启动应用
3.2.5.1 启动参数说明
参数 | 说明 |
---|---|
${env} | 应用运行环境标识,与nacos命名空间对应 |
${port} | 应用运行监控端口,同一台服务器不允许重复 |
${jvm} | 按需配置java启动jvm参数 -Xms4G -Xmx4G -Xss1M -XX:MetaspaceSize=384M -XX:MaxMetaspaceSize=384M |
${nacosip} | nacos注册地址或域名 |
${nacosport} | nacos注册端口,默认8848 |
${nacosusername} | nacos用户名 |
${nacospasswd} | nacos密码 |
${appname} | 应用名称 |
3.2.5.2 部署后端应用
上传应用包到服务器执行:
3.2.6 域名解析
解析如下域名到代理服务器ip,如slb或nginx的 ip地址
3.2.7 配置前后端nginx转发
3.2.7.1 nginx主配置文件修改
标红按需和实际情况修改 后端转发可以单独配置elb或者nginx转发
# vim /data/nginx/conf/nginx.conf
:wq保存内容
# mkdir -p /data/nginx/conf/conf.d
3.2.7.2 nginx include配置文件修改
# vim /data/nginx/conf/conf.d/demo.conf
:wq保存内容
3.2.8 访问
http://域名
3.3 租户初始化
使用系统管理员账号登录 system-admin 12345678登录选择租户管理
新建租户
选择该租户访问应用权限
3.4 应用部署检查
3.4.1 应用登陆访问检查
使用初始化租户登陆,页面正常显示且各服务组件正常
3.4.2 组件状态检查
检查中间件运行状态是否正常
3.4.3 应用运行状态检查
ps -ef | grep java
3.4.4 后端应用启动日志检查
开始启动标识:运行模式
启动成功标识:启动成功
3.4.5 服务环境标识检查
使用系统管理员账号登录 system-admin sy12345678登录基础设置-环境管理-环境配置 定义环境运行模式
--应用定制:代表此环境可以进行低代码应用定制、应用测试、发布到生产
--生产运行:代表此环境为正式使用环境,可以启用运行应用,产生正式数据,可以进行流程应用定制
3.5 前后端服务单点更新
3.5.1 前端更新
需致远实施根据《客户环境更新流程》通过流水线获取需要更新的前端静态资源包后更新至对应环境 例如:${nginx_home}/static
http://devops.seeyonv8.com/ci-service/publish/shell
3.5.2 后端更新
需致远实施根据《客户环境更新流程》通过流水线获取需要更新的后端jar 包后更新至对应环境 例如ctp-user-assemble.jar
http://devops.seeyonv8.com/ci-service/publish/shell
参照3.2.5.2 重启服务
3.5.3 数据库脚本更新
需致远实施通过《客户环境更新流程》获取需要更新的ddl后更新至对应环境
3.5.4 服务nacos配置更新
需致远实施通过《客户环境更新流程》获取需要更新的nacos配置后更新至对应环境
3.6 服务维护
3.6.1 服务启停
停止
启动
3.6.2 服务日志
查看容器标准输出日志
3.6.3 服务链路添加
容器java启动参数中添加skywalking-agent.jar等变量
例如:
5 - 系统备份和恢复
一、备份策略
关键备份点包括数据库、前端应用、Nacos配置文件,备份留存期为1周,备份频率为每天。
二、备份内容
1.结构化数据
类别 | 备注 |
---|---|
致远V8数据库数据 | 存储在MySQL数据库里的数据。 |
2.非结构化数据
类别 | 备注 |
---|---|
应用配置文件 | 存储在[V8产品目录]/base/conf下的数据 |
前端应用 | 前端多版本静态资源 |
后端应用 | 后端镜像、jar包、war包等资源 |
三、备份和恢复操作方法
1.数据库备份
评估数据量确保备份服务器磁盘资源充足,安装对应数据库客户端命令,例如安装mysql客户端执行 yum -y install mysql
编辑backup.sh 添加如下内容,执行该脚本实现手动备份mysql数据库数据
# vim backup.sh
#!/bin/sh
#0.0.0.0 替换为实际数据库地址
HOSTNAME="0.0.0.0"
#3306替换为实际数据库端口
PORT="3306"
#root替换为实际数据库用户名(读写权限)
username="root"
#root替换为实际数据库密码
password="root"
#备份时间戳
DATE=`date "+%Y%m%d%H%M%S"`
#备份目录(/data/dbback可以自定义)
DIR="/data/dbback/"
#要备份的数据库名称("ctp_user portal"替换为为要备份的数据库实际名称)
databasenames="ctp_user portal"
echo $databasenames
#执行备份
[ -d ${DIR} ] || mkdir -p ${DIR}/${DATE}
for databasename in $databasenames
do
mysqldump -h${HOSTNAME} -P${PORT} -u${username} -p${password} --set-gtid-purged=OFF $databasename > ${DIR}/${DATE}/${databasename}.sql
done
echo "$databasenames数据库备份完成"
添加计划任务实现定时备份mysql数据库数据,例如每天22点备份数据
# crontab -e
#每天22点备份数据
* 22 * */1 * /脚本路径/backup.sh
2.恢复数据库备份
编辑recover.sh 添加如下内容,执行该脚本实现mysql数据库恢复数据
# vim recover.sh
#!/bin/sh
#0.0.0.0 替换为实际数据库地址
HOSTNAME="0.0.0.0"
#3306替换为实际数据库端口
PORT="3306"
#root替换为实际数据库用户名(读写权限)
username="root"
#root替换为实际数据库密码
password="root"
#备份目录(替换为实际备份路径)
DIR="/data/dbback/20240226/"
#要恢复的数据库名称("ctp_user portal"替换为为要恢复的数据库实际名称)
tgdbs="ctp_user portal"
echo $databasenames
#执行备份
for databasename in $databasenames
do
echo $databasename
mysql -h${HOSTNAME} -P${PORT} -u${username} -p${password} -e "CREATE DATABASE IF NOT EXISTS $databasename default charset utf8mb4;"
mysql -h${HOSTNAME} -P${PORT} -u${username} -p${password} $tg_db < $DIR/${databasename}.sql
done
echo "$databasenames数据库恢复完成"
3.前端应用备份
根据前端静态资源部署模式分别使用shell命令或者客户端命令进行备份,非os服务器中需下载安装客户端命令,例如oss客户端命令程序
- 部署在阿里云oss中
ossutil64 cp -rf oss://实际部署桶名称/应用名称 oss://备份桶名称/应用名称
- 部署在华为云obs中
obsutil cp -r -f -flat obs://实际部署桶名称/应用名称 obs://备份桶名称/应用名称
- 部署在自建minio中
mc cp -r local/yljr-prd-public/应用名称/ /备份目录位置/应用名称/
- 部署在os服务器中
cp -rf /实际部署路径/应用名称/ /备份目录位置/应用名称/
4.恢复前端备份
根据前端静态资源部署模式分别使用shell命令或者客户端命令进行恢复,非os服务器中需下载安装客户端命令,例如oss客户端命令程序
- 部署在阿里云oss中
ossutil64 cp -rf oss://备份桶名称/应用名称 oss://实际部署桶名称/应用名称
- 部署在华为云obs中
obsutil cp -r -f -flat obs://备份桶名称/应用名称 obs://实际部署桶名称/应用名称
- 部署在自建minio中
mc cp -r /备份目录位置/应用名称/ /部署位置/应用名称/
- 部署在os服务器中
cp -rf /备份目录位置/应用名称/ /实际部署路径/应用名称/
5.后端应用备份
- k8s容器
设置 Deployment 保留的历史版本数量(默认保留10个版本):<number>为保留版本数量
kubectl rollout history deployment/<deployment-name> --revision-limit=<number>
- jar包war包模式
cp -rf /部署路径/应用名称.jar /备份路径/应用名称.备份版本.jar
cp -rf /部署路径/应用名称.war /备份路径/应用名称.备份版本.war
6.恢复后端备份
- k8s容器恢复
查看 Deployment 的历史版本:
kubectl -n <namespace-name> rollout history deployment/<deployment-name>
回滚到指定版本
kubectl rollout undo deployment/<deployment-name> --to-revision=<revision-number>
例如 回滚到第二个历史版本
kubectl rollout undo deployment/<deployment-name> --to-revision=<revision-number>
- jar包war包模式恢复
cp -rf /备份路径/应用名称.备份版本.jar /部署路径/应用名称.jar
cp -rf /备份路径/应用名称.备份版本.war /部署路径/应用名称.war
重启应用重新加载应用包,例如部署在tomcat中,重启tomcat重新加载应用war包
7.备份nacos配置文件
登陆nacos控制台,导出要备份的配置
备注1:nacos单个配置默认备份历史版本
备注2:使用nacos open api进行配置获取和恢复,参照https://nacos.io/zh-cn/docs/open-api.html
8.恢复nacos配置文件
登陆nacos控制台选择要恢复配置的命名空间导入要恢复的配置
备注:nacos单个配置可以根据历史版本进行恢复操作
6 - 监控工具部署
一 概述
本文主要记录下如何使用 Prometheus +Grafana 基于kubernetes容器搭建对各种服务的性能监控
prometheus 官网地址:https://prometheus.io/
Github 地址:https://github.com/prometheus/prometheus
Grafana 官网地址 https://grafana.com/
Grafana dashboards模板地址 https://grafana.com/grafana/dashboards/
架构图
监控组件部署
prometheus-server部署
部署说明:
- 监控数据持久化,建议修改部署文件中 - mountPath: /prometheus到nfs 等持久化存储
- 配置引用configMap,便于维护
- namespace命名空间自定义
- 配置修改参见官网地址:https://prometheus.io/
- 容器pod 节点node采用自动发现功能
- 请注意,Prometheus要求主机时间和浏览器时间一致,如不一致请同步: ntpdate time1.aliyun.com
部署文件:
对部分标红处修改实际需要值、配置持久化存储,使用kubectl apply -f xxx.yaml进行部署
自动发现配置说明
服务发现机制
prometheus默认是采用pull方式定时去目标拉取数据,每个被抓取目标向prometheus提供一个http接口,prometheus需要知道向哪个地址拉取数据,通过prometheus.yml中scrape_configs定义的job来实现目标的定义.这样就无法感知到新加入的变更信息.
通过daemonset实现在k8s环境中,当有新节点加入node-exporter和cadvisor的自动安装.
如果是传统方式,需要手动将新地址加入,并重启prometheus.
动态服务发现能够自动发现集群中的新端点,并加入配置中,通过服务发现,prometheus能够查询到需要监控的Target列表,然后轮询这个Target获取监控数据.
添加数据源的方法有很多种,常见的有静态配置和服务发现配置.
prometheus支持多种服务发现,常见的有:
kubernetes_sd_configs: kubernetes服务发现,让prometheus动态发现kubernetes中被监控的目标
static_configs: 静态服务发现,基于prometheus配置文件指定监控目标
dns_sd_configs: DNS服务发现监控目标
consul_sd_configs: Consul服务发现,基于consul服务动态发现监控目标
file_sd_configs: 基于指定的文件事先服务发现,prometheus定时读取文件如果发生变化则加载新目标
标签重写
prometheus的relabeling(标签重写)可以在抓取到目标实例之前把目标实例的元数据标签动态修改,动态添加或覆盖.
Prometheus在加载Target成功之后,在Taret实例中,都包含一些Metadata标签信息,默认标签有:
标签 | 含义 |
---|---|
_address_ | 以:格式显示targets的地址 |
_scheme_ | 采用的目标服务地址的Scheme形式,HTTP或者HTTPS |
_metrics_path_ | 采用的目标服务的访问路径 |
修改标签的时机:
relabel_configs: 在抓取数据之前,可以使用relabel_configs添加一些标签,也可以值采集特定目标或过滤目标
metric_relabel_configs: 在抓取数据之后,可以使用metric_relabel_configs做最后的重新标记和过滤
- label
source_labels: 源标签,没有经过relabel处理之前的名字
target_labels: 通过action处理之后的新标签名字
regex: 正则表达式,匹配源标签
replacement: 通过分组替换后标签(target_label)对应的值
-
action
标签 含义
replace 替换标签值,根据regex正则匹配到源标签的值,使用replacement来引用表达式匹配的分组
keep 满足regex正则条件的实例进行采集,把source_labels中没有匹配到regex正则内容的target实例丢弃,只采集匹配成功的实例
drop 满足regex正则匹配条件的不采集,把source_labels中匹配到regex正则内容的Target丢弃,只采集没有匹配到的实例
Hashmod 使用Hashmod计算source_labels的Hash值并进行对比,基于自定义的模数取模,以实现对目标进行分类,重新赋值等功能
labelmap 匹配regex所有标签名称,然后赋值匹配标签的值进行分组,通过replacement分组引用替代
labelkeep 匹配regex所有标签名称,其他不匹配的标签都将从标签集中删除
labeldrop 匹配regex所有标签名称,其他匹配的标签都将从标签集中删除
-
常见发现类型(如上配置)
-
node
-
service
-
endpoint
-
pod
注意:监控目标pod中需要配置prometheus注解
-
配置nacos采集应用指标埋点
修改nacos 中对应环境的配置列表,找到DataId 为public记录,编辑配置,设置 seeyon.system.metric 为true,重新部署应用生效。
grafana部署
使用kubectl apply -f xxx.yaml进行部署
alertmanager 部署
告警方式及规则
- 命名空间自定义
- 告警方式自定义
- 告警规则自定义 参照https://prometheus.io/docs/alerting/latest/configuration/
对部分标红处修改实际需要值,使用kubectl apply -f xxx.yaml进行部署
prometheus-pushgateway 部署
使用kubectl apply -f xxx.yaml进行部署
node-exporter部署
- node-exporter
可配置自动发现,也可以使用demonset方式
redis-exporter部署
对部分标红处修改实际需要值,使用kubectl apply -f xxx.yaml进行部署
kafka-exporter部署
对部分标红处修改实际需要值,使用kubectl apply -f xxx.yaml进行部署
mysql-exporter部署
对部分标红处修改实际需要值,使用kubectl apply -f xxx.yaml进行部署
grafana配置
准备配置文件
前往http://gitlab.seeyon.com/a9/devops/a9c_install.git下载最新配置文件,克隆a9c_install仓库,进入monitor/grafana-dashboards目录,该目录下的文件为grafana监控大盘配置文件。
登录grafana
默认用户名:admin 密码:admin
配置数据源
进入系统,点击配置->数据源->添加数据源。
数据源类型选择Prometheus,在URL中填入prometheus-server地址。
导入仪表盘
进入如下界面,导入第一步准备好的grafana大盘配置文件。
选择上一步配置的数据源。
查看V8应用监控
点击应用名称进入应用指标明细界面。