演讲稿(图文版)
文字版
IoT与云计算
为什么提IoT与云计算?
- 1)困扰物联网发展的瓶颈之一物联网平台随着云计算的发展而得到了长足的进步。以AWS提供的IoT服务为例,它可以支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至终端节点和其他设备,而且这样的一个平台可以极大简化开发物联网应用的复杂性。
- 2)低功耗广域网(LPWAN)在过去一年进步惊人。相比于短距技术(蓝牙、Wi-Fi、ZigBee等),LPWA无需额外部署汇聚网关,大大降低了用户的部署成本和复杂度,应用终端即插即用消除了部署限制。
- 3)NB-IoT技术协议获得了3GPP无线接入网(RAN)技术规范组会议通过,已经具备了在2017年投入商用的条件。LoRa作为一种无线技术以较低功耗远距离通信,对建筑物的穿透力很强。LoRa的技术特点更适合于低成本大规模的物联网部署,例如智慧城市。
IoT开发的痛点
IoT开发的痛点:
- 1)避免“重复造轮子”,将常用的功能组件和整合成统一的平台接口,集中精力解决核心业务研发。
- 2)降低使用IoT开发的“门槛”,将分布式集群部署、弹性扩容、安全等难题交由统一的平台处理。
- 3)简化大数据开发流程,将大数据分析、数据可视化等功能以云端API的形式封装,供业务人员使用,使业务员无需关注大数据底层架构和算法。
PaaS主要解决的问题
IoT PaaS主要解决的问题:
- 1)使得IoT开发转向serverless架构,降低使用IoT开发的“门槛”,让系统钟最复杂的扩展性、高可用性、任务调度以及运维工作用服务提供者转为管理,实现no-Architecture和no-Ops转变。
- 2)做数据运营,类似DaaS(Data as a Service)。作为一个开箱即用的工具自动针对用户和设备使用行为进行分析, 以指导产品功能改进、营销策略实施、增值服务运营。
- 3)提供成熟和标准化的平台接口,如账号体系、设备绑定管理、事件通知引擎、OTA管理、定时任务引擎、设备分享、微信接入等,避免“重复造轮子”。
- 4)网络功能虚拟化NFV(Network Function Virtualization)。通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署。
发展方向
一)发展Serverless架构。
a)应用逻辑并非全部在服务端实现,而是采用FAAS(Function as a Service)架构,通过功能组合来实现应用程序逻辑。
b)Serverless架构能够让开发者在构建应用的过程中无需关注计算资源的获取和运维,由平台来按需分配计算资源并保证应用执行的SLA,按照调用次数进行计费,有效的节省应用成本。
二)数据运营。
a)实现DaaS(Data as a Service)的架构。将数据采集、标准化、聚合和分析放在一个集中化的位置,使得数据管理更集中化和标准化,让IoT的研究和开发专注于核心业务,可以快速的探索数据。b)将各类算法、可视化工具整合成多个相互独立功能组件,并以API服务的形式向外提供服务。
c)搭建数据中心,负责时序存储、数据处理群集、数据API网关访问,以及可视化Web服务等任务。
三)SDN技术(Software Defined Network)与NFV技术(Network Function Virtualization)
a)控制转发分离架构。通过openflow等将网络设备控制面与数据面分离开来,由集中的控制器管理,无须依赖底层网络设备,控制权完全开放,用户可以自定义任何想实现的网络路由和传输规则策略,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。
平台架构设计
IoT PaaS设计架构。左侧是数据中心,右侧是IoT网关。使用OpenStack作为承载所有控制服务的云,网关使用Kubernetes对服务进行微分隔,为了实现多租户功能并确保不同传感器的安全,使用OpenContrail将两端连接在一起,并为Kubernetes POD和OpenStack Project虚拟机提供网络分隔。
网关操作系统和数据中心边缘路由器之间的VPN连接可以看作该平台的最底层,该层之上是SDN,在这里可以通过OpenContrail实现虚拟机(OpenStack云)和容器(网关)之间的直接通信。
数据中心
数据中心是整个IoT平台的中心管理点。其中包含OpenStack IaaS云,以及伴随云同时运行的虚拟机和SDN控制面板。这些计算机负责了时序存储、数据处理群集、数据API网关访问,以及可视化Web服务等任务。
数据中心包含下列服务:
- 1)管理服务。硬件群集中运行的虚拟机承载了所有控制服务:OpenStack控制器、OpenContrail控制器(SDN)、Kubernetes主机、Salt主机。
- 2)OpenStack云。OpenStack项目为数据库、大数据处理,以及数据可视化所涉及的不同虚拟机服务提供了分隔和划分。这个云运行在KVM hypervisor之上,通过OpenContrail的Neutron插件实现网络连接。
- 3)边缘路由器。OpenContrail会与数据中心边缘路由器创建iBGP对端,这样便可以将OpenStack虚拟机和Kubernetes POD的动态网络路由传播至IoT网关。该设备可以MPLSoverGRE或MPLSoverUDP方式创建标准的L3VPN。
网关
IoT网关可位于任何目标位置,例如街灯、工厂机械、家用电器中。SDN提供的传输层将远程IoT网关与云服务连接在一起。网关可支持多平台,甚至可能混合使用了x86/64和ARM设备。该技术可以通过一个网关为多个客户承载多种传感器平台,这一特性是通过微服务分隔(Docker容器)和Kubernetes对多租户的支持实现的。整个平台可以提供可伸缩的多租户环境,无论多远距离的应用程序和传感器都可位于同一个网络中。
远程网关包含下列组件:
1)Kubernetes Minion
Kubernetes minion负责与数据中心内的Kubernetes主机通信,并负责管理Kubeletand POD。Kubelet使用了Opencontrail插件,借此将Docker容器与vRouter代理连接在一起。
2)Kubernetes POD
Kubernetes POD是连接到vRouter的一个或多个Docker容器。POD可按照标签进行分隔,这样即可启动不同应用程序,从不同消息总线以IQRF、蓝牙,或GPIO方式读取数据。
3)Docker容器
Kubernetes POD中的Docker容器为整个平台提供了极大的收益,可在无需特别安装的情况下支持任何类型的操作系统。例如,IQRF使用了某一版本的简单Java应用程序,可通过容器在几分钟内交付,并且不会与网关本身的操作系统产生不匹配的情况。
借助OpenContrail覆盖的帮助,OpenStack云内部的虚拟机可以通过L2或L3私有网络联系位于任何地理位置的Docker容器,使得应用程序开发者可以使用标准云平台中用过的同一套工具。
传感器直接连接至容器,数据在Docker容器中处理后发送至Graphite时序数据库,最后以图形化方式实时呈现数据。