专栏名称: 阿里开发者
阿里巴巴官方技术号,关于阿里的技术创新均将呈现于此
目录
相关文章推荐
海外独角兽  ·  LLM 竞赛 2025: 超越 Google 之路 ·  昨天  
白鲸出海  ·  第四款帕鲁like产品开测,IGG这次想搞一 ... ·  3 天前  
51好读  ›  专栏  ›  阿里开发者

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

阿里开发者  · 公众号  · 科技公司  · 2024-12-27 18:00

主要观点总结

本文介绍了基于Serverless架构的高可用方案,主要解决企业在数字化转型中面临的用户访问量增长、业务需求复杂和资源管理挑战等问题。通过Serverless架构的弹性伸缩、高可用、降低运维负担和成本等优势,实现系统的高灵活性、低成本和强稳定性。

关键观点总结

关键观点1: Serverless架构优势

计算资源高可用,自动进行弹性伸缩,根据实时需求动态调整资源;运维负担和成本降低,开发和运维团队无需管理底层服务器和基础设施;资源利用率高,规格粒度细,企业只需为实际使用的计算和存储资源付费。

关键观点2: 高可用架构方案

采用单地域双可用区部署,将业务系统、数据库部署在2个不同可用区,实现可用区级故障灾备能力,保证了业务的连续性。

关键观点3: 方案实施细节

使用专有网络VPC、交换机和跨可用区安全组等基础设施实现私有网络下的系统通信;通过DNS解析到应用负载均衡ALB的服务地址,实现流量分发;配置弹性伸缩策略,验证Serverless架构的弹性和高可用性。


正文

阿里妹导读


本文介绍了Serverless高可用架构方案,当企业面对日益增长的用户访问量和复杂的业务需求时如何实现更高的灵活性、更低的成本和更强的稳定性。

一、引言

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

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

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

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

Serverless 架构核心优势:

  • 弹性伸缩、高可用:计算资源高可用由 Serverless 服务 SLA 保障,自动进行弹性伸缩,根据实时需求动态调整资源,适应不同的工作负载。

  • 运维负担和成本降低:Serverless 服务维护资源,并且提供开箱即用的日志、监控、负载均衡等能力。开发和运维团队无需管理底层服务器和基础设施,降低了运维负担和成本。

  • 资源利用率高、规格粒度细:根据系统负载自动调整资源,资源利用率高。采用按量计费模型,最小计费时间为分钟级,资源规格粒度细。企业只需为实际使用的计算和存储资源付费。

点击文末“阅读原文”,了解更多详情。

二、总体架构

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

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

  • 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名称,检查是否可以正常访问到示例应用。

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

配置弹性伸缩
  1. 打开Serverless应用引擎SAE控制台[1],点击左侧导航栏选择应用管理 > 应用列表。点击当前应用名称,进入应用详情页。

  2. 弹性伸缩页签添加弹性策略,请按照图片进行配置。

  1. 添加完毕后,在弹性伸缩页签下的监控指标策略列表中点击启用。更多配置方式可参考配置弹性伸缩策略[2]。

进行负载测试
  1. 安装测试工具Apache Benchmark,Mac OS操作系统默认安装了该测试工具,其他操作系统安装教程请参见官方文档[3]。

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

ab -n 20000 -c 200 http:///

命令

说明

ab

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

-c

一次创建的请求个数。

-n

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

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

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

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

点击“阅读原文”,体验搭建Serverless高可用架构,更有精美礼品等您来拿!

参考链接:

[1]https://saenext.console.aliyun.com/overview

[2]https://help.aliyun.com/zh/sae/serverless-app-engine-classic/user-guide/configure-an-auto-scaling-policy

[3]https://httpd.apache.org/docs/2.4/install.html

[4]https://slb.console.aliyun.com/alb