在本文中,我将提供有关如何为您选择正确的IoT平台的更一般的概述。我将重点介绍在定制或开源物联网平台中要考虑和评估的主要标准。最后,我将提供一些数学和成本分析,将开源与无服务器的IoT平台进行比较,以帮助决定选择哪种方法。 包括AWS,Azure,IBM和Google在内的云巨头都对其云服务进行了大量投资,这使其具有成本效益,便捷,可扩展和容错性。选择的定制IoT平台应该没有什么不同。 作为运行DeviceHive的 DataArt IoT负责人,我不得不应对所有IoT平台面临的许多挑战。它帮助我提出了评估生产级物联网平台的标准清单: 可扩展性可靠性客制化运作方式通讯协定硬件不可知云不可知支持建筑与技术栈安全成本如果您熟悉这些条件,则可以跳过接下来的部分,其中详细介绍了这些条件,并直接转到Analysis / Calculations。 可扩展性 考虑使用无服务器的IoT平台时,请记住,它会自动扩展以服务不断增长的负载,而无需提示采取任何措施。它支持业务增长,防止由于云背后缺乏资源而造成的停电。 尽管无服务器方法将其隐藏在幕后,但自定义的IoT解决方案必须提供选项以通过可预测的性能,内存和吞吐量指标进行自我扩展。一些物联网框架提供了更高级和细粒度的扩展选项,这些选项更有效,但可能需要熟练的团队或高级操作。 可靠性 实时扩展以利用更多的计算资源来满足不断变化的负载需求是不够的。在生产中,您将无法确定消息从设备消失或整个平台没有响应的原因。 该系统应支持故障转移,并具有灾难恢复功能以支持生产级别的可靠性。在大多数情况下,它应该执行健康检查,监视其组件并提供自我修复。选择平台时,请注意如何实现其可靠性。它通常是体系结构和特定于操作的因素集的组合。 客制化 无服务器物联网方法通过提供与提供商的其余云服务的集成选项来提供灵活性。但是,在大多数情况下,我们无法修改IoT服务本身的核心。定制的IoT解决方案应提供出色的内置功能,广泛的库,API和与其他平台或服务的集成选项,并具有通过使用定制插件或集成定制代码扩展系统核心的能力。 使用开源解决方案,我们可以超越此范围。可以自由定制和调整产品以满足特定需求。开源还为您提供了所有内容的全貌。 运作方式 运营是一个重要的因素,而且经常被低估。与无服务器的IoT平台不同,后者的所有操作大部分都隐藏在后台,与您的团队相比,操作自定义IoT平台可能需要付出巨大的努力。您应该始终考虑平台编排功能,尤其是在使用微服务架构构建平台时。 同样,一个重要的好处是仪表板可以显示总体系统统计信息和运行状况信息,每个特定模块或服务的状态,并具有在发生紧急情况时进行通知的选项。 通讯协定 值得提前考虑定制物联网解决方案支持哪些协议。如果不确定将来是否会使用特定的物联网平台,我建议检查它是否支持MQTT,MQTT是近20年前发明的最广泛使用的协议,也是物联网的实际标准。 通过用支持MQTT的另一个IoT平台替换其主干网MQTT代理,它提供了几乎无缝迁移到另一个IoT平台的机会。此外,该协议已被包括AWS,Azure和IBM Watson在内的大多数云物联网提供商广泛采用。 如果物联网解决方案支持基于WebSockets,REST和CoAP的API,则将获得更大的灵活性。 硬件不可知 硬件制造行业发展非常迅速,我们可以观察到边缘设备的体积和功能如何。如今,大多数设备都可以运行操作系统,这使其具有极大的灵活性,并能够运行以任何语言编写的程序。 但是,对于低端设备,它们受其内存和计算能力的限制,并且应用程序必须在资源消耗方面非常高效。在选择IoT平台之前,值得检查一下它支持哪些设备,是否具有针对低端设备的本机实现,或者是否支持可以在低端设备上运行的轻量级通信协议(MQTT或CoAP)。 云不可知 在大多数情况下,考虑使用定制或开源物联网平台时,请务必记住,其部署,运营和维护也是其中的一部分。 为确保平台的灵活性不受限制,它应可部署用于任何基础架构中的操作,无论是云,内部还是混合。如果平台严重依赖于特定的云服务,则可能仅适用于该特定的云。尽管使用云锁定选项可能是一个不错的立即决定,但是如果考虑到云的发展速度和竞争程度,您决定迁移到另一云怎么办?您最终将需要更改整个平台,这是很大的工作量浪费。 支持 支持是开发物联网平台的公司提供的额外服务之一,以确保及时发布最新的更新,安全问题和错误修正。通过支持,可以开发自定义功能并以自己的名义操作平台。 组织平台支持有几种选择:雇用或教育专门的团队,使用与平台背后公司的支持协议,或者在开源平台的情况下依靠社区支持。 混合使用上述方法可能是最有效的方法,但这取决于特定情况。即使很快不需要支持,也应预先研究此选项,以避免处理无法正常工作或不受支持的产品。探索新版本的发布频率,产品功能路线图,支持和开发所涉及的员工数量以及是否有实际的人要交谈,这也是有意义的。 建筑与技术栈 该平台中使用的体系结构和技术的重要性至关重要,因为其未来的可维护性取决于其原始设计。 该平台应采用生产级的,得到良好支持的框架,工具和语言,同时限制其种类,以减少对具有相应技能的开发人员的需求。 除其他外,应考虑微服务架构。尽管可能很难操作,但它提供了最大的灵活性,可以用自定义实现来替代任何服务,同时保持系统的其余部分不变。 使用开源产品,您可以进行个人尽职调查,以探索体系结构并深入技术栈。 安全 物联网中的安全性是最热门的主题之一。核心问题是缺乏行业标准。安全涉及物联网生态系统的每个组成部分-设备,平台和应用程序-本文将重点放在平台安全性上。 选择物联网平台时,安全性必须是从项目一开始就内置的首要任务之一。必须检查现有物联网平台的安全功能。至少,它应提供传输级安全性(TLS)以与设备和应用程序通信以及对设备和用户进行身份验证。 还值得研究该平台是否具有授权功能,使用哪种数据生命周期管理,是否提供存储加密数据的选项以及最后(但并非最不重要)(如果有可用的安全审核文档)。 没有人希望他们的企业成为受到DDoS攻击或扫描网站漏洞的受感染设备的僵尸网络。恢复这种“受感染的”设备-云应用生态系统并解决安全问题将花费很多,并且需要付出巨大的努力。请不要让安全性标准从您的清单中漏掉。 成本 不同的物联网系统开发商提供不同的定价模型。在大多数情况下,可以免费使用开源平台。以下是物联网最常见的定价模型: 按节点/年付费按活动设备付费按消息付费付费使用高级功能(可选)支付支持(可选)价格通常不包括用于托管IoT解决方案的基础架构的成本,并且通常是账单中最大的部分。我将在下一部分中对其进行细分。 分析/计算 我们将在云中比较无服务器物联网和开源物联网平台使用的成本。为了简单起见,我们假定开源物联网平台具有以下属性: 它线性且可预测地扩展-每个其他节点每秒可以处理恒定数量的消息。请求随时间平均分配,没有峰值。该平台以保证的消息传递模式运行。邮件大小为1Kb。一个节点实例可以以小于或等于200 ms的合理延迟处理5,000 msgs / sec。首先,让我们比较一下基础架构的原始成本。为了确保我们将苹果与苹果进行比较,我们将分析无服务器的AWS IoT和AWS基础设施上托管的开源IoT解决方案。 我们的开源物联网解决方案参考实例将是c4.xlarge,每个节点具有500GB通用SSD和500 GB / mo的备份空间。此外,我们将根据一个消息的1 Kb计算一个弹性IP地址,一个用于群集目的的负载平衡器以及出站流量的成本。对于无服务器的物联网,我们将考虑我上一篇文章中的设置,仅考虑AWS IoT本身和DynamoDB服务。 AWS IoT定价模型基于已接收和已发送的消息。它还计算一些服务消息,例如确认,ping和其他一些消息,但为简单起见,我们将其跳过。 假设有一个设备每秒向云发送一条消息。它每月将产生262.8万条消息,每月平均超过730小时。 AWS IoT每100万个请求的成本为5美元,而DynamoDB每秒每十个请求的成本为0.0065美元,而每秒每50个get请求的成本相同。 我们看到非常实惠的每月账单约为22美元。 借助在AWS基础设施上托管的开源物联网解决方案,我们将获得接近225美元的账单。 但是,如果我们有十个设备每月发送2620万条消息,则将为AWS IoT收取140美元,为开源平台收取225美元。 让我们看一下下面的图表,以查看每月成本和每条消息的成本与每秒发送的消息数的相关性。 一旦基于AWS IoT的系统每秒处理的消息量超过17-18条消息,就该开始考虑迁移到另一个IoT平台以降低运营成本的时候了。此外,对于开源物联网平台而言,每条消息的成本在每秒20条消息之后急剧下降,并且随着消息速率的提高而持续下降,而对于无服务器IoT则保持不变。 让我们看看更大的数字。如果我们有10,000台设备会怎样?每月AWS IoT可获得136,000美元,而开源则为3,300美元!这确实令人印象深刻,并且如果切换到另一个平台之前看起来并不那么吸引人,那么现在看起来就必须这样做。您拥有的消息越多,无服务器IoT的成本效益就越低,而使用其他平台可以节省的成本就越高。 两者之间的差额(每年将近160万美元)应足以聘请工程团队来操作产品或构建自定义功能,增加一些额外的实例进行自动编排,并与开发该产品的公司签订支持合同。平台。 最后,这是高负载物联网系统的每月成本图表。您可以得出自己的结论。 AWS的案例生动地显示了这两种方法之间的巨大成本差异。在使用其他物联网云平台的小消息量上,这可能并不明显,但这只是在无服务器方法变得成本效益低时找到要点的问题。 结论 尽管基于云的无服务器IoT解决方案提供了开箱即用的广泛集成选项和即时上市时间,但这些数字不言而喻-为巨额账单做好了准备。 如果不能期望业务快速增长或进行业务概念验证,那么基于云的解决方案是最佳选择。否则,如果IoT平台符合上述大多数标准,那么我的建议是:采用开源解决方案。 |