为什么提IoT与云计算?
IoT开发的痛点:
IoT PaaS主要解决的问题:
一)发展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虚拟机提供网络分隔。
网关操作系统和数据中心边缘路由器之间的V**连接可以看作该平台的最底层,该层之上是SDN,在这里可以通过OpenContrail实现虚拟机(OpenStack云)和容器(网关)之间的直接通信。
数据中心是整个IoT平台的中心管理点。其中包含OpenStack IaaS云,以及伴随云同时运行的虚拟机和SDN控制面板。这些计算机负责了时序存储、数据处理群集、数据API网关访问,以及可视化Web服务等任务。
数据中心包含下列服务:
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时序数据库,最后以图形化方式实时呈现数据。