部署模式
本节主要介绍部署 FinClip小程序数字化管理系统 私有化部署的几种部署模式。
简介
在业务系统运行之前,我们需要针对业务架构进行规划。我们希望小程序平台在满足业务用户访问的同时,尽可能节省服务器和网络资源,同时,对于业务生产环境,我们还会通过架构优化调整,以提升系统的可用性、扩展性和可维护性。
单节点
在产品功能验证(POC)和测试环节,我们通常希望快速体验小程序平台功能,在这种情况下,简便快速的部署是最合理的交付方式,FinClip小程序数字化管理系统支持单节点部署模式,顾名思义,单节点部署模式就是将所有后台服务运行在一台服务器中,单节点的部署架构适合做测试环境,由于小程序平台采用高性能的编程语言构建,单节点部署也能支撑一定量的用户访问,因此,这种部署模式也适用于对容灾没有要求,或整体业务规模较小的客户使用。
在单节点部署模式中,所有服务将部署在一台服务器中:
资源配置:
配置 | CPU | 内存 | 储存空间 | 部署服务 | TPS |
---|---|---|---|---|---|
最低配置 | 4 核 | 8 GB | 100 GB | 数据库、缓存和FinClip微服务 | 5k |
推荐配置 | 8 核 | 16 GB | 200 GB | 数据库、缓存和FinClip微服务 | 8k |
系统:
- 芯片架构: X86
- 操作系统: CentOS 7.9 或 Ubuntu 22.04 、 KylinOS V10 等
集群部署
FinClip 所有组件支持集群模式部署。对于业务生产环境, 我们建议采用集群模式部署。集群模式部署能够提供一定程度的、软件层面的故障转移能力。集群模式部署在提供更高的业务访问能力的同时,还能支持动态扩展,当业务系统访问量增高时,我们可以增加计算资源来扩大业务系统规模。另一方面,采用集群模式部署的的FinClip也能提供更好的运维可维护性。
架构概述
FinClip 后端服务采用 Golang 语言编写,系统架构采用微服务架构,每个服务经过编译之后会被打包成容器,我 们采用业界主流的容器管理平台进行服务编排, 因此,我们大部分运维能力,包括服务的故障转移、动态扩容、资源管理等能力都是依赖于容器平台实现。此外,FinClip 还依赖部分成熟的开源组件作为基础设施,以实现 业务系统中的数据存储、缓存等.
以下是架构图:
小规模集群
小规模集群的部署架构提供最小规模的高可用,需要使用四台服务器,其中四台服务器只能宕机一台,适合绝大部分的、对高可用与故障隔离具有较小要求的客户。
小规模集群将采用 Kubernetes 的方式部署,所需的配置可以参考下表▼:
用途 | CPU | 内存 | 储存空间 | 数量 | 参考 TPS |
---|---|---|---|---|---|
业务服务 | 8 核 | 16 GB | 500 GB | 4 台 | 3w |
运维管理(可选) | 8 核 | 16 GB | 500 GB | 1 台 | - |
角色分配可以参考下图▼:
系统:
- 芯片架构: X86
- 操作系统: CentOS 7.9 或 Ubuntu 22.04 、 KylinOS V10 等
部署说明: 所有服务将均匀部署在四台服务器中, 数据库和缓存系统使用docker compose部署在主机,业务服务使用Kubernetes进行部署,均匀分布在四台服务器。
中大规模集群
集群模式部署能够提供一定程度的、软件层面的故障转移能力。大规模集群的部署架构适合对可扩展性、灾备等指标有要求的客户使用。该架构的集群设计上主要关注在于故障隔离、故障恢复、可拓展性等方面。
大规模集群的服务器数量没有上限,支持多活、多机房部署,可根据业务规模、灾备要求自定义。相比小规模集群,大规模集群可以提供更高的QPS,更好的性能以及更好的扩展性。
大规模集群将采用 Kubernetes 的方式部署,所需的配置可以参考下表(磁盘建议使用SSD)▼:
用途 | CPU | 内存 | 储存空间 | 数量 | 参考 TPS |
---|---|---|---|---|---|
业务服务 | 8 核 | 16 GB | 500 GB | 8 台 | 6w |
运维管理 | 8 核 | 16 GB | 500 GB | 1 台 | - |
角色分配可以参考下图▼:
系统:
- 芯片架构: X86
- 操作系统: CentOS 7.9 或 Ubuntu 22.04 、 KylinOS V10 等
部署说明: 与小规模部署类似,不过,大规模集群部署采用更多的服务器,业务服务与基础服务分离, 微服务采用更多的实例数部署,以承担更高的用户访问。