我们正处于前所未有的行业混乱的时代,这是由技术发展过快导致的,特别是在物联网领域。物联网有助于将行业转变为数据驱动的范例,开辟了巨大的机遇。一些公司正通过技术革命转换业务,而物联网的快速应用正是收到他们的支持; 制造商正在提供低成本的高端设备和物联网平台,以实现设备集成和管理。
有很多物联网工具和框架在市场上存在不同的利弊,而且这是一个艰难的选择。我们相信,数字物联网的采用应该转向灵活,可靠且具有成本效益的平台,同时将基础设施,软件,知识和员工的投资降到最低。
为了验证这一理念,我们决定从零开始构建物联网解决方案,无需基础设施和维护成本,而且运营成本很低。这种方法完全符合云计算概念,例如为您使用的付费,按时付费以及平台即服务(PaaS),软件即服务(SaaS)以及无服务器方式等提供支付。
程序安装
为实现这一概念,我们采用了亚马逊网络服务(AWS)云功能,因为它是市场上最具有现代化和创新性的云。我们的项目是创建设备模拟器,报告实时遥测,并通过API实时访问这些信息。
我们认为AWS Lot平台是一个强大的物联网框架。它支持MQTT--使用最广泛的通信协议之一。基于其价格和维护成本的考量,我们选择支持的服务来保存和处理数据。
在研究了几种不同的架构和各种服务方案后,我们最早找到了以下组件列表:
我们概念项目的总体数据流程如下:
第2点可能乍看起来有点傻,因为您可能认为DynamoDB不是存储原始时间序列数据的最佳选择。但是,它在使用少量设备进行演示方面做得很好。
我们还考虑使用Firehose来处理数据,Firehose是作为物联网到S3/Reshift和EMR集群的传输流,但对于这个微型项目来说,这是矫枉过正的。
我们为这个架构设置了以下关键参数:
假设您的后端操作只需要每分钟处理几个请求 - 这意味着大部分时间您的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美元。你还会考虑构建无服务器的物联网解决方案吗?所以我们要视情况而定。
所有这些数字意味着:如果优化您的请求费率将会大幅度降低费用,这给我们带来了第二个重要结论,这是我们必须要考虑的,即:所有者的总成本。有一个虚拟阈值,超过这个阈值,无服务器方法将变得非常昂贵,甚至可能无效。
例如,传统的架构实施成本可能不会严重依赖于设备数量或每秒请求数量,但这种折衷是额外的运营支出。使用开源解决方案也可以降低成本。
毫无疑问,无服务器体系结构具有许多优点:
要考虑的第一个因素是为您的项目要求选择正确的方法。如果您不关心云锁定,则无服务器将是最合适的方案,例如:
另一方面,如果您正在构建与云无关且可高度自定义的解决方案并使用实时数据运行,则可以考虑定制或开源IoT解决方案。
您可以在这里下载报告的副本。