这两天我体验了《Serverless高可用架构》解决方案并进行部署,总体来说Serverless高可用架构跟传统架构对比还是很不错的, Serverless 架构可以实现零代码改造、极简易用、自适应弹性的全托管服务,自动伸缩实例并按使用量计费,同时提供开箱即用的日志、监控、负载均衡等配套能力。
用户访问应用时,DNS会将访问请求解析至应用负载均衡ALB的服务地址。负载均衡作为应用的统一入口,将请求转发至Serverless应用引擎实例上的服务。
在您的业务负载增长时,通过合理的配置,各个系统组件都可以自动弹性伸缩。ALB采用的固定IP模式最大可支持10万QPS,切换为动态IP模型最大可支持100万QPS。Serverless应用引擎支持秒级横向弹性伸缩。云数据库PolarDB MySQL版Serverless集群各节点可实现秒级纵向弹性以及横向只读节点扩展能力。
应用负载均衡ALB、Serverless应用引擎实例、云数据库PolarDB MySQL版Serverless集群都采用双可用区部署,当单可用区故障,可自动迁移使用另一可用区的服务。
下面我们一起看下部署流程吧:
技术架构包括以下基础设施和云服务:
1个专有网络VPC:为应用型负载均衡ALB、Serverless应用引擎、云数据库PolarDB MySQL版Serverless集群等云资源构建云上私有网络。
5台交换机:按照经典架构设计3个子网平面(公网平面、业务平面、数据平面),分别部署在两个可用区,提供基本的网络分段和隔离功能。ALB横跨两个可用区部署在公网平面,两个Serverless应用引擎实例分别部署在两个可用区的业务平面,一对云数据库PolarDB MySQL版Serverless主备集群分别部署在两个可用区的数据平面。
1个公网应用型负载均衡ALB:将公网访问流量分发到不同的Serverless应用引擎实例。公网ALB通过EIP提供公网服务能力。
2个Serverless应用引擎实例:用于部署业务系统,提供应用服务。
1个云数据库PolarDB MySQL版Serverless集群:为业务系统提供数据服务。
一.部署准备
耗时:10分钟
1.准备账号
如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。
2.为阿里云账号充值。本方案的云资源支持按量付费,且默认设置均采用按量付费引导操作。如果确定任何一个云资源采用按量付费方式部署,账户余额都必须大于等于100元。
二.部署资源:
1.创建专有网络VPC和交换机
1.1 为了实现高可用,您需要将服务负载和数据库等资源尽可能分布在多个可用区,规避单可用区故障造成的服务不可用。本方案以双可用区为例,因此,您需要创建1个专有网络和5个交换机。PolarDB MySQL版 Serverless集群仅需1.2 要1个交换机,系统自动选择备可用区。
1.3 登录专有网络管理控制台。
1.4 在左侧导航栏,单击专有网络。
1.5 在顶部菜单栏,选择华东1(杭州)地域。
1.6 在专有网络页面,单击创建专有网络。
1.7在创建专有网络页面,配置1个专有网络和5个交换机。配置交换机时,请确保交换机所属的可用区的ALB是可用状态。
2.创建安全组
2.1您已经在1个专有网络VPC下的2个可用区分别创建5台交换机。接下来您需要创建1个跨可用区的安全组,用于限制该专有网络VPC下的5台交换机的网络流入和流出。
2.2登录ECS管理控制台。
2.3在左侧导航栏,选择网络与安全>安全组。
2.4在顶部菜单栏,选择华东1(杭州)地域。
2.5在安全组页面,单击创建安全组。
2.6在创建安全组页面,创建1个安全组。
3.创建云数据库PolarDB MySQL版 Serverless集群
您已经创建了VPC和vSwitch。接下来您需要创建云数据库PolarDB MySQL版 Serverless集群、数据库、数据库账号。您需要记录创建的云数据库 PolarDB MySQL版 Serverless集群的内网连接地址、数据库名称、账号、密码用于之后的配置和使用。
1.创建集群
a前往PolarDB集群购买页面。
b选择计费类型为Serverless。
c地域选择华东一(杭州)
d创建方式选择创建主集群。
e数据库引擎选择MySQL 8.0.2。
f产品版本选择企业版或标准版。
g选择主可用区。选择刚刚创建的vsw_db_001所在的可用区。
h网络类型选择刚刚创建的VPC和vSwitch。
i选择是否开启热备集群。选择开启。
j如果开启存储热备集群,PolarDB会在当前地域内同时部署主集群(包含互备计算节点+主存储)和存储热备集群,主集群和存储热备集群各保证3副本数据(共6副本数据),具有更高的SLA可靠性保障。
k如果关闭存储热备集群,则仅保留主集群(3副本数据),存储单价是开启存储热备集群单价的1/2。集群的SLA也会降低。
l设置Serverless集群的资源扩缩范围。
m只读节点个数伸缩下限:设置允许只读节点增加的最小数量。取值范围:0~15。为了实现Serverless集群的高可用,建议将只读节点个数伸缩下限设置为1。
n只读节点个数伸缩上限:设置允许只读节点增加的最大数量。只读节点数量会根据业务压力自动增加或减少。取值范围:0~15。
o单节点伸缩下限:设置集群内单节点PCU数量的下限。Serverless形态的PolarDB集群采用PCU(约等于1核2 GB的资源)做秒级计费和扩缩单元,PCU会随着业务负载在指定区间内动态调整。取值范围:1 PCU~31 PCU。
p单节点伸缩上限:设置集群内单节点PCU数量的上限。Serverless形态的PolarDB集群采用PCU(约等于1核2 GB的资源)做秒级计费和扩缩单元,PCU会随着业务负载在指定区间内动态调整。取值范围:1 PCU~32 PCU。
q选择是否开启无活动暂停功能。该功能默认关闭。
r选择存储类型。
PolarDB企业版支持PSL5和PSL4两种存储类型。选择PSL5。
在页面右侧,同意协议,单击立即购买。
4.创建Serverless应用引擎实例
接下来您需要在2个可用区分别创建1个Serverless应用引擎实例,来实现服务跨可用区的高可用。
1登录SAE控制台。
2如果左上角显示体验SAE 2.0,请单击体验SAE 2.0,前往SAE 2.0。如果没有则表示当前是SAE 2.0,无需操作。
3.在左侧导航栏,单击应用管理 > Web应用,在顶部菜单栏选择地域,然后在应用列表页面,选中始终分配固定CPU页签,单击创建应用。
4.在创建应用页面,完成以下操作。
5.创建负载均衡ALB
接下来您需要创建1个公网类型的应用型负载均衡ALB并配置路由,从而实现这个专有网络VPC下的Serverless应用引擎实例对外的公网访问和流量分发。
1登录应用型负载均衡ALB控制台。
2创建应用型负载均衡ALB实例;
方案验证
一、检查业务可以正常访问
1登录ALB控制台,从实例列表中获取ALB实例的DNS名称。
2通过浏览器访问该DNS名称,检查可以正常访问到示例应用。
最后总结
1)在体验过程中是否得到足够的引导以及文档帮助?如果没有,还欠缺什么部分?
在体验《卓越效能,极简运维,Serverless高可用架构》解决方案的过程中,我得到了相对充分的引导与文档帮助。大多数关键步骤都有详细的教程和文档支持,特别是关于如何创建Serverless应用引擎实例、配置云数据库PolarDB MySQL版 Serverless集群等核心环节,文档内容详尽且易于理解。然而,对于一些高级配置选项或特定场景的定制化需求,文档可能略显不足。例如,如何在特定网络环境下优化Serverless应用的访问性能、如何根据业务负载动态调整资源配额等高级功能,如果能够提供更多案例分析和最佳实践,将会对用户更加友好。
2)部署过程中的创建云数据库PolarDB MySQL版 Serverless集群和Serverless应用引擎实例是否遇到过哪些报错或异常?
在部署过程中,我并未遇到显著的报错或异常。PolarDB MySQL版 Serverless集群的创建过程非常流畅,系统能够自动根据配置选择最合适的资源进行部署,无需手动干预。Serverless应用引擎实例的部署也同样顺利,通过简单的几步操作就能完成应用的部署和启动。不过,需要注意的是,如果在创建过程中填写的参数不符合要求(如网络配置错误、权限不足等),系统会及时给出错误提示,但部分提示信息可能对于初学者来说略显专业,如果能增加一些通俗易懂的解释或链接到相关帮助文档,将更有助于用户快速定位并解决问题。
3)您认为Serverless高可用架构方案在成本、功能、性能上是否有竞争力?在企业上云过程中,是否推荐团队使用Serverless架构?
Serverless高可用架构方案在成本、功能和性能上均展现出较强的竞争力。从成本角度看,Serverless架构的按需付费模式极大地降低了企业的IT成本,避免了资源的闲置浪费。在功能方面,Serverless架构提供了高度灵活和可扩展的服务,能够轻松应对业务高峰期的流量压力。性能方面,通过云服务商提供的底层优化和自动扩展机制,Serverless应用能够保持稳定的性能输出。因此,在企业上云过程中,我非常推荐团队使用Serverless架构,特别是对于初创企业、中小型企业以及需要快速迭代和响应市场变化的企业来说,Serverless架构能够显著提升开发效率和运维效率。
4)分享您在场景中使用到具体云产品的体验
在体验过程中,我使用了云数据库PolarDB MySQL版 Serverless集群和Serverless应用引擎两款产品。云数据库PolarDB MySQL版 Serverless集群给我留下了深刻的印象,其自动扩展、高可用性和易用性都远超传统数据库解决方案。通过简单的配置就能实现数据库的高可用部署,并且支持秒级扩展,极大地提升了数据库的性能和稳定性。Serverless应用引擎则提供了从代码到服务的全链条支持,简化了应用的部署和运维流程。产品操作配置非常便捷,通过可视化的控制台就能完成大部分操作。同时,产品手册详尽完备,对于初学者来说非常友好。总体而言,这两款产品都很好地满足了我在场景中的需求,为我提供了高效、稳定的云上服务体验。