六个月前,我和两朋友开始了一个农业物联网的创业项目,作为三人中唯一熟悉编程技术的人,关于IoT物联网平台的选型查了很多公开资料,也咨询了很多业内的技术朋友。回顾过往,我很庆幸当时的选择,如今分享出来当初的思考和经验,以此表达对朋友们的感激之情。 在我们的创业项目中主要涉及设备连接通道的安全性,数据的采集上报,控制指令的发送,全量设备的消息广播,基于设备影子的状态数据存储和配置参数更新,以及整体费用的评估。 在咨询多个朋友后,我们最终选择了亚马逊云,如今看来是整个项目中第一个正确的决策。 连接安全考量 设备连接通道的安全性,是我关注的重中之重。亚马逊云IoT Core 支持基于X.509证书的双向安全认证,国内云厂商的IoT平台在设备身份认证方面普遍基于采用基于账号/密码的认证,并不支持设备自定义X.509证书认证。 数据采集 在设备数据采集上报的场景中,各大云厂商IoT平台都能通过MQTT主题轻松搞定数据汇聚和转发到下游业务系统,并无明显优劣。 控制指令发送 给指定设备实时发送控制指令方面,各大云厂商IoT平台也都支持通过调用云平台的 API 下发控制指令消息。 消息广播 在我们的业务场景中,有面向全量设备发送当前天气情况的诉求。亚马逊云IoT Core 中只需要设备预先订阅同一个消息主题(Topic),业务系统将最新天气情况发送到此消息主题,即可轻松实现对全量设备的实时消息广播。而在国内云厂商的IoT平台中,我们一直没找到消息广播的解决方案,只能通过遍历消息API 来实现,这显然是我们不能接受的。 设备影子 借助设备影子功能,我们可以把设备最新状态缓存在云端,以便业务系统随时查询。业务系统可以更新云端影子,实现设备端运行配置参数的更新。国内云厂商IoT平台普遍支持设备影子功能,并无明显差别,唯有亚马逊云IoT Core 支持 delta 增量更新。 成本考量 作为初创项目,我们很难预估业务发展速度,因此我们更偏爱按量付费的模式,而不是国内云厂商的包年包月购买固定资源。我们的项目规划,最终也只有2000台设备,每秒消息并发不超过10条,这就导致如果采用国内云厂商IoT平台企业版我们不得不为额外的规格付费。 更不幸的是我们全年有效作业时间不足90天,总体评估下来国内云厂商采用IoT实例模式将有90%的成本浪费。相比之下,亚马逊云的IoT Core的按量付费更符合云计算的初衷,让我们惊喜的是每月还有100万分钟免费在线时长和100万条免费消息发送量。 总结 最终,我们选择了亚马逊云IoT Core,正如我们所料在很长一段时间内,业务发展都没突破亚马逊免费额度,而我们却在持续的从项目中获得利润。 |
|