ArchSummit全球架构师峰会在深圳华侨城洲际酒店拉开帷幕,7月6日,在解决方案专场活动上,BoCloud博云CTO李亚琼博士带来了《基于物联网多路数据处理的云平台架构设计实践》。本次分享以物联网+云的技术挑战为切入点,通过实际案例阐述了多通道数据聚合架构的设计要点以及云和互联网架构在物联网系统中的应用。
物联网是新一代信息技术的重要组成部分,也是信息时代的重要发展阶段。简而言之,物联网就是物联网。这包括两层含义:第一,互联网仍然是物联网的核心和基础,是在互联网基础上的延伸和扩展的网络;第二,物联网的客户端扩展到任何可以互相交流的东西,这样就可以互相交换信息,互相交流。
可见,物联网是互联网通过传感器网络向物理世界的延伸和扩展。与其说物联网是网络,不如说物联网是一种业务和应用。要保证大规模业务和应用的运行,需要大规模计算平台作为支撑。因此,构建完善的物联网云平台是实现物联网业务和应用顺畅运行的核心要素。
在物联网应用开发过程中,其基础设施,如中间件、操作系统、虚拟化、网络等。,可以通过PaaS层进行管理,PaaS层为开发和应用运营提供各种解决方案,让物联网开发者可以更专注于自己的业务。PaaS层介于IaaS和SaaS之间,向上可以支持物联网服务和应用的快速开发和部署,向下可以支持海量数据扩展和扩充的处理。
物联网云平台解决方案从业者
博云在与一些联网客户沟通的过程中发现,目前客户的主要需求是:

1.如何将多路传感器数据汇聚到边缘网关,网关将数据编码后发送到云平台进行处理;
2.云平台如何将聚合后的数据流按照一定的规则拆分,分配给不同的“处理逻辑”进行处理;
3.“处理逻辑”如何根据数据流的到达按需启停,实现热插拔设计;
4.架构设计如何满足未来扩展的需求以支持新的传感器和新的“处理逻辑”,如何满足平台扩展的可用性要求而不停机。
根据客户的需求,博云总结了物联网云平台建设的一般方法和约束条件,特别是约束条件对平台架构和技术选择的影响。通过反复的技术研究和验证,博云提供了基于云的物联网云平台解决方案。该方案的基础是构建物联网信息处理平台,涉及接入、协议解析、路由分发、数据处理模型、应用开发SDK等。,以实现以下核心任务和目标:
1.根据不同的数据流,调度不同的处理逻辑处理数据报文,可以灵活配置调度策略;
2.完成从抽象数据流到处理逻辑的数据传输,提供数据处理框架或SDK,集成业务逻辑;
3.云平台和业务处理逻辑实现一致性和协调性,实现生命周期管理、状态监控、故障恢复等功能。
博云物联网云平台解决方案主要从三个方面实现:
1实现统一的数据访问和任务调度
实现统一数据连接(独立于业务)、存储分发、集中调度(数据流与业务解耦)、标准化处理(统一数据接口)。
统一数据访问
接入系统围绕四个核心功能设计:数据接入、协议分析、路由分发和协议转发。
数据接入:通过业务端口接入数据流量,适配数据传输层协议,提供统计、安全、日志等功能;
协议分析:处理用户协议报文,提取数据报文和控制报文,为下一阶段提供基础数据;
路由:根据预定义的路由策略转发消息,路由策略一般来自消息的控制信息部分;
协议转换和数据转发:根据路由策略将数据消息转换成消息格式,并写入消息队列(不同主题)。

核心职能和任务的划分
在接入系统的选择上,博云在Nginx+lua、Nginx+ngscript、Envoy、New Development(基于Netty)四个方案中选择了Nginx+lua方案。最终决定选择这个方案的因素主要是考虑:一是稳定性。博云在架构设计第一阶段基本实现了该方案的稳定发展;第二,延迟和吞吐量,这需要通过测试;第三,扩展性更好。Nginx+lua和Nginx+ngscript的伸缩性更好,但Enovy的伸缩性不如Nginx;四、多协议支持,TCP、UDP、Http等多协议支持;第五,生态系统,而特使生态系统现阶段还比较薄弱,第三方系统交互界面有待完善。经过反复比较,博云选择了Nginx+lua的方案,博云也验证了这一点。
任务调度
调度系统的功能范围包括任务调度、消息监控、状态协调、运行监控和配置管理。为了完成这些功能,调度系统的功能设计需要围绕三个核心功能:数据监控、调度控制和监控巡检。
数据监控:监控未绑定业务处理程序的kafka队列,当有新消息到达时,启动业务工作器进行消费处理;
排班:同步etcd和业务工作者之间的状态信息,提供启动/关闭工作者的功能;
巡检:定期监控业务人员的运行状态,主动或被动(通过Kubernetes)进行故障恢复。

调度系统任务划分
2实现基于云的运营支撑平台。
在选择物联网云平台的架构时,BoCloud选择了基于物理机+容器的创新云技术,构建支撑物联网服务和应用的平台,以物理服务器为主要服务。Docker+Kubernetes的新PaaS平台提供了云平台所需的高级特性管理功能,实现框架和服务的敏捷部署、灵活伸缩、资源调度、故障自动恢复等。,以满足业务拓展的支撑需求。
3实现服务接入和协同。
围绕导入调度框架构建服务访问SDK和工具,实现服务数据的标准化访问、框架协调(状态同步)、配置和分发等功能。在业务整合方式上,博云采用SDK整合模式。与高耦合度、高集成风险的框架集成模式相比,SDK集成模式侧重于业务流程,业务可以根据自身情况灵活决定SDK的调用。同时,SDK集成模式有利于扩展,更方便支持多种语言。
本文章来源于互联网,如有侵权,请联系删除!
相关推荐: 【物联网(IoT)开发】使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关
上篇“【物联网(IoT)开发】Arduino 入门 Hello World(LED闪烁)”只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断开网络提供电源依然还可以工作。本文将介绍如何开发一个应用程序,以便使用适用于物联…