0

如何使用无服务器架构快速构建和扩展物联网项目

 1 year ago
source link: https://server.51cto.com/article/742164.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

如何使用无服务器架构快速构建和扩展物联网项目

作者:Harris编译 2022-12-13 10:45:12
企业推出了一个新的物联网产品,可能使用AWS、Azure或其他主要云提供商提供的物联网框架,设备现在可以从云发送和接收数据。那么,如何处理这些数据以获得有价值的见解,例如设备健康遥测或用户行为跟踪?有许多不同的方法可以在云中建立数据处理基础设施,以平衡控制和复杂性。

企业推出了一个新的物联网产品,可能使用AWS、Azure或其他主要云提供商提供的物联网框架,设备现在可以从云发送和接收数据。那么,如何处理这些数据以获得有价值的见解,例如设备健康遥测或用户行为跟踪?有许多不同的方法可以在云中建立数据处理基础设施,以平衡控制和复杂性。无服务器架构最终是一种软件设计原则,它允许您在不管理基础设施的情况下构建、扩展和运行服务,而MistyWest对这种“无服务器”模式如何使团队能够快速构建和扩展云解决方案感到兴奋。

049fc672042a5bc1a93801b254546bc82d5584.jpg

为了帮助您理解这对于物联网产品解决方案的适用性,我们提供了以下不同架构模式的概述,以及您应该在什么情况下考虑为您的项目采用无服务器。

无服务器架构允许你将服务器管理完全交给云服务提供商,而你可以直接专注于你的应用程序代码。

使用虚拟机

现在,设置云管道的老派方法(如果希望获得更多控制,推荐使用这种方法)是在云中启动一个虚拟机(VM)来运行处理代码。Azure虚拟机、AWSEC2或GCP计算引擎是一些常见的选项。得到一个虚拟计算机,它可以运行类似于在你的个人计算机上运行的代码。然而,这种路由的局限性是,您将迅速耗尽单个VM的处理能力,特别是当您正在处理来自数千个物联网设备的数据时。

要获得更强的处理能力,可以添加更多虚拟机并将处理工作分配给多台计算机。像Kubernetes和DockerSwarm这样的工具可以让您跨多台机器编排处理工作负载,云提供商提供AWSElasticKubernetesService和谷歌KubernetesEngine这样的服务,以支持在云中跨多台机器编排工作负载。像AWSElasticBeanstalk或AzureAppServices这样的服务可以自动设置和扩展常见的web开发框架,如Django、Rails和Node,它们是很好的起点服务,可以帮助你管理它们。

然而,设置和配置编排工具可能是复杂的,需要大量的时间和专业知识,不能直接为客户提供价值。如果你想快速构建原型,为客户提供价值,并且你知道你的解决方案可以扩展,那么无服务器可能是正确的选择。

什么是无服务器架构?

无服务器架构允许您将服务器管理完全卸载给云提供商,同时可以直接专注于应用程序代码。一个更常见的体系结构子集是功能即服务(FaaS)。但无服务器体系结构提供的服务远不止这些——从数据库和队列系统到事件处理服务,每个云服务提供商都提供各种各样的服务来满足需求。

无服务器化的好处

(1)收费:一个好处是,无服务器平台倾向于根据无服务器功能运行的频率和时间来收费,所以您只需要为所使用的计算时间付费。这可以在开发过程中保持较低的成本,同时以一种在发行过程中自动扩展的方式进行构建。

(2)快速响应:无服务器函数也倾向于快速响应需求峰值,因为平台会自动增加可用的计算能力来运行函数,然后在负载减少时降低计算能力。这可以有效地利用资源,只在需要时部署计算能力。

(3)语言选项:对各种编程语言都有很好的支持,所以您很可能可以用您选择的语言构建无服务器函数。例如,AWSLambda原生支持Java、Go、PowerShell、Node.js、c#、Python和Ruby,并提供了一个运行时API来允许使用其他编程语言。Azure函数支持c#、Javascript、f#、Java、Powershell、Python和Typescript。

(4)漏洞预防:使用无服务器功能进行构建必然会创建一个无状态和无主机的系统,这可以简化对系统的推理,并防止一些关于状态管理的复杂漏洞。

(5)数据管道:通过您的物联网框架,您可以设置自动的、事件驱动的数据管道触发器和数据库存储。通过附加的可视化框架或开发您的内部仪表板,您可以立即监视进度。

(6)少花钱:如果虚拟机运转起来了,那么不管你是否充分利用了这些资源,还是它只是闲置着,你都要花钱。如果你的物联网设备很少发送小的数据包,这就不是理想的,即使你有数千个设备不断传输数据,在包之间也会有很多空闲时间,这将是非常低效的。利用无服务器框架可以让你只为你使用的东西付费,并且可以在不需要任何配置更改的情况下为你处理扩展——无论你有一台设备还是一百万台设备。此外,如果您正在使用Azure,正如论文《无服务器的狂野》中最初提出的那样,能够通过让Azure预测调用来显著减少冷启动。

走向无服务器的失败

(1)控制更少:使用无服务器平台的一个缺点是,由于无法控制底层硬件的配置,您对运行代码的实例的控制不那么细粒度。在无服务器环境中,处理能力、内存和处理时间的限制可能是一个限制,而在虚拟机中,可以进行相当大的垂直扩展。

(2)长延迟:另一个缺点是,由于该平台在需求高峰期间处理可用计算能力的扩展(即旋转更多的VM来运行功能),当用户不得不等待虚拟机启动时,对产生的延迟的控制更少。这有时会导致第一个请求出现很长的延迟,称为“冷启动延迟”,这在对延迟高度敏感的应用程序中可能是一个问题,但通常不是一个问题。

在网络上有许多关于无服务器架构的成本比较;发现介质上的无服务器转换的分析非常有帮助。无服务器架构高度适用于物联网解决方案,越来越受欢迎。随着逮住世界上使用的数十亿物联网设备,拥有一个弹性的架构对于快速进入生产是至关重要的。使用无服务器架构进行构建可以让企业快速创建原型,快速失败,并从长远来看击败竞争对手——只要注意所有底层属性,以便最大限度地利用资金。

责任编辑:华轩 来源: 机房360

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK