设计未动,需求先行。
对物联网平台,设计前最好先理清这些需求:
1. SLA服务等级要求:99%、95%、99%、99.9%、99.99%等。
2. 历史数据:在线存储、近线存储和离线存储的最大时间,历史数据的近线离线备份要求。
3. 传输协议支持:需要支持几种传输协议,如CoAP、MQTT、MQTTS、HTTPS、AMQP、XMPP、WebSocket、自定义TCP协议、透传等。
4. Payload序列化机制:XML、JSON、Protobuffer、msgpack、自定义二进制等。
5. 2G/4G流量费用:是否有无线流量费用,流量费用估算和流量优化。
6. 数据分析要求:Real-time streaming、ad-hoc aggregate或pre-aggregate等。
7. 数据分析要求:是否需要对原始数据进行数据清洗,数据汇总等。
8. 数据呈现:Dashboard要求,报表要求等。
9. 容量规划:设备总数、采集频率、每个设备Tag数,实时数据存储空间、历史数据存储空间、网络带宽等。比如可以借鉴下Thingworx的Sizing Guide:
https://www.ptc.com/support/-/media/BC2F28281E4142AFA6FC79EC49D9DBD3.pdf?sc_lang=enwww.ptc.com
10. 安全防护:TLS、Web应用防火墙、DMZ、哪些重要metric指标可视化监控报警、自动快照、自动备份等。
11. 可伸缩性:未来可能需要接入更多设备的话,是否可以水平或垂直扩展。
12. 消息批处理时缓冲队列持久化的策略:in-memory,File-based等。
13. Alarm:Alarm 的各种策略(阈值告警、告警升级、告警沉默期...)和 Notification 的各种策略(邮件、SMS、微信...)。
14. 集成:是否需要与第三方服务进行集成。如果有,如何对接。
15. 部署:要能部署到哪些云服务器供应商?AWS、Azure、阿里云......等。是否对其运维熟悉。