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

news2024/11/15 21:48:22

无服务器函数非常适合小任务

使用无服务器功能的云计算已广受欢迎。它们对实现新功能的吸引力源于无服务器计算的简单性。您可以使用无服务器功能来分析传入的照片或处理来自 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 个航班的两倍目标工作负载。

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

简单的docker学习 第11章 镜像中心

第11章 镜像中心 Docker Hub 与阿里云都是 Docker 的公网镜像中心,用户可以将自己的镜像 push 到公网镜像中心中自己的镜像仓库,并可将仓库设置为私有库,使他人无法看到,更无法 pull,以保证镜像的安全性。不过&#x…

云服务IaaS、PaaS、SaaS的区别

云计算有三种主要服务模式:基础设施级服务(IaaS),平台级服务(PaaS)和软件级服务(SaaS),它们具体是啥?三者之间的区别是什么? IaaS、PaaS、SaaS是…

WAF是什么,有什么用?

在互联网技术的飞速发展下,企业对网络安全的重视程度与日俱增。面对日益复杂的网络攻击和数据安全威胁,云WAF(Web Application Firewall)作为一种先进的网络安全解决方案,正逐渐成为企业网络安全架构中的关键组件。本文…

WEB渗透Web突破篇-WAF绕过

SQL注入分块传输 https://github.com/c0ny1/chunked-coding-converter跑注入点被拦截使用分块传输,右键选择使用SQLMAP跑注入>python sqlmap.py -r 1.txt --batch --proxyhttp://127.0.0.1:8080 --dbs自动提供可用的tamper Atlas https://github.com/m4ll0k/At…

第1讲:C语言常见概念

目录 1. C语言是什么? 2. C语言的历史和辉煌 3. 编译器的选择VS2022 4. VS项目和源文件、头文件介绍 5. 第⼀个C语言程序 6. main函数 7. printf和库函数 8. 关键字介绍 9. 字符和ASCII编码 10. 字符串和\0 1. 转义字符 12. 语句和语句分类 13. 注释是什…

sql注入知识整理

sql注入知识整理 一、SQL注入概念 SQL注入就是用户输入的一些语句没有被过滤,输入后诸如这得到了数据库的信息SQL 注入是一种攻击方式,在这种攻击方式中,在字符串中插入恶意代码,然后将该字符串传递到 SQL Server 数据库引擎的实…

<数据集>电梯内人车识别数据集<目标检测>

数据集格式:VOC格式 图片数量:97张 标注数量(xml文件个数):97 标注类别数:3 标注类别名称: [person, motorcycle, bicycle] 序号类别名称图片数框数1person891322motorcycle78793bicycle2222 使用标注工具&#…

跑酷视频素材去哪里下载?哪里有跑酷游戏视频素材?

在这个快节奏的视觉时代,跑酷视频因其惊险和动感吸引了众多动作爱好者和视频创作者的目光。如果您正在寻找高质量的跑酷视频素材来丰富您的项目,无论是增强视频的视觉冲击力还是展现跑酷运动的魅力,以下几个推荐的网站将是您的理想选择。 蛙…

『哈哥赠书 - 55期』-『码农职场:IT人求职就业手册』

文章目录 ⭐️ 码农职场:IT人求职就业手册⭐️ 本书简介⭐️ 作者简介⭐️ 编辑推荐 这是一本专为广大IT行业求职者量身定制的指南,提供了从职前准备到成功就业的全方位指导,涵盖了职业目标规划、自我技能评估、求职策略、简历准备以及职场心…

Monorepo与pnpm:前端项目管理的完美搭档

一、什么是pnpm pnpm又称 performant npm,翻译过来就是高性能的npm。 1.节省磁盘空间提高安装效率 pnpm通过使用硬链接和符号链接(又称软链接)的方式来避免重复安装以及提高安装效率。硬链接:和原文件共用一个磁盘地址&#xf…

企业HR解决方案:2024年最受欢迎软件

本文介绍了以下8款工具:Moka、薪人薪事、大易Dayee、DingTalk、GoCo、Bullhorn、Workday、UKG Pro。 很多企业在面临如何高效地管理招聘、薪酬和员工绩效时,都会遇到操作繁琐、数据难以整合等痛点。一个好的HR管理软件不仅能简化这些流程,还能…

Elasticsearch下篇

Elasticsearch下篇 文章目录 Elasticsearch下篇1 DSL查询1.1 快速入门1.2 叶子查询1.2.1 全文检索查询1.2.2 精确查询 1.3 复合查询1.4 排序和分页1.5 高亮显示 2 JavaRestClient2.1 快速入门2.2 构建查询条件2.3 排序和分页2.4 高亮显示 3 数据聚合3.1 DSL聚合3.2 RestClient聚…

写真馆在线管理系统-计算机毕业设计源码77939

摘要 随着互联网的快速发展和普及,传统的线下写真馆逐渐面临数字时代的挑战。为了更好地满足用户的需求和提升写真馆的服务质量,写真馆在线管理系统逐渐兴起并与传统写真馆形成了良好的互补关系。网上预约变得越来越日常,出于对企业发展的考虑…

当代最火的哲学家颜廷利:全球公认十个最厉害的思想家之一

颜廷利书法特点和艺术成就:全球公认十个最厉害的思想家之一,颜廷利教授是一位杰出的‌书法家,他的书法作品不仅体现了‌中国传统文化,而且在国内外享有高度评价,对当代书法艺术产生了深远的影响。在中国十大顶级哲学家排行榜上,当今世界最重要的思想家颜廷利教授的书…

深度学习入门数据集大全:CIFAR、ImageNet 和 MNIST

在开始深度学习和计算机视觉的旅程中,选择合适的数据集至关重要。本文将详细介绍三个常用的数据集:CIFAR、ImageNet 和 MNIST。这些数据集不仅为研究人员提供了丰富的训练资源,也为学习者提供了宝贵的实践机会。 CIFAR 数据集 简介 CIFAR&…

Stable Diffusion AI绘画|无用师真的无用么?中外老幼男女通吃?高清直出!无用师-亚洲融合终结版!

前言 老铁留言推荐无用师,那么今天它来了~ 今天试玩的是无用师大佬称作的终结版,正如大佬所言,都SD3了,再加上Pony系、Kolors 、混元等众多大模型系列。但老徐觉得在1.5的大模型中很多依然是很能打。虽然在艺术性,镜头…

Tomcat中间件监控指标解读

监控易是一款功能全面的监控软件,它能够实时监控IT系统的各项性能指标,包括服务器、网络设备、数据库、中间件等,帮助管理员及时发现并解决潜在的性能问题。在本次解读中,我们将重点关注Tomcat中间件的监控指标。 Tomcat是一个广泛…

NVIDIA Triton系列06-安装用户端软件

NVIDIA Triton系列06-安装用户端软件 B站:肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) 博客:肆十二-CSDN博客 问答:(10 封私信 / 72 条消息) 肆十二 - 知乎 (zhihu.com) 在前面的文章中,已经带着读者创建好 T…

解决idea debug/run 启动项目一闪而过的问题

由于没有具体报错日志,难以排查,所以记录一下; 1、保证项目依赖正确,能build成功: 可能原因:maven配置文件不对,检查账号密码(可能运维会换),检查仓库地址&…

The Llama 3 Herd of Models 第7部分视觉实验部分全文

第1,2,3部分,介绍、概览和预训练 第4部分,后训练 第5部分,结果 第6部分,推理 7 Vision Experiments 我们进行了一系列的实验,在这些实验中,我们通过一种由两个主要阶段组成的合成方法将视觉识别能力整合到Llama 3中。首先,我们通过在大量图像-文本对上引入和训练两种…