PaaS的发展将释放物联网开发效率 ——基于云架构的物联网云平台解决方案

2018年7月6日、7日,为期两天的 ArchSummit 全球架构师峰会在深圳·华侨城洲际酒店拉开帷幕。在7月6日解决方案专场活动上,BoCloud博云CTO李亚琼博士带来了《物联网多路数据处理基础上的云平台架构设计实践》,本次分享以物联网+云的技术挑战为切入点,通过实际案例讲解多路数据聚合架构的设计要点,以及云、互联网架构在物联网系统中的应用。

IOT时代,云计算是物联网的核心

物联网,Internet of things(即 IoT ),是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。简而言之,物联网是物物相连而成的互联网。这其中包含两层含义:一是,互联网依然是物联网的核心和基础,物联网是在互联网基础上延伸、扩展的网络;二是,物联网的用户端是延伸、扩展到了任何可以通信的物与物之间,使彼此能够进行信息交换和通信。

可以看出,物联网是互联网通过传感网络向物理世界的延伸和扩展,与其说物联网是网络,不如说物联网更是业务与应用。如果要保证大规模的业务与应用的运行,必然需要大规模的计算平台作为支撑。因此,打造一个完善的物联网云平台则是实现物联网业务与应用顺利运行的核心元素。

在物联网应用开发过程中,其基础设施如中间件、操作系统、虚拟化、网络等部分,可以交于提供各种开发及应用运行的解决方案PaaS层做管理,从而使物联网开发者可以更专注于自身业务。介于IaaS和SaaS之间的PaaS层,向上可支撑物联网业务和应用的快速开发与部署,向下可支撑处理海量数据延伸和扩展。

物联网云平台解决方案践行者

BoCloud博云作为云计算整体解决方案服务商,在PaaS领域致力于为用户提供PaaS全局观的解决方案。在涉及到物联网应用场景下的云平台架构设计时,博云不仅仅是从IaaS、PaaS层面思考,更重要的是从整体解决方案的层面帮助客户实现数字化转型。

博云在与某物联网客户沟通过程中发现,目前客户的主要需求在于:

  1. 如何将多路传感器数据汇聚到边缘网关,由网关对数据进行汇聚编码后统一发到云平台进行处理;
  2. 云平台如何能够根据一定的规则对汇聚后的数据流进行拆分,并分发到不同的“处理逻辑”中进行处理;
  3. “处理逻辑”如何能够根据数据流达到情况按需启停,实现热插拔设计;
  4. 架构设计如何满足未来扩展支持新增传感器和新增“处理逻辑”需要,以及如何满足平台扩展不停机等可用性要求。

针对该客户的需求,博云总结了物联网云平台建设的一般性方法与约束因素,尤其是约束条件对平台架构、技术选型等可带来的影响,通过反复技术研究与验证,博云提供了基于云架构的物联网云平台解决方案。该方案的基础是构建一个物联网信息处理平台,涉及接入、协议解析、路由分发、数据处理模型、应用开发SDK等内容,以实现以下核心任务目标:

  1. 根据不同的数据流调度不同的处理逻辑对数据报文进行处理操作,调度策略可以灵活配置;
  2. 完成数据从抽象数据流到处理逻辑的传输,提供数据处理的框架或SDK,集成业务逻辑;
  3. 云平台和业务处理逻辑实现一致性协同,实现生命周期管理、状态监控、故障恢复等功能。

博云物联网云平台解决方案,主要从三个方面实现:

1实现数据统一接入与任务调度

实现数据的统一引接(独立于业务)、存储分发、集中化调度(数据流与业务解耦)、标准化处理(统一化数据接口)。

数据统一接入

其中接入系统设计围绕数据接入、协议解析、路由分发、协议转发四个核心功能。

  • 数据接入:通过服务端口接入数据流量,适配数据传输层协议,并提供统计、安全、日志等功能;
  • 协议解析:处理用户协议报文,抽取数据报文和控制报文,为下一个阶段提供基础数据;
  • 路由分发:根据预定义的路由策略进行消息转发,路由策略一般来源于报文的控制信息部分;
  • 协议转换与数据转发:转换数据报文为消息格式,写入根据路由策略消息队列中(不同的Topic)。

核心功能任务分工

在接入系统选型上,博云在Nginx+lua、Nginx+ngscript、Envoy、全新开发(基于netty)4个方案中选择了Nginx+lua的方案,最终决定这一方案选择的因素主要是考虑:一是稳定性,博云基本上在架构设计第一阶段就做到了该方案的稳定开发 ;二是延迟、吞吐量,需要通过测试;三是可扩展性要好,以Nginx+lua 和 Nginx+ngscript的可扩展性都比较好,而Enovy的可扩展性不如Nginx;四是多协议的支持,TCP、UDP、Http等多协议的支持;五是生态系统,而Envoy生态系统现阶段还比较弱,第三方系统交互接口待完善。在经过反复比较之后,博云选定了Nginx+lua的方案,该方案也经过了博云的验证。

任务调度

调度系统的功能范围包含任务调度、消息监控、状态协同、运行监控、配置管理,要完成以上这些功能,调度系统功能设计需围绕数据监控、调度控制、监控巡检3个核心功能进行。

  • 数据监控:监控未绑定业务处理程序的kafka队列,当有新消息到达时启动业务worker进行消费处理;
  • 调度控制:通过etcd和业务worker同步状态信息,提供启动/关闭worker功能;
  • 监控巡检:周期性监控业务worker运行状态,主动或被动(通过Kubernetes)进行故障恢复。

调度系统任务分工

2 实现基于云的运行支撑平台

BoCloud博云在物联网云平台架构选型时,选择基于物理机+容器的方式创新性云技术来构建支撑物联网业务与应用运行的平台,物理服务器做主要业务的承载,而Docker+Kubernetes的新型PaaS平台提供实现框架与业务的敏捷部署、弹性伸缩、资源调度、故障自动恢复等云平台所需要的高级特性管理功能,满足业务扩展运行时所需的支撑需要。

3实现业务接入与协同

围绕引接调度框架构建业务接入SDK和工具,实现业务数据标准化接入、框架协同(状态同步)、配置下发等功能。在业务集成方式中,博云采用了SDK集成模式,相对于高耦合度的、集成风险高等问题的框架集成模式,SDK集成模式以业务进程为主,业务可以根据自己的情况灵活决定SDK的调用,同时SDK集成模式有利于扩展,支撑多语言也更为方便。

目前,BoCloud博云服务的该物联网平台,构建基于云的运行支撑平台,配合数据统一接入与任务调度,实现业务接入与协同,完成物联网云平台的整体解决方案。未来,博云将会继续完善物联网云平台解决方案,继续覆盖物联网领域客户,助力物联网企业实现数字化、信息化发展。

K8S中文社区微信公众号

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址