本文介绍基于火山引擎容器服务构建的大规模并发业务系统云上架构解决方案。
方案介绍
面向海量用户的业务系统大都需要基于大规模并发的架构进行部署,以应对业务访问的快速提升,有效保障业务可用性,降低系统开销,提升业务效率,节省成本。
典型业务场景包括:
这些业务在特定时期内访问量会急剧增长,需要架构能够支持在一段时间内的业务扩张需求,而无需进行整体系统的改造和优化。
根据上述需求,大规模并发业务系统云上架构推荐如下:
- 使用 CDN 进行静态内容转发,有效降低公网出口压力并提升系统健壮性。
- 使用负载均衡进行访问请求分发,降低单点热度,提升系统整体资源利用率,并适配容器服务弹性伸缩能力,支持快速扩容以满足业务持续增加的访问压力。
- 使用容器服务部署核心应用模块,实现快速地构建和升级,联合流水线等服务能力构建系统 DevOps 能力,提升业务交付效率。
- 使用火山引擎镜像仓库 CR 服务有效支撑镜像需求。
- 使用 Redis 加速热点数据访问,提升系统访问支撑能力。
- 使用云数据库,提供多副本、高性能、高可靠的数据库服务。
- 使用对象存储进行低成本静态数据存储。
- 使用云堡垒机、应用观测、服务网格、访问控制、云监控、日志服务等构建云上运维管理平台,支撑系统运维需求。
方案优势
- 海量云上资源满足业务快速增长的访问需求。
- 云服务高可用性设计,有效提升系统稳定性和可用性。
- 专业化运维服务和后台支撑团队,降低运维管理技术门槛和复杂度。
- 完善的安全设施和管理体系,保障业务和数据安全。
前提条件
操作步骤
步骤一:上传业务容器镜像至镜像仓库 CR
- 设置访问密码。在使用镜像仓库前需要设置仓库访问密码,此处设置的访问密码即 docker login 的密码。
- 登录 镜像仓库控制台。
- 在 实例列表 页面,单击镜像仓库体验版实例名称 cr-basic,进入镜像仓库体验版 概览 页面。
- 单击 设置仓库实例密码,在弹窗中输入密码和确认密码后,单击 确定,完成密码的设置。
- 创建命名空间。
- 选择左侧导航栏的 命名空间,进入 命名空间 页面。
- 单击创建命名空间,在弹出的 创建命名空间 弹窗中,完成信息填写,单击 确定,完成命名空间的创建。
- 创建 OCI 制品仓库。
- 选择左侧导航栏的 OCI 制品仓库,进入 OCI制品仓库 页面。
- 单击 创建 OCI 制品仓库,在弹窗中填写参数信息,单击 确定,完成 OCI 制品仓库的创建。
- 推送拉取镜像。
- 执行以下命令登录仓库实例。
docker login --username=<火山引擎账号用户名>@<UserID> cr-cn-<仓库实例所在地域>.volces.com
##示例:
##docker login --username=v**@100**** cr-cn-beijing.volces.com
- 执行以下命令标记本地镜像。
docker tag [ImageId或镜像名称] cr-cn-<仓库实例所在地域>.volces.com/<命名空间名称>/<镜像名称>:[镜像版本号]
##示例
##docker tag mysql cr-cn-beijing.volces.com/space/mysql:latest
- 执行以下命令推送镜像至仓库实例。
docker push cr-cn-<仓库实例所在地域>.volces.com/<命名空间名称>/<镜像名称>:[镜像版本号]
##示例
##docker push cr-cn-beijing.volces.com/space/mysql:latest
镜像传输完成后,镜像仓库可查询到指定的容器镜像,用户可用该镜像在容器服务创建应用负载。
步骤二:静态内容上传至对象存储 TOS
- 开通对象存储(TOS)服务。登录 对象存储控制台,在弹出的对话框中,勾选 我已阅读并同意《存储产品和服务条款》,然后单击 立即开通,即可开通 TOS 服务。
- 创建存储桶。
- 登录 对象存储控制台。
- 通过以下两种方式创建存储桶:
- 在对象存储控制台概览页,单击页面右侧的 创建桶 。
- 在左侧导航栏单击 桶列表 ,在 桶列表 页面左上方单击 创建桶 。
- 设置存储桶参数,单击 确定 。
- 上传文件。
- 登录 对象存储控制台。
- 单击左侧导航栏的 桶列表 ,在 桶列表 页面单击目标桶名称。
- 在 文件列表 页面单击 上传文件 ,在 上传文件 页面,设置文件参数。
- 确定上传文件后,单击 上传 ,即可开始上传文件。单击 上传 后,页面自动跳转至 任务进度管理 面板。也可以单击控制台右上方的 任务中心 ,查看任务进度及状态。
步骤三:创建数据库
按照业务需要创建数据库,例如 MySQL 或 Redis。
- 创建实例:开启使用云数据库 MySQL 版的第一步,确定实例版本、实例规格等。实例创建方法,请参见 创建实例。
- 创建数据库和账号:根据业务需要创建相关的数据库和账号,并配置账号权限,详情请参见 创建数据库和账号。
- 设置 IP 白名单:进入白名单的设备才能访问该实例,详情请参见 添加IP白名单分组。
- 连接实例:支持使用多种方式连接实例。您可使用客户端连接实例,也可使用命令行方式连接实例。具体的连接方法,请参见 连接数据库。
步骤四:创建负载均衡并关联公网 IP
- 创建负载均衡实例:根据实际业务场景和业务量大小创建负载均衡实例。
- 登录 负载均衡控制台。
- 在顶部导航栏,选择目标实例的地域。
- 单击 创建负载均衡 按钮,进入负载均衡创建页。
- 点击 确认订单 按钮,确认配置信息。
- 确认无误后,勾选 我已阅读并同意《负载均衡服务条款》 。
- 根据计费类型选择相应步骤完成CLB实例创建。
- 单击 去控制台 按钮,跳转到实例列表页查看新创建的实例。
- 创建后端服务器组:创建后端服务器组,并添加提供实际服务的后端服务器。
- 创建后端服务器组。
- 登录 负载均衡控制台。
- 在顶部导航栏,选择目标实例的地域。
- 单击目标实例名称进入实例详情页,选择 后端服务器组 页签。
- 单击 创建后端服务器组 按钮。
- 配置后端服务器组的名称,本例配置为 group-1 。
- 单击 确定 按钮,完成操作。
- 添加后端服务器。
- 单击已创建的后端服务器组的名称,进入详情页面。
- 单击 添加服务器 按钮。
- 选择基础模式(即不开启 高级模式 开关),勾选已创建的云服务器实例。
- 单击 下一步 按钮。
- 为已添加的云服务器实例配置端口和权重。 本例中,端口配置为80,权重配置为100。
- 单击 确定 按钮,完成操作。
- 创建监听器:为实例添加监听器,并关联后端服务器组。
- 在 CLB 实例列表页面,单击实例名称 clb-1 右侧的 配置监听器 ,进入该实例的监听器详情页。
- 单击 添加监听器 按钮,进入监听器创建页。
- 配置 协议&监听 相关参数。
- 单击 下一步,配置 后端服务器组 。 选择已创建的后端服务器组 group-1 。
- 单击 下一步,配置 健康检查 。
- 单击 下一步,在 配置审核 页面,审查配置项是否有误。
- 如配置有误,可以单击 上一步 返回修改。
- 如果确认无误,单击 确定 按钮,完成操作。
步骤五:创建容器集群,并部署业务相关工作负载
- 创建集群。详细操作说明参见 创建集群。
- 部署应用。详细操作说明参见 创建无状态负载。
- 访问应用。
- 在 无状态负载 页面,单击已创建的无状态负载名称。
- 在 无状态负载详情页,单击 访问方式页签。
- 在 访问方式 > 服务 页签下,单击 创建服务。
- 在 创建服务 页面,配置服务信息。完成配置后单击页面右下角 确定。
- 在 无状态负载详情页 的 访问方式 > 服务 页签,复制 外部端点 的地址。
- 在浏览器中输入 外部端点 地址,正常访问表示应用顺利部署完成。
- 监控应用。
完成应用部署后,可以通过云监控产品了解应用的运行状态,包括 CPU 用量、内存用量等,协助后续的运维工作。容器服务各类监控指标说明参见 云产品监控指标。在 无状态负载详情页 ,单击右上角的图标,然后单击 查看监控,查看应用的运行状态。
步骤六:开发业务逻辑
根据您的业务系统规划,自行在数据库中完成业务逻辑开发。
步骤七:对接 CDN(可选)
- 开通 CDN 服务。详细操作说明参见 开通服务。
- 创建加速域。详细操作说明参见 创建加速域名。
- 配置缓存规则。详细操作说明参见 配置缓存规则。
- 配置流量接入。不同的域名服务商的配置界面不同,主流域名解析服务商的配置方法参见 配置流量接入。
操作结果
完成以上操作后,即可基于火山引擎容器服务搭建一套应对大规模并发业务场景的系统。