科技魔方

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

数字时代

2022年11月17日

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

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

  使用虚拟机

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

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

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

  什么是无服务器架构?

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

  无服务器化的好处

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

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

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

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

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

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

  无服务器化的弊端

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

  2.长延迟:另一个缺点是,由于平台在需求高峰期间处理增加可用计算能力(即启动更多虚拟机来运行功能),当用户必须等待虚拟机启动时,您对延迟的控制力度较低。这有时会导致第一次请求的长延迟,称为“冷启动延迟”,这可能是对延迟高度敏感的应用程序中的一个问题,尽管这通常不是一个问题。

  弹性结构

  网上有许多关于无服务器架构的成本比较;我们发现媒体上的无服务器转换和燃烧和尚的分析非常有帮助。无服务器架构非常适用于物联网解决方案,并且越来越受欢迎。随着当今世界上数十亿物联网设备的使用,拥有一个弹性架构对于快速投入生产至关重要。使用无服务器架构构建将让您快速原型化,快速失败,并从长远来看击败您的竞争对手——只需注意所有的底层属性,以便最大限度地利用您的资金。

  作者:Jason Choi

+1

来源:千家网

推荐文章