一家企业发布了一款新的物联网产品,可能使用来自AWS、Azure或其他主要云提供商的物联网框架,设备现在可以发送和接收来自云的数据。那么,如何处理这些数据以获得有价值的见解,例如设备健康遥测或用户行为跟踪?有许多不同的方法可以在云中建立数据处理基础设施,从而平衡控制和复杂性。无服务器架构最终是一种软件设计原则,它允许您在不管理基础设施的情况下构建、扩展和运行服务,而MistyWest对这种“无服务器”模型如何使团队能够快速构建和扩展云解决方案的洞察感到兴奋。为了帮助您了解这如何应用于IoT产品解决方案,我们提供了以下不同架构模式的概述,以及您何时应该考虑为您的项目采用无服务器。无服务器架构允许您将服务器管理完全交给云服务提供商,而您可以直接专注于您的应用程序代码。使用虚拟机现在,设置云管道的老式方法(如果您想要更多控制,推荐使用)是在云中启动虚拟机(VM)来运行处理代码。Azure虚拟机、AWSEC2或GCP计算引擎是一些常见的选项。获得一台可以运行与在您的个人计算机上运行的代码类似的代码的虚拟计算机。但是,此路线的局限性在于您将很快耗尽单个VM的处理能力,尤其是当您处理来自数千个物联网设备的数据时。要获得更多处理能力,您可以添加更多虚拟机并将处理分布到多台计算机上。Kubernetes和DockerSwarm等工具可让您跨多台机器编排工作负载,而云提供商提供AWSElasticKubernetesService和GoogleKubernetesEngine等服务,以支持在云中跨多台机器编排工作负载。AWSElasticBeanstalk或AzureAppServices等服务可自动设置和扩展常见Web开发框架(如Django、Rails和Node),是帮助您管理这些框架的绝佳入门服务。但是,设置和配置编排工具可能很复杂,需要大量时间和专业知识,并且不能直接为客户提供价值。如果您想快速制作原型,为客户提供价值,并且您知道您的解决方案可以扩展,那么无服务器可能是正确的选择。什么是无服务器架构?无服务器架构允许您将服务器管理完全卸载给云提供商,同时您可以直接专注于您的应用程序代码。一个更常见的架构子集是功能即服务(FaaS)。但无服务器架构提供的远不止这些——从数据库和队列系统到事件处理服务,每个云服务提供商都提供各种各样的服务来满足需求。无服务器的好处(1)费用:一个好处是无服务器平台倾向于根据无服务器函数运行的频率和时间来收费,因此您只需为使用的计算时间付费。这在开发期间保持低成本,同时以在发布期间自动扩展的方式构建。(2)快速响应:Serverless函数也倾向于快速响应需求高峰,因为平台会自动增加可用的计算能力来运行函数,然后在负载减少时降低计算能力。这样可以有效地利用资源,仅在需要时部署计算能力。(3)语言选项:对多种编程语言有很好的支持,所以你很可能用你选择的语言构建无服务器功能。例如,AWSLambda原生支持Java、Go、PowerShell、Node.js、c#、Python和Ruby,并提供运行时API以允许使用其他编程语言。AzureFunctions支持c#、Javascript、f#、Java、Powershell、Python和Typescript。(4)漏洞预防:使用serverless功能构建必然会创建一个无状态、无主机的系统,可以简化系统的推理,防止一些复杂的状态管理漏洞。(5)数据管道:使用您的物联网框架,您可以设置自动的、事件驱动的数据管道触发器和数据库存储。借助额外的可视化框架或开发您自己的内部仪表板,您可以即时监控进度。(6)花钱少:如果虚拟机在运行,那么不管你是在充分利用这些资源,还是只是闲着,你都得花钱。如果您的IoT设备很少发送小数据包,那么这并不理想,即使您有成千上万的设备不断传输数据,数据包之间也会有很多空闲时间,这将是非常低效的。利用无服务器框架,您只需为使用的内容付费,并且无需更改任何配置即可为您处理扩展——无论您拥有一台设备还是一百万台设备。此外,如果您使用的是Azure,正如论文《无服务器的狂野》中最初提出的那样,您可以通过Azure预测调用显着减少冷启动。未能实现无服务器(1)控制较少:使用无服务器平台的缺点之一是,由于您无法控制底层硬件的配置,因此您对运行代码的实例的细粒度控制较少。在无服务器环境中,处理能力、内存和处理时间的限制可能是一个限制,而在虚拟机中,相当大的垂直扩展是可能的。(2)长延迟:另一个缺点是,由于平台在需求高峰期处理可用计算能力的扩展(即启动更多VM来运行功能),因此当用户必须等待虚拟机启动。更少的控制。这有时会导致第一个请求出现长时间延迟,称为“冷启动延迟”,这在对延迟高度敏感的应用程序中可能是个问题,但通常不是。弹性架构Web上有很多无服务器架构的成本比较;在medium上发现的无服务器转换分析非常有帮助。无服务器架构非常适用于物联网解决方案,并且越来越受欢迎。全球有数十亿台物联网设备在使用,拥有弹性架构对于快速投入生产至关重要。使用无服务器架构进行构建可以让企业快速制作原型、快速失败并从长远来看击败竞争对手——只需关注所有底层属性即可充分利用您的资金。
