IoT时代的技术又遇到怎样的不一样与挑战,简单总结一下阿里云IoT场景中我们面临的问题与挑战。
万物的互联,连接的形态也在悄然的发生变化,从WIFI,3G/4G,BLE到NB-loT,LoRa,传统的RS232,RS485, CAN BUS等等也登上新的舞台,原本相互无关的网络形态,交织在一起,异构的网络构建着统一通讯。
CoAP主要基于UDP,与HTTP相似的模型为嵌入式资源受限的场景提供了REQ&RSP的能力,这种模型更适合多数开发者的习惯,这种模型更适合多数开发者的习惯。UDP面临最大的就是下行寻址的问题,但在局域网本地通信非常适用,同时在IPv6时代也会迎来一些新的思考。另外 COAP over TCP也是非常值得看好的。
HTTP/2的多流特性,天生就是为复杂场景而设计的,数据报与双向流能力的支持,极大的扩展了应用场景,多流的特性也可以为其他协议提供良好的封装能力,可谓是有潜力的的全能通道,在大数据场景以及流数据场景得心应手。
AMQP适合吞吐量极大的云云消息流转场景,多信道支持,同时具备良好的开源生态,也是被广泛用于在构建云云,云边(边缘端)场景。
还有大量传统的协议,例如J1939, Modbus,OPC等等,不同的接入方式,不同的网络链路,不同的连接协议,构建了前所未有的繁荣与复杂。
连接不止于此,也留给我们更多的思考:
1. TCP长连保活模式可以被颠覆吗?
2. SDN在IoT时代可以重新被定义吗?
3. 下一代网络会是什么样的?
一个经典的IoT闭环应用不仅仅涉及传感器,芯片,模组,OS,主控程序,网络以及连接协议等等,还有云平台的数据建模与结构化,存储,加工,分析到应用
移动互联网时代早期,大家一定对手机不同系统的适配的繁杂记忆犹新,在应用层,你可能会面临奇奇怪怪的兼容问题,当你接触到 native或者framework/层,有些适配的问题更是让你疲意不堪
今天IM连接了人,达到了数十亿的规模,但实际的在线长连接数会少很多,对于支持这样的连接规模,已经很了不起,我们的支付宝也一样。
但不久后的IoT连接的是数百数千亿设备,会是十亿百亿在线规模,这里面面临的挑战更是巨大,这样的规模也是IT工程史上前所未有的,充满了未知。
移动互联网时代今天大量的数据来源于C端场景,数据已经可谓是海量。对于常规以人为核心的应用,日活比例也不会太高。
但物联网设备的特征与人还是有还大差异,以典型的生活场景为例,如果是1亿设备,在线大于可能在3千万,关键是这些设备还不时的会上报数据,对于平台几乎时时都在秒杀,产生着巨量的数据。
如果是10亿设备呢,如果是100亿设备呢?100亿的设备并不遥远。
如此大量的loT数据会迫切的引发对数据质量的思考,数据的信息密度的思考。怎样治理数据质量?数据怎样分级存储?数据如何更高效的清洗与萃取?
在我们都在讨论大数据的时候,举个有趣的例子。当你到IoT工业场景中,你会发现有很多都是个性化的设备,这些设备会产生不少数据,但是还算不上大数据,我们大数据的分析平台与技术在解决个体设备的数据分析时,就是杀鸡用了牛刀,成本的问题又突显出来。所以又可能引入小数据的重新思考。
还有,以聚合计算为主体的分析引擎,在面对CEP( Complex Event Processing)场景的计算时,又往往不那么有效。
面对IoT场景,数据分析,存储需求都面临了一些变革,其根源来自于场景的多样型。
各种迹象都在表明未来去中心的趋势。孙正义2017年在一次演讲中提及,末来鞋子的一块芯片的计算力会超越人脑,那真正是无处不在的计算。
当计算触手可得的时候,就不再需要用时间换计算力,随时随地计算,而且更加的自治。
这说的有点大,从小的角度来说,在很多特定的场景,例如工厂数字化采用云端集中式会存在可靠(例如断网风险,成本(例如带宽成本),性能(例如需要更快响应),安全(例如不希望数据被扩散)的需求,这种场景最佳的方案就是边缘计算。
我们在说物理化数字世界,loT的核心使命是把物理世界投影到数字世界,建立物理世界与数字时间的双向同步机制。如何在数字世界描述物理世界呢?这就是我们物的建模,这种建模充满着遐想。
通过对物理世界的数字化,我们就可以在数字世界重新认识物理世界,甚至可以四维导航,或是展现现在,或是导航到历史的截面,或是预测到模糊的未来。
回到最现实的地方,IoT的PaaS会面临各种应用场景,衍生出各种部署场景,例如公有云,专有云,混合云,边缘云,网关等等,未来的百亿连接一定不会只在数个集群,面对如何繁多的环境,如何做到快速部署,便捷的运维,也是留给我们要去克服的课题。
对于部署,
先看架构问题,平台需要良好的伸缩性以及模块化,例如需要有云原生应用的特性。
再看依赖问题,依赖的各种中间件就很难带到各个环节中,我们需要SAL( Service Abstract Layer),需要具有不挑环境的中间件,需要保持系统的最小依赖...
再看发布问题,环境如何快速部署,如何确保及时更新,如何让集群快速复制?
再看运维问题,在异构的形态上构建统一的运维体系,还有众多细节问题需要去解決。
引用 Thoughtworks 2018年技术雷达报告中对IoT的描述:物联网(IoT)生态系统持续稳步发展,关键成功因素包括安全和成熟的工程实践。
安全对于物联网至关重要,也是很多业务初期容易忽略的。在过往的几年,业内物联网的安全事故也是层出不穷。物联网赋予了设备以及业务更大的空间,同样不如果不守护好安全这扇门,帯来的灾难也是致命的,不仅仅是财务损失,甚至涉及到人身安全。
举些具体安全的例子:
・如何防范设备身份可能被盗取或者被破解?
・如何防范固件可能被截获,甚至是纂改?
・如何防范设备中间人攻击?
・如何防范云平台的DDOS攻击或进一步的CC攻击?
・如何防范设备的越权访问?
・如何防范设备数据被截取,被簒改?
・如何防护设备不会被非授权控制?
・如何防范平台数据不泄漏?
・如何包含个人信息安全?
・如何保障漏洞被及时修复?
・如何保障数据中心被非法闯入?
物联网的链路长,碎片化严重,合作方多,安全危害大,这些特点让安全问题变得特别的突出。
保障安全也是一项体系化的工作,不仅仅是技术层面的,还包括相关制度以及人员管理。
在技术层面,既有端的安全,网络安全,也有云平台的安全,除了系统本身的安全,也有业务层面的安全。相对其他系统,物联网有很多新的安全挑战。例如终端的身份发放以及保存,固件的保护,异构网络下传输安全,双向鉴权,传输加密套件的精细化选择问题,采集的信息脱敏处理等
总结一下loT平台面临的工程技术挑战,也是我们正遇到的,以及正在努力解決的。实现一个平台的基本功能其实看似不难,但是真正保障高可用,高性能,高安全以及可伸缩性其突挑战是巨大的。
(en)