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

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

  1. linux物联网项目,6个开源项目提升物联网开发效率

    有数据显示,目前物联网端口数量预计在200亿个左右.到2035年,这个数字会扩大到1万亿,平均每个人会拥有超过100台端口设备,它们将涉及穿戴.家居.交通.教育.通信等人类生活的各个领域. 毫无疑问, ...

  2. 2021物联网开发学习——基于小熊派IoT开发板Bear-Pi-IOT、E53_IA1_智慧农业拓展板与小熊派-鸿蒙·季Bear-Pi-HM Nano并接入Hi-Link

    2021物联网开发学习--基于小熊派IoT开发板Bear-Pi-IOT.E53_IA1_智慧农业拓展板与小熊派-鸿蒙·季Bear-Pi-HM Nano并接入Hi-Link 目录 作者介绍 目的 用到的 ...

  3. Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课

    Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课 本课程采用Q Q群直播方式进行直播,价值99元视频课程免费直播.完整的基于Swift项目实战,手把手教你做一个Swift版i ...

  4. 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计

    这是我的物联网开发系列文章,将介绍如何从嵌入式开发.云平台开发.Android端开发来实现一个简单的物联网应用开发,体验物联网全栈开发的过程,积累开发的经验. 本篇文章为系列文章的第一篇,主要介绍该系 ...

  5. 时代中的软件开发:基于BS架构的低代码

    编者按:本文对C/S架构与B/S架构做介绍与对比,分析为什么新时代下B/S架构的办公软件成为必然,再说说基于B/S架构的低代码平台,看看它在软件开发上展现了什么亮点. C/S架构与B/S架构的区别 C ...

  6. 云管理员、云架构师和云应用开发人员的职位描述与工作职责介绍

    想要从事云计算方面的工作,但不知道从哪里开始吗?第一步是看一些流行的云的角色,并了解雇主对他们的期望.然后,了解您的简历上需要什么,如何获取相关经验以及如何回答雇主在面试中提出的一些难题. 这里概述了 ...

  7. 物联网技术 android,基于Android技术的物联网应用开发

    本书从Android开发一般过程与方法出发,以Java语言为媒介,重点讲述Android开发的核心技术和在物联网上的应用.本教材的特色是以项目实践作为主线贯穿其中,提供了完整的物联网项目案例,力求使读 ...

  8. 物联网开发技术体系 2 软硬件开源物联平台

    软硬件开源物联平台 https://github.com/JavaScriptIOT https://github.com/OpenFPGAduino/OpenFPGAduino

  9. 《Windows CE嵌入式开发入门——基于Xscale架构》 第9章 Windows CE BSP及驱动程序结构分析

    9.1  Windows CE驱动程序结构概述 Windows CE的驱动程序可以从多种角度进行区分. 1.从加载以及接口方式来区分 可以分为本机设备驱动(Built-In Driver).可加载驱动 ...

最新文章

  1. Linux开关机时长查看
  2. [渗透攻防] 一.从数据库原理学习网络攻防及防止SQL注入
  3. 如何找到SAP S4销售订单的字段tkomk是在哪里填充的
  4. 物联网串口服务器的功能和作用
  5. java sql2005驱动_java.sql.SQLException:找不到适用于jdbc:microsoft:sqlserver的驱动程序...
  6. Python爬虫扩展库scrapy选择器用法入门(一)
  7. 教你如何用双SATA硬盘组建RAID系统
  8. 程序员的“非程序员”之路
  9. python将pdf文件转换成word文档_python实现pdf转word文档
  10. wx2540h配置教程_H3C无线AP控制器EWP-WX2540H 无线AP 无线云台控制器 无线控制器
  11. js获取url一级域名的方法
  12. 微信后台服务器能查撤回的消息吗,微信撤回的消息还能看到吗?查看方法介绍...
  13. 阿里云上云迁移工具案例实践:腾讯云迁移到阿里云
  14. CSU1256 天朝的单行道(spfa)
  15. 【地图易-制图案例】全球地震分布地图
  16. 做抖音有哪些变现方式
  17. c语言程序设计评分标准,c语言程序设计期末(A)标准答案及评分标准.doc
  18. Aspose.Words 表格添加斜线 并添加文字
  19. 学完教程,不知道接下去从哪里开始做自己的第一个APP,怎么办?酷课堂iOS交流群问答(201902期)
  20. 用CSS实现设置网页文字为只读,不可复制的方法

热门文章

  1. 单例模式代码_设计模式之单例:程序员必知必会,举例子+代码示例,通俗易懂...
  2. (13)拨云见日,闲聊哈希表
  3. Nand flash驱动的编写与移植
  4. Ffmpeg快速应用开发
  5. 基于K60/K66/LPC的HC-SR04超声波测距(附带代码)
  6. linux 魔术分区,Parted Magic-Linux 中的分区魔术师
  7. 《深入理解 Spring Cloud 与微服务构建》第二章 微服务应该具备的功能
  8. 力扣1025.除数博弈
  9. Mysql之七种连接查询
  10. NGINX---一次阿里云宝塔开发flask经历