历史版本113 :工程部署方案选择 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

概述编辑

本文将介绍单机和集群工程部署的基本流程,方便大家直观感受部署具体包含哪些操作。

本文面向正式工程,因此提供了配置外接数据库、安全加固等后续操作。此类后续操作均为正式工程的建议操作,不强制要求。

本文仅介绍Linux系统&Tomcat中间件下的部署方案,其他不赘述。

注:推荐用户使用Linux系统服务器部署正式工程,原因请参见:Linux和Windows对比分析

第一步:确定部署工程节点数编辑

帆软应用支持单机和集群部署,集群则为多个工程节点。

请按照工程预计并发数,确定部署单机还是集群,确定部署多少个工程节点,具体如下表所示:

注:用户维度说明:

  • 注册用户数:系统注册了的用户。

  • 在线用户数:用户同时在一定时间段的在线数量(一般注册人数的 5% - 20% 之间)。

  • 并发用户数:同时向服务器发送请求的用户数(一般是在线人数的 10% - 25% 左右)。

注册用户数在线用户数并发用户数

推荐配置

70% 场景的平均响应时间低于 3s

最低配置

70% 场景的平均响应时间低于 5s

 2000-5000 400-10000-200单机,节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:16GB

物理内存:32G

单机,节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:8GB

物理内存:16G

 4000-10000800-1500200-300

单机,节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:16GB

物理内存:32G

单机,节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:8GB

物理内存:16G

 6000-120001200-2500300-500单机

CPU:8 核 16 线程 2.4GHZ

JVM 内存:24GB

物理内存:48G

单机,节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:16GB

物理内存:32G

8000-200001600-4000500-800

2节点集群,每个节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:24GB

物理内存:48G

2节点集群,每个节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:16GB

物理内存:32G

10000-250002000-5000800-1000

3节点集群,每个节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:32GB

物理内存:64G

2节点集群,每个节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:24GB

物理内存:48G

12000-300002400-60001000-1200

3节点集群,每个节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:32GB

物理内存:64G

3节点集群,每个节点满足:

CPU:8 核 16 线程 2.4GHZ

JVM 内存:24GB

物理内存:48G

第二步:选择工程部署方式编辑

请根据各种部署方式的优缺点,选择适合自己的部署方式。

  • 单机部署提供三种部署方式:容器化部署、部署包部署、独立部署

  • 集群部署提供三种部署方式:容器化部署标准集群、手动部署标准集群、手动部署高可用集群

工程类型部署方式
说明
单机容器化部署

优点:

部署成本低:一键部署,自带JDK、Tomcat、FineReport工程和外接数据库

启动成本低:部署成功后默认添加好启动参数,无需手动配置

异常影响小:工程环境容器化,每个工程的环境相互隔离,出现异常时影响范围小

运维成本低:运维平台自动接入工程,对工程进行自动监控预警,运维成本低

部署包部署

优点:

部署成本低:一键部署,自带JDK、Tomcat、FineReport工程


限制项:

只支持Tomcat部署,只支持x86和arm架构

部署完需要手动配置参数,以保证系统稳定运行

无法及时对系统运行情况进行监控告警

独立部署

优点:

不限制中间件,不限制服务器架构


限制项:

需提前部署准备JDK环境和Tomcat中间件

需提前准备好FineReport工程包

部署完需要手动配置参数,以保证系统稳定运行

无法及时对系统运行情况进行监控告警

集群容器化部署集群(标准/高可用)

优点:

部署成本低:一键部署,包括FineReport工程节点+负载均衡+状态服务器+文件服务器+外接数据库(用户如需容器化部署高可用集群,可自行准备高可用组件

启动成本低:部署成功后默认添加好启动参数,无需手动配置

异常影响小:工程环境容器化,每个工程的环境相互隔离,出现异常时影响范围小

运维成本低:运维平台自动接入工程,支持对服务器、FineReport应用、组件服务等进行监控告警

手动部署标准集群

优点:

相比于单机工程,集群中多个工程相互通信共享数据和任务,可以提供更好的可扩展性和更高的性能,可以提高系统的负载能力和可用性,并确保系统的稳定性和一致性

限制项:

工程节点+负载均衡+状态服务器+文件服务器+配置库都需手动部署、修改配置和串并起来

部署完需要手动配置参数,以保证系统稳定运行

无法及时对系统运行情况、服务器、组件服务器进行监控告警

手动部署高可用集群优点:

相比于标准集群,集群更加高可用,确保工程运维稳定

限制项:

需要进行复杂的配置,需要一定的技术水平和经验,需要更多的硬件或虚拟资源

工程节点+负载均衡+状态服务器+文件服务器+配置库都需手动部署、修改配置和串并起来

部署完需要手动配置参数,以保证系统稳定运行

无法及时对系统运行情况、服务器、组件服务器进行监控告警

第三步:查看具体部署方案编辑

单机方案一:容器化部署


操作步骤
说明
1准备服务器环境

准备FineReport工程、外接数据库的服务器环境

推荐环境:工程部署推荐环境

2容器化部署

1)下载、上传、解压容器化部署工具

2)修改finekey.yaml配置文件

3)语句启动部署流程

4)部署成功后工程自动启动,管理员即可访问工程

参考文档:容器化部署新FineReport单机项目

3后续操作1)容器化部署时,会自动安装FineReport工程和外接数据库,工程会自动接入外接数据库,因此无需配置外接数据库

2)建议参考文档提高产品安全性:产品安全加固指导手册

3)建议参考文档提高运维稳定性:运维监控指导手册

单机方案二:部署包部署


操作步骤
说明
1准备服务器环境

准备FineReport工程的服务器环境

准备并部署好外接数据库

推荐环境:工程部署推荐环境

支持环境:单机工程部署支持环境

2部署包部署

1)下载、上传、解压服务器部署包

2)语句启动FineReport工程

3)启动成功后,管理员即可访问工程

参考文档:Linux 下 Tomcat 服务器部署包

3后续操作1)建议为正式工程配置外接数据库:配置外接数据库

2)建议参考文档提高产品安全性:产品安全加固指导手册

3)建议参考文档提高运维稳定性:运维监控指导手册

单机方案三:独立部署


操作步骤
说明
1准备服务器环境

准备FineReport工程的服务器环境

准备并部署好Tomcat、JDK

准备并部署好外接数据库

推荐环境:工程部署推荐环境

支持环境:单机工程部署支持环境

2独立部署

1)上传webroot工程文件

2)上传tools.jar文件

3)语句启动FineReport工程

4)启动成功后,管理员即可访问工程

参考文档:Linux 下 Tomcat 服务器独立部署

3后续操作1)建议为正式工程配置外接数据库:配置外接数据库

2)建议参考文档提高产品安全性:产品安全加固指导手册

3)建议参考文档提高运维稳定性:运维监控指导手册

集群方案一:容器化部署标准集群


操作步骤
说明
1准备服务器环境

准备工程节点+负载均衡+状态服务器+文件服务器+配置库部署环境

推荐环境:工程部署推荐环境

支持环境:集群工程部署支持环境

2容器化部署

1)下载、上传、解压容器化部署工具

2)修改finekey.yaml配置文件

3)语句启动部署流程,会自动部署:

  • FineReport工程节点

  • MySQL外接数据库

  • Nginx负载均衡

  • Redis单机状态服务器

  • MinIO文件服务器

4)部署成功后,集群工程自动启动,管理员即可访问工程

参考文档:容器化部署新FineReport集群项目

3后续操作

1)容器化部署时,会自动部署工程节点和集群组件

工程会自动接入外接数据库,因此无需配置外接数据库

工程会自动接入负载均衡+状态服务器+文件服务器,因此无需开启配置集群

2)建议参考文档提高产品安全性:产品安全加固指导手册

3)建议参考文档提高运维稳定性:运维监控指导手册

集群方案二:手动部署标准集群


操作步骤
说明
1准备服务器环境

准备工程节点+负载均衡+状态服务器+文件服务器+配置库部署环境

推荐环境:工程部署推荐环境

支持环境:集群工程部署支持环境

2部署外接数据库

部署数据库,作为工程的外接数据库备用

支持的数据库类型请参考:配置外接数据库

3部署负载均衡

部署负载均衡,推荐Nginx

详情请参见:Linux 系统安装配置 Nginx

4部署状态服务器

部署状态服务器,推荐使用Redis单机

  • Redis单机:通用、部署简单,无法高可用

  • Redis集群:高可用,至少3台,建议准备6台服务器

  • Redis哨兵:较好的高可用性,不能实现水平扩展,不支持高并发

  • 腾讯云 Redis:方便、有保障,云厂商选购,单机集群都有,需安装插件

5部署文件服务器

部署文件服务器,优先推荐SFTP

推荐级别:SFTP≈MinIO>NFS>FTP≈HDFS

  • SFTP:通用简单,安全性优于FTP;性能、稳定性不够好

  • FTP:通用简单;安全性、稳定性、性能不够好,非必要不建议使用

  • HDFS:稳定性比较好;部署麻烦,需安装插件

  • 共享外部目录(NFS):类SFTP;需自行部署NFS客户端和服务端,无法高可用,需安装插件

  • MinIO:类S3,稳定性比较好; 需自行部署MinIO,单机无法高可用,需安装插件

  • S3:云存储,高可用方案,只支持部分S3,备份还原类场景可能存在卡顿

6部署工程节点

部署一个工程节点

部署方法请参考单机部署的「部署包部署」或「独立部署」

7配置开启集群

1)单节点集群配置:

为该配置外接数据库:配置外接数据库

将主节点与状态服务器+文件服务器相连接

设置缓存模式和通信协议

启动集群,重启工程

2)多节点集群配置:

部署其他工程节点

将第一个节点的webroot工程文件拷贝到其他工程节点

启动其他工程节点

详情请参见:Linux系统手动配置标准集群

8配置负载均衡

1)参考文档修改nginx.conf文件:Linux系统安装配置Nginx

2)重启Nginx组件。

9后续操作

1)参考文档提高产品安全性:产品安全加固指导手册

2)参考文档提高运维稳定性:运维监控指导手册

3)建议为集群配置系统可用性监测工具:系统可用性监测工具

集群方案三:手动部署高可用集群


操作步骤
说明
1准备服务器环境

准备工程节点+负载均衡+状态服务器+文件服务器+配置库部署环境

推荐环境:工程部署推荐环境

支持环境:集群工程部署支持环境

2部署外接数据库

部署数据库,作为工程的外接数据库备用,优先推荐高可用主备模式数据库

支持的数据库类型请参考:配置外接数据库

3部署负载均衡

部署负载均衡,推荐Keepalived+Nginx

详情请参见:Keepalived+Nginx

4部署状态服务器

部署状态服务器,推荐使用Redis集群

  • Redis集群:高可用,至少3台,建议准备6台服务器

  • Redis单机:通用、部署简单,无法高可用

  • Redis哨兵:较好的高可用性,不能实现水平扩展,不支持高并发

  • 腾讯云 Redis:方便、有保障,云厂商选购,单机集群都有,需安装插件

5部署文件服务器

部署文件服务器,优先推荐NFS

推荐级别:SFTP≈MinIO>NFS>FTP≈HDFS

  • 共享外部目录(NFS):类SFTP;需自行部署NFS客户端和服务端,无法高可用,需安装插件

  • SFTP:通用简单,安全性优于FTP;性能、稳定性不够好

  • FTP:通用简单;安全性、稳定性、性能不够好,非必要不建议使用

  • HDFS:稳定性比较好;部署麻烦,需安装插件

  • MinIO:类S3,稳定性比较好; 需自行部署MinIO,单机无法高可用,需安装插件

  • S3:云存储,高可用方案,只支持部分S3,备份还原类场景可能存在卡顿

6部署工程节点

部署一个工程节点

部署方法请参考单机部署的「部署包部署」或「独立部署」

部署后先不启动这些工程节点

7配置开启集群

1)单节点集群配置:

为该配置外接数据库:配置外接数据库

将主节点与状态服务器+文件服务器相连接

设置缓存模式和通信协议

启动集群,重启工程

2)多节点集群配置:

部署其他工程节点

将第一个节点的webroot工程文件拷贝到其他工程节点

启动其他工程节点

详情请参见:Linux系统手动配置高可用集群

8配置负载均衡

1)参考文档修改nginx.conf文件:Linux系统安装配置Nginx

2)重启Nginx组件。

9后续操作1)参考文档提高产品安全性:产品安全加固指导手册

2)参考文档提高运维稳定性:运维监控指导手册

3)建议为集群配置系统可用性监测工具:系统可用性监测工具

其他部署方式扩展阅读编辑