这是解决方案评测的第四篇,也是开发者新版评测的第四篇。希望大家可以踊跃参加,把你最真实的体验感受和建议分享出来。可点击下方链接前往评测活动首页:
方案解读
作为解决方案评测的第四篇方案,整体上看依旧是熟悉的脉络。开篇点题简要阐述了Serverless高可用架构的必要性。作为企业业务部署上云的高可用低成本架构首选,云上的Serverless架构,支持服务托管、弹性伸缩和按量付费,减少企业手动资源管理和性能成本优化的工作,同时通过高可用的配置,避免可能遇到的单点故障风险。那究竟Serverless架构和传统架构之间有啥差异,方案这里用了一张对比图,其实我觉得这块应该用表格来展示会更好。
我总结Serverless架构的优点有如下几个方面:
- 运维成本低
Serverless架构将服务器管理的责任交给云服务提供商,减少了运维人员的工作量和成本。开发人员无需再关注底层服务器的配置、扩展、监控、安全、备份等任务,可以专注于业务逻辑的开发和优化。
- 弹性可伸缩
Serverless架构能够根据应用的实际负载自动进行弹性伸缩,确保应用始终具备足够的计算能力。这种自动伸缩的能力使得应对高峰期和突发流量变得更加容易,避免了传统架构中因手动扩展不及时而导致的性能瓶颈。
- 容错性更高
Serverless架构通常分布在多个地理位置和多个数据中心,提供了高可用性和容错能力。当某个节点出现故障时,其他节点可以自动接管请求,确保应用的稳定运行。
- 开发高效便捷
Serverless架构让开发人员能够更专注于业务逻辑的开发,无需关注底层的基础设施。通过使用云服务提供商提供的函数或服务,开发人员可以更快速地构建和部署应用,缩短了开发周期和迭代时间。此外,利用Serverless架构的简单运维、低成本及快速上线能力,开发者可以快速尝试业务的新形态、新功能,降低试错成本。
- 应用场景更广
Serverless架构非常适合处理异步任务,如图像处理、数据转换等。还可以用于构建Web和移动应用的后端服务,处理用户请求、数据存储和身份验证等功能。此外,还能够高效地处理大规模数据的计算和分析任务,可以根据实际需求自动扩展计算资源,提高数据处理的效率和吞吐量。
在阐述了Serverless架构优势后,方案开始介绍了本次体验的整体架构拓扑。如下:
针对上述架构,方案的解读如下:
1、用户访问应用时,DNS会将访问请求解析至应用负载均衡ALB的服务地址。负载均衡作为应用的统一入口,将请求转发至Serverless应用引擎实例上的服务。
2、在您的业务负载增长时,通过合理的配置,各个系统组件都可以自动弹性伸缩。ALB采用的固定IP模式最大可支持10万QPS,切换为动态IP模型最大可支持100万QPS。Serverless应用引擎支持秒级横向弹性伸缩。云数据库PolarDB MySQL版Serverless集群各节点可实现秒级纵向弹性以及横向只读节点扩展能力。
3、应用负载均衡ALB、Serverless应用引擎实例、云数据库PolarDB MySQL版Serverless集群都采用双可用区部署,当单可用区故障,可自动迁移使用另一可用区的服务。
综上,可以总结上述架构是一个基于云环境、使用Serverless架构和负载均衡技术的高可用Web应用及其数据库服务的系统架构。
紧接着方案中开始阐述Serverless架构的典型应用场景,其实除了方案中提到的场景外,Serverless架构还可以应用到如下业务:
- 在物联网(IoT)领域,设备会不断产生大量的数据,这些数据需要被实时处理和分析以支持业务决策。使用Serverless架构,你可以将数据处理逻辑编写为无服务器函数,当新数据到达时自动触发这些函数进行处理。例如,一个智能家居系统可以将温度、湿度等传感器数据发送到无服务器函数,函数随后对数据进行清洗、聚合和分析,并将结果存储在数据库中供后续查询。
- 在文档处理或图像识别领域,经常需要对用户上传的文件进行各种处理,如格式转换、压缩、识别文字等。使用Serverless架构,你可以创建一系列无服务器函数来处理这些任务。当用户上传文件时,可以触发一个函数来接收文件,并将其发送到另一个函数进行处理。处理完成后,结果可以返回给用户或存储在云存储中。这种方式不仅提高了处理效率,还减少了服务器的维护成本。
- 在机器学习领域,训练好的模型需要被部署到生产环境中以进行实时预测或推荐。使用Serverless架构,你可以将模型部署为无服务器函数,并根据需要调用这些函数进行预测。这种方式的好处是,你可以根据需要动态地扩展模型的数量和计算能力,以适应不同的流量需求。此外,Serverless架构还提供了自动管理和优化资源的能力,使得机器学习应用的运维更加简单和高效。
- 在微服务架构中,每个服务都可以被封装成一个独立的函数,并使用Serverless架构进行部署。这种方式使得服务的扩展和部署更加灵活,可以根据实际需求动态地调整每个服务的资源分配。同时,由于Serverless架构的自动扩展能力,当某个服务的请求量增加时,可以自动增加更多的函数实例来处理请求,确保服务的稳定性和可用性。
下面就是方案的实际部署了,提供了两种部署方式,一键部署和手动部署,这里推荐一键部署,可以大大免去基础环境的搭建步骤,提升部署效率。下面是一键部署和手动部署在步骤上有差异的地方。
从图上可以看出,手动部署需要将涉及的资源挨个进行配置和搭建,而一键部署通过ROS编排做到了将涉及的资源集中搭建,一键配置。
从上面的方案拓扑也可以看出,本次体验实际上涉及到产品和服务有Serverless应用引擎(SAE)、PolarDB MySQL Serverless、应用型负载均衡ALB。针对本次体验,如果你是新用户可以领取PolarDB MySQL Serverless的试用额度。
到这,这个方案的解读就结束了,虽然篇幅有限,但整体看下来还是可以的,方案该有的信息都有,就是方案的某个模块阐述不是很到位,需要根据实际需求做下优化,比如上述提到的架构优缺点应该用表格。此外,本次的解决方案评测也是近几期以来步骤最少,难度最低的一次了。
部署体验
一键部署
这里直接点击方案中的“一键部署”前往部署详情,接着在详情页中点击“一键部署”来到ROS控制台。如下:
选择地域,输入mysql密码,选择可用区。如下:
这里可以点击"预览模板资源",查看需要创建的所有资源信息。如下:
完成后,点击下一步。
这里可以看到所需的费用明细,需要先检查账户余额是否大于100元。确认无误,点击“创建”。如下
创建过程中,可以通过点击"事件"或"资源",查看当前进度。如下:
等待8分钟后,状态变成“创建成功”。如下:
在资源栈详情页面,单击输出页签,即可开始访问服务了。如下:
为了更直观清晰地了解其高可用架构,我们登录PolarDB控制台,这里可以看到集群的详情。如下:
通过“性能监控”,我们看到节点的所有监控数据,非常直观清晰。如下:
对于运维人员来说,数据库参数的配置非常麻烦,而在PolarDB MySQL Serverless中这将变得非常简单,如下:
开发维护人员可以可视化查找并修改配置参数,如果对于某个参数不熟悉,完全可以通过将鼠标悬停在问号处获得答案。而且针对主备节点的参数差异进行了可视化展示。如下:
对于所有修改过的参数,均记录在案,通过修改历史可查阅。如下:
除此,还提供了一键诊断功能,方便开发维护人员排查问题,通过实时性能可以非常直观了解到集群的动态。如下:
此外,还提供了慢SQL的综合分析和治理。如下:
释放资源
完成体验后,非常有必要将资源进行释放,以免产生不必要的费用扣除。通过一键部署的环境,同样可以通过一键进行释放。如下:
如果你是通过手动部署方式创建的,那释放就相对麻烦很多。按照部署方案提供的步骤释放即可。如下:
学习拓展
到这里,整个方案部署体验就完成了,是不是意犹未尽呢,下面提供了更多实验,点击可前往进行体验。
在ACK Serverless中部署Stable Diffusion应用
基于EMR Serverless StarRocks一键玩转世界杯
体验总结
1)整个体验流程还是非常通畅的,基本涵盖了所有步骤涉及的文案。方案简要介绍了整个架构的设计思路、部署步骤以及关键组件的配置方法,这对于初次接触Serverless架构的开发者来说非常友好。然而,在某些高级配置或特定场景下的最佳实践方面,文档略显不足。例如,关于如何根据业务负载动态调整Serverless资源的详细策略,以及如何在高并发场景下优化数据库性能等高级话题,文档可以提供更多的案例分析和最佳实践指导。
这里需要提的一点就是,这个控制台界面需要优化,滚动条都被侧边栏遮挡住了,虽然可以通过按钮进行缩减,但还是会遮挡。比如:
但也不是所有的控制台都存在这个问题,ECS的控制台就不会出现这个问题,且侧边栏可以隐藏。如下:
从上面对比可以看出,其实遮挡的主因在于侧边栏图标的大小,悬停的这种因为图标偏大,导致遮挡的。
2)一键部署中并没有遇到什么问题,但在手动部署中,由于步骤说明不详细,倒是出现了两个问题,如下:
- 云数据库PolarDB MySQL版 Serverless集群创建时,网络配置错误:由于网络设置不当,导致集群创建后无法从应用服务器访问。通过重新检查VPC(虚拟私有云)配置和安全组规则,确保网络互通后解决了问题。
- Serverless应用引擎实例部署失败:在部署初期,由于Docker镜像配置问题(如依赖项未正确打包),导致实例启动失败。通过重新构建并上传正确的Docker镜像后,成功部署了应用。
所以从上述两个问题来看,往后针对手动部署,部署手册还是需要尽可能的详细,尤其是容易出错的点一定要着重标明。
3)从成本、功能和性能三个维度来看,Serverless高可用架构方案展现出了较强的竞争力:
- 成本:Serverless架构通过按需付费的方式,有效降低了空闲资源的浪费,对于初创企业或项目初期来说,能够显著降低IT成本。
- 功能:该方案集成了云数据库、Serverless应用引擎等多个云产品,提供了完整的高可用解决方案,支持快速迭代和弹性扩展。
- 性能:Serverless架构通过自动管理底层资源,能够确保应用在高负载下依然稳定运行,同时减少了运维人员的工作量。
在企业上云过程中,我强烈推荐团队考虑使用Serverless架构,特别是对于需要快速响应市场变化、追求极致成本效益比的企业来说,Serverless架构无疑是一个理想的选择。
4)具体云产品的体验总结:
云数据库PolarDB MySQL版
- 强大的弹性计算能力:从上面的体验来看,PolarDB for MySQL Serverless支持快速的资源弹升速度,能在5秒探测窗口内完成弹升,最快1秒钟。同时,它具有强大的伸缩性,可以自动进行纵向扩展(0~32核)和横向扩展(0~8个节点),支持0~256核范围内的伸缩。这种强大的伸缩性还带来了稳定性的优势,PolarDB for MySQL Serverless能够在业务无感的情况下进行纵向扩缩容和横向扩展,确保系统的稳定性和可靠性。此外,PolarDB for MySQL Serverless的资源伸缩颗粒度非常细腻,支持最小0.5PCU颗粒度的资源伸缩,使得资源的分配更加精确。另一个值得一提的特点是PolarDB for MySQL Serverless的自动启停功能。当没有访问需求时,计算资源可以被缩减到0,从而节省成本。而当有访问需求时,资源可以在短短10秒内被唤醒,迅速响应用户需求。
- 全局数据强一致性:PolarDB for MySQL Serverless还具备全局数据的强一致性能力。无论多少个只读节点,数据都能保持强一致性,而且在保证性能不下降的情况下实现。这种一致性特性对于多节点应用尤为重要。
应用场景广泛:既可以针对需要进行大量数据处理的大数据分析场景,也可以应用在微服务架构中,使得每个服务都可能有独立的数据库需求,帮助企业节省运维成本。
操作配置:通过控制台或API进行配置和管理,操作便捷。但部分高级配置选项可能需要一定的学习成本。
- 产品手册:官方文档详尽完备,涵盖了从基础操作到高级配置的各个方面,对新手友好。
综上,PolarDB MySQL版Serverless是一款具有高度灵活性和扩展性的数据库产品,它结合了云原生数据库的优势和Serverless计算的灵活性,为企业提供了一种全新的数据库解决方案。
其实去年开发者评测活动中是有针对PolarDB for MySQL Serverless出过一次测评的,我有幸参加了,感兴趣的朋友们可以点击下属链接前往了解更多。PolarDB MySQL 版 Serverless评测
Serverless应用引擎
通过上述体验,可以很轻易得出结论,SAE的产品功能在大多数情况下能够满足用户需求,同样的,SAE在性能上表现良好,能够满足大多数应用的需求。主要体现在如下几个方面:
- 全托管、免运维:SAE作为全托管的Serverless平台,用户无需管理服务器等基础设施,只需关注业务逻辑的开发与优化。这一特性大大减轻了开发者的运维负担。
- 丰富的企业级特性:SAE提供了诸如命名空间隔离、细粒度的权限控制等企业级特性,确保了应用的安全性和稳定性。
- 灵活的负载类型:如SAE Job,支持任务场景,如定时任务、数据批处理、异步执行、离线计算等,具备单机、广播、并行计算、分片运行的特性,并支持失败自动重试、监控报警等。
- 自动弹性伸缩:SAE能够根据用户的流量自动扩展或收缩资源,确保应用在高峰期和低谷期都能保持稳定的性能。
SAE的产品操作配置相对便捷,但仍有改进空间。用户可以通过SAE控制台快速创建应用,并配置相关参数,如应用名称、应用描述、源码仓库等。SAE支持从源码仓库持续部署应用,简化了部署流程,提高了开发效率。但在操作过程中,如源代码库的选择和授权方面,可以进一步优化界面设计,简化操作流程,提高用户体验。
SAE的产品手册较为详尽完备,但仍有待完善。SAE的产品手册通常包含了详细的操作步骤和示例,可以帮助用户快速上手。但随着产品的不断升级和迭代,产品手册也需要及时更新和完善,以反映最新的功能和特性。同时,可以增加更多的实战案例和最佳实践,帮助用户更好地理解和应用SAE。
同样的,去年开发者评测活动中也有针对Serverless应用引擎(SAE)出过一次测评,我也有幸参加了,感兴趣的朋友们可以点击下属链接前往了解更多。Serverless应用引擎SAE评测