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

本文涉及的产品
函数计算FC,每月15万CU 3个月
全局流量管理 GTM,标准版 1个月
Serverless 应用引擎免费试用套餐包,4320000 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://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






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



相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2天前
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
26 10
|
24天前
|
弹性计算 运维 Serverless
卓越效能,极简运维,体验Serverless高可用架构,完成任务可领取转轮日历!
卓越效能,极简运维,体验Serverless高可用架构,完成任务可领取转轮日历!
|
18天前
|
弹性计算 Cloud Native Serverless
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品。
|
3月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
70 4
|
1天前
|
人工智能 运维 监控
AI辅助的运维流程自动化:实现智能化管理的新篇章
AI辅助的运维流程自动化:实现智能化管理的新篇章
36 22
|
2月前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
|
2月前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
96 1
|
2月前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
2月前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
64 4
|
3月前
|
存储 运维 监控
高效运维:从基础架构到自动化管理的全面指南
【10月更文挑战第11天】 本文将深入探讨如何通过优化基础架构和引入自动化管理来提升企业IT运维效率。我们将从服务器的选择与配置、存储解决方案的评估,到网络的设计与监控,逐一解析每个环节的关键技术点。同时,重点讨论自动化工具在现代运维中的应用,包括配置管理、持续集成与部署(CI/CD)、自动化测试及故障排除等方面。通过实际案例分析,展示这些技术如何协同工作,实现高效的运维管理。无论是IT初学者还是经验丰富的专业人员,都能从中获得有价值的见解和实操经验。
110 1