我们是否应该在物联网上使用无服务器体系结构?

我们正处于前所未有的行业混乱的时代,这是由技术发展过快导致的,特别是在物联网领域。物联网有助于将行业转变为数据驱动的范例,开辟了巨大的机遇。一些公司正通过技术革命转换业务,而物联网的快速应用正是收到他们的支持; 制造商正在提供低成本的高端设备和物联网平台,以实现设备集成和管理。

有很多物联网工具和框架在市场上存在不同的利弊,而且这是一个艰难的选择。我们相信,数字物联网的采用应该转向灵活,可靠且具有成本效益的平台,同时将基础设施,软件,知识和员工的投资降到最低。

实验验证

为了验证这一理念,我们决定从零开始构建物联网解决方案,无需基础设施和维护成本,而且运营成本很低。这种方法完全符合云计算概念,例如为您使用的付费,按时付费以及平台即服务(PaaS),软件即服务(SaaS)以及无服务器方式等提供支付。

程序安装

为实现这一概念,我们采用了亚马逊网络服务(AWS)云功能,因为它是市场上最具有现代化和创新性的云。我们的项目是创建设备模拟器,报告实时遥测,并通过API实时访问这些信息。

我们认为AWS Lot平台是一个强大的物联网框架。它支持MQTT--使用最广泛的通信协议之一。基于其价格和维护成本的考量,我们选择支持的服务来保存和处理数据。

在研究了几种不同的架构和各种服务方案后,我们最早找到了以下组件列表:

  • AWS IoT用于数据获取和设备管理,
  • DynamoDB - 文件存储以保存读取的数据,
  • AWS Lambda - 无服务器数据处理,
  • S3 - 用作静态网站托管的块存储,
  • 网关API - 对数据的REST访问。

数据流

我们概念项目的总体数据流程如下:

  1. 设备正在向AWS IoT发送少量数据(每次5秒)。
  2. AWS IoT将数据存储到DynamoDB表中。
  3. 每分钟和每小时都会触发Lambda函数,以执行数据分析并将结果存储回DynamoDB。
  4. API网关通过REST API将DynamoDB的数据公开到世界各地。
  5. 静态HTML网站托管在S3上,并且正在使用REST API来显示实时数据图表和分析。

第2点可能乍看起来有点傻,因为您可能认为DynamoDB不是存储原始时间序列数据的最佳选择。但是,它在使用少量设备进行演示方面做得很好。

我们还考虑使用Firehose来处理数据,Firehose是作为物联网到S3/Reshift和EMR集群的传输流,但对于这个微型项目来说,这是矫枉过正的。

我们为这个架构设置了以下关键参数:

  1. 如果您没有设备来报告任何数据的话则是免费的。此外也可以通过亚马逊免费的套餐来获得少量设备。
  2. 由于每个选定组件的本身具有高度可扩展且箱即用的特性。
  3. 您只需编写代码即可,因为您只需要定义规则并使用一种流行的语言编写逻辑:JavaScript,Python或Java。

分析/计算

假设您的后端操作只需要每分钟处理几个请求 - 这意味着大部分时间您的CPU处于空闲状态,假设你不想为闲置时间付费,我们选择无服务器架构。

假设您有10,000台设备每15分钟报告少量数据,这将导致每月平均有730小时工作,请求数大约为2,920万次。

AWS IoT每1M请求的成本为5美元,DynamoDB每秒10个上传请求的成本为0.0065美元,与每秒获得50个下载请求的成本相同。

如果要使用AWS lot,我们每月要付146美元,并且还要花费14美元将其存储在DynamoDB中,并且还是最小的读取容量。我们共要花费160美元,相当于每台设备每月0.02美元或每次请求0.000005美元。另外它没有考虑到lambda,storage,API网关的使用情况,实际上这只是这些花费的一小部分,我们可以忽略它。

或许数以千计的连接设备使用IoT解决方案令您印象深刻,每个月成本不会超过200美元。但是,让我们想象一下,设备每秒都在报告关键数据的业务,并且您有成千上万个设备,无服务器操作需要多少钱?

我来您节省一些时间,假设现在有10k台设备每秒发送一条消息:每月支付将超过13.6万美元,而10万台设备呢? 13.6亿美元!每台设备的每月成本增加到13.61美元。你还会考虑构建无服务器的物联网解决方案吗?所以我们要视情况而定。

优点,缺点和注意事项

所有这些数字意味着:如果优化您的请求费率将会大幅度降低费用,这给我们带来了第二个重要结论,这是我们必须要考虑的,即:所有者的总成本。有一个虚拟阈值,超过这个阈值,无服务器方法将变得非常昂贵,甚至可能无效。

例如,传统的架构实施成本可能不会严重依赖于设备数量或每秒请求数量,但这种折衷是额外的运营支出。使用开源解决方案也可以降低成本。

毫无疑问,无服务器体系结构具有许多优点:

  • 将资本支出转化为运营支出并通常降低运营成本。
  • 不必考虑内部系统管理流程。
  • 减少了开发和部署成本和时间表(加快上市时间)。
  • 设计具有可扩展性和容错性。

要考虑的第一个因素是为您的项目要求选择正确的方法。如果您不关心云锁定,则无服务器将是最合适的方案,例如:

  1. 您正在运营一家创业公司,且需要快速验证您的创意,或者您的上市时间很短。
  2. 您的解决方案不需要频繁地将数据从设备传输到云端,因此可以将每台设备的成本保持在相对较低的水平。

另一方面,如果您正在构建与云无关且可高度自定义的解决方案并使用实时数据运行,则可以考虑定制或开源IoT解决方案。

您可以在这里下载报告的副本。

本文的版权归 zona 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

云计算是什么?你现在需要知道的一切

公共云使客户无需投资新硬件或软件即可获得新功能。相反,他们向云计算提供商支付订阅费或仅为他们使用的资源付费。只需填写Web表单,用户就可以设置账户,并启动虚拟机...

25030
来自专栏达摩兵的技术空间

项目发布验收不严格带来思考

经常会遇到小公司的很多项目在测试环境针对测试数据库 草率的测试完之后就进行上线,然后生产环境暴露出大量问题,而且每个似乎都很严重需要马上纠正的问题。

15910
来自专栏安全领域

五个可预见的物联网挫折

简单的原型实现设备,与支持上亿软硬件都不同的设备之间存在巨大差异。一些故障并不会直接影响收入和用户的体验,因此可能会在早期的应用和敏捷开发迭代中被忽略。物联网的...

42880
来自专栏程序你好

微服务的创建和管理最常见问题是什么?

如果你不正确地划分责任,你就会遇到问题。将任何应用程序应用到分布式系统中。想想你可能会遇到的问题。管理数据和管理状态是许多人在管理有状态和无状态数据时遇到问题的...

14010
来自专栏前沿技墅

监控系统的前世今生

微博平台监控技术负责人,负责微博平台、PC微博大规模监控系统的建设,主要关注实时大数据、运维自动化、智能化方向,2014年加入微博,之前曾在新浪、搜狐等公司从事...

34240
来自专栏织云平台团队的专栏

新时代运维监控能力的进化——天网云用户体验监控平台实践

运维团队审视业务质量监控能力时,有九个问题值得思考,九问运维后,我们重新审视传统的运维监控能力是否仍然能够满足业务对质量的要求,结合当下移动互联网与新兴的业务形...

1.2K20
来自专栏测试开发架构之路

《Google软件测试之道》告诉你什么是测试

第一章:Google软件测试介绍 1.Google的测试团队并非雄兵百万,我们更像是小而精的特种部队,我们依靠的是出色的战术和高级武器 2.在Google,写代...

52370
来自专栏SDNLAB

混合虚拟化网络,网络性能优化之辩

网络设备在虚拟化后是否依旧可以快速提供良好的性能?这是目前大家最为关注的问题之一。下面就讨论一下传统网络设备和虚拟化后面临的问题以及怎样使用网络设备才能提供实时...

43170
来自专栏DevOps时代的专栏

精选 | DevOps 三十六计之精益敏捷与持续交付

? 前言: “一册在手,DevOps我有”,这就是传说中的《DevOps 三十六计》,相信您读完也意犹未尽,小编就来和您说道说道我注解的《DevOps 三十六...

34590
来自专栏WeTest质量开放平台团队的专栏

建一座安全的“天空城” ——揭秘腾讯WeTest如何与祖龙共同挖掘手游安全漏洞

《九州天空城3D》上线至今,长期稳定在APP Store畅销排行的前五,本文将介绍腾讯WeTest手游安全团队在游戏上线前为《九州天空城3D》挖掘安全漏洞的全过...

15130

扫码关注云+社区

领取腾讯云代金券