高可用架构演进之单元化 (2)

物联网场景很大的特点就是碎片化非常严重。操作系统的碎片化是移动互联网时代的一个痛点,我们互联网时代的端其实更多,它的操作系统更不统一,资源受限,所以端的差异化非常严重。有些嵌入式的端的协议站不完整,云端会收到很多奇形的报文,甚至是死循环,对云端发起疯狂的连接。物联网还有一个最大的场景威胁,就是连接风暴。很多时候设备都是长连接的,像十万百万千万甚至一亿的设备连接进来,一断网或者是网络有些抖动,所有的设备突然掉线然后突然蜂涌而至的向平台发起连接,就像我们生活中的踩踏事件,尤其在接连的时候,是非对称加密的,对资源的消耗非常大,交付非常多,所以这种连接风暴突然爆发的时候服务器的压力是十倍甚至更高的。这些都是对平台会产生极大的一个挑战。

3. 物联网的安全

安全威胁大有两个特征,第一是对黑客来讲做这件事的诱惑比较大、利益比较大;第二是物联网的这种链路比较长,相对来讲很容易有安全难度也比较高,在端上会有一些薄弱的环节,所以相对来讲攻击的难度也会低一点。

4. 物联网的运维

排查物联网网络问题需要非常专业的技术,一些自建平台做好了功能,当网络不稳定设备多的时候,稳定性就会下降,出了问题难以定位和快速恢复。

华为云IoT一站式提供了高可用的物联网服务

高可用架构演进之单元化

华为云IoT过去近一年SLA做到了99.99% 。提供了一站式物联网平台服务,那到底提供了哪些服务呢?我们从设备的上云之路一起来看一下。

首先,做物联网开发肯定是离不开设备的。设备的开发需要操作系统,可以使用华为LiteOS操作系统也可以使用其他操作系统。然后使用SDK进行接入,可以选择直连或通过IoT边缘接入。接着会面临选择网络的问题,像wifi、2g/3g/4g等 。如果选择无线网络,华为云还有全球SIM连接服务,它可以提供eSIM空中写卡能力,可以根据你的需求去跟更换运营商,非常方便。

这个设备就具备了接入的前提,接下来是设备发放服务。

我们在开发的时候在生产的时候不知道设备未来会连接到哪里,可能是连接北京也可能连接在广州或者是海外。那我们可以设备发放的服务在设备首次接连的时候来根据你设定的策略,发放到不同Region的物联网平台。

那这个发放做完了我们设备就可以接入了。华为云IoT提供了一些多协议的接入能力,还提供了一些联动等设备的全生命周期的管理能力。数据上来以后如果想到其他的云产品也可以通过流转服务流转到其他的产品上,也可以流转到数据分析服务。数据分析服务提供了温、冷、热的数据处理的能力。还有资产模型,可以做一些虚设点的计算,如果要深层次的去使用你的数据也可以使用我们的AMQP把数据定位到你自身的应用里面去。

好的架构是高可用的重要前提

华为云IoT提供了一站式的物联网应用开发的基础能力,这些能力做到高可用是非常不容易的,那到底是怎么做到的呢?首先作为一个高可用前提是要一个好的架构,包含了四个非常关键且具有通用性的特征:

1. 限流降级

前面也提到物联网连接风暴是很大的威胁,那限流就非常关键了。

限流有多维度的限流,可分为单机的,设备级的、产品级的、租户级的,还有根据间连限流、上报限流、订阅限流。

还有自适应降级,一些情况下需要优先保证一些重要的业务,会把一些像运维这方面做一些降级。

2. 弹性伸缩

对于一些异常做限流,但对于一些合理的业务增长,则需要弹性能力。弹性这块就需要底层部署调度做得非常好,资源要能够柔性伸缩,但资源伸缩的前提是架构也能水平的扩展。

3. 容灾

我们知道系统不可能做到百分之百,难免会有可能出现一些异常,所以我们会需要容灾。现在华为云IoT的产品单个Region都是具备3 Az的容灾。AZ我们一般叫可用区,实际上是一个隔离的数据中心,AZ跟AZ之间的这个物理距离一般在100公里以内,他们的时延一般是2~3毫秒。多AZ容灾基本上一个数据中心出现异常了,对业务也没什么影响。再高级一点就是多Region容灾,会更加复杂而且成本也比较高。

4. 单元化

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjggw.html