利用无服务器功能的云计算成新趋势?无服务器功能的隐藏挑战 ...

打印 上一主题 下一主题

主题 962|帖子 962|积分 2886

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
无服务器函数非常恰当小任务

利用无服务器功能的云计算已广受欢迎。它们对实现新功能的吸引力源于无服务器计算的简朴性。您可以利用无服务器功能来分析传入的照片或处理来自 IoT 装备的变乱。它快速、简朴且可扩展。您不必分配和维护计算资源 - 只需部署应用步伐代码。重要的云供应商,包括AWS、  Microsoft和 Google,都提供无服务器功能。 
对于简朴或临时的应用步伐,无服务器功能非常有意义。但它们是否恰当读取和更新长期的关键任务数据集的复杂工作流?思量一家天天管理数千个航班的航空公司。可扩展的 NO-SQL 数据存储(如 Amazon Dynamo DB 或 Azure Cosmos DB)可以存储形貌航班、搭客、行李、登机口分配、飞行员调理等的数据。虽然无服务器功能可以访问这些数据存储来处理变乱(比方航班取消和搭客重新预订),但它们是实现航空公司所依赖的大量变乱处理的最佳方式吗?


问题和限制

无服务器函数的优势在于它是无服务器的,这也带来了内涵限制。就其本质而言,调用时需要开销来分配计算资源。别的,它们是无状态的,必须从外部数据存储中检索数据。这进一步低落了它们的速率。它们无法利用本地内存缓存来避免数据移动;数据必须始终通过云网络流向无服务器函数运行的位置。 
在构建大型体系时,无服务器函数也无法提供用于实现复杂工作流的清晰软件架构。开辟人员需要在每个函数运行的代码中逼迫执行清晰的“关注点分离”。在创建多个无服务器函数时,很容易陷入重复功能的陷阱,并产生复杂且难以管理的代码库。别的,无服务器函数大概会产生不平常的异常,比方超时和配额限制,这些异常必须由应用步伐逻辑处理。
替代方案:将代码移至数据

我们可以通过相反的做法来避免无服务器函数的局限性:将代码移到数据中。思量利用可扩展的内存计算来运行无服务器函数实现的代码。内存计算将对象存储在分布在服务器集群中的主内存中。它可以通过吸收消息来调用这些对象上的函数。它还可以检索数据并将更改保存到数据存储(比方 NO-SQL 存储)中。
我们无需定义一个无服务器函数来操纵长途存储的数据,只需向内存计算平台中的对象发送一条消息来执行该函数即可。这种方法无需重复访问数据存储,从而加速了处理速率,镌汰了必须通过网络传输的数据量。由于内存数据计算具有高度可扩展性,因此它可以处理涉及大量对象的超大工作负载。别的,高可用性消息处理避免了应用步伐代码处理环境异常的需要。
内存计算通过结合数据布局存储(如 Redis)和参与者模型的优势,为定义复杂工作流的布局化代码提供了关键优势。与无服务器函数不同,内存数据网格可以将对象的处理限制为其数据范例定义的方法。这有助于开辟人员避免在多个无服务器函数中部署重复的代码。它还避免了实现对象锁定的需要,这对于长期数据存储来说大概是有问题的。
基准测试示例

为了权衡无服务器函数和内存计算之间的性能差异,我们将利用 AWS Lambda 函数实现的简朴工作流与利用 ScaleOut Digital Twins(一种可扩展的内存计算架构)构建的相同工作流进行了比力。此工作流代表航空公司大概用来取消航班并重新预订其他航班的所有搭客的变乱处理。它利用两种数据范例,即航班和搭客对象,并将所有实例存储在 Dynamo DB 中。变乱控制器触发一组航班的取消并测量完成所有重新预订所需的时间。
在无服务器实行中,变乱控制器触发 lambda 函数来取消每个航班。每个“搭客 lambda”通过选择其他航班并更新搭客信息来重新预订搭客。然后,它触发无服务器函数,确认从原始航班中删除搭客并将搭客添加到新航班。这些功能需要利用锁定来同步对 Dynamo DB 对象的访问。
当从 Dynamo DB 访问这些对象时,数字孪生实现会为所有航班和搭客动态创建内存对象。航班对象从变乱控制器吸收取消消息,并向搭客数字孪生对象发送消息。搭客数字孪生通过选择其他航班并向新旧航班发送消息来重新预订。应用步伐代码不需要利用锁定,内存平台会自动将更新保存回 Dynamo DB。


性能测量表明,数字孪生处理 25 个航班取消(每个航班有 100 名搭客)的速率比无服务器功能快 11 倍以上。我们无法扩展无服务器功能来运行取消 250 个航班(每个航班有 250 名搭客)的目标工作负载,但 ScaleOut 数字孪生可以轻松处理 500 个航班的两倍目标工作负载。


总结

虽然无服务器函数非常恰当小型和临时应用步伐,但在构建必须管理很多数据对象并扩展以处理大量工作负载的复杂工作流时,它们大概不是最佳选择。利用内存计算将代码移动到数据中大概是更好的选择。它通过最小化数据移动来提高性能,并提供高可扩展性。它还通过利用布局化数据访问来简化应用步伐计划。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曹旭辉

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表