我们在会议中心三层楼内部署了20个传感器和20个路由器,通过一个IoT网关接收来自整个IQRF网状网络的数据,并将其中继至一个专门的时序数据库,本例中使用的数据库是Graphite。数据收集器使用了Docker容器内运行,通过Kubernetes管理的MQQT-Java网桥。其中最有趣的地方是距离,运行Docker容器的Raspberry位于美国奥斯丁的会议中心内,而虚拟机运行在欧洲的数据中心。动态网络覆盖渠道由OpenContrail SDN提供。下文技术概述一节还将对该平台进行进一步介绍。
下图展示了传感器和路由器发现过程中找到的一个无线IQRF网状网络。区域0 - 1覆盖会议中心一楼,区域2 - 4覆盖四楼。
IQRF是一种工作在亚GHz ISM波段的无线网状网络技术,可提供简单易行的集成能力,良好的互操作性,最多支持240个跃点的健壮网状网络连接,工作距离可达数百米,能耗非常低。
下图展示了会议中心二楼不同房间的二氧化碳实时浓度。历史图表显示了自周一以来的数值。从中可以直观了解到主题演讲的开始时间和午饭时间。
奥斯丁这套平台的数据收集方面,我们使用了下列服务架构。
技术概述
本节进一步介绍了这个IoT平台的一些技术构思。这个IoT平台以“通用”为愿景,旨在以安全的方式收集、管理和处理来自数千个端点的数据,并以动态的方式集中管理所有数据。
因此整个体系结构可以分为下列两大主要部分:
数据中心
数据中心是整个IoT平台的中心管理点。其中包含OpenStack IaaS云,以及伴随云同时运行的虚拟机和SDN控制面板。这些计算机负责了时序存储、数据处理群集、数据API网关访问,以及可视化Web服务等任务。
网关
IoT网关可位于任何目标位置,例如街灯、工厂机械、家用电器中。SDN提供的传输层将远程IoT网关与云服务连接在一起。网关可支持多平台,甚至可能混合使用了x86/64和ARM设备。该技术可以通过一个网关为多个客户承载多种传感器平台,这一特性是通过微服务分隔(Docker容器)和Kubernetes对多租户的支持实现的。整个平台可以提供可伸缩的多租户环境,无论多远距离的应用程序和传感器都可位于同一个网络中。
下列架构图展示了数据中心层和网关端的相关组件。下文架构详情一节提供了进一步介绍。
架构详情
架构图展示了整个IoT平台在体系结构方面的逻辑视图。左侧是数据中心,右侧是上文提到的网关。
从下图可以看到,这里使用OpenStack作为承载所有控制服务的云,同时所有大数据处理和前端可视化任务也是在这里进行的。网关使用Kubernetes对服务进行微分隔,为了实现多租户功能并确保不同传感器的安全,这一步是必须的。同时该平台还使用OpenContrail将两端连接在一起,并为Kubernetes POD和OpenStack Project虚拟机提供网络分隔。
上文曾提到过,分隔是通过SDN覆盖实现的。这里的重点在于数据中心边缘路由器和IoT网关之间只存在IP连接。网关操作系统和数据中心边缘路由器之间的VPN连接可以看作该平台的最底层,该层之上是SDN,在这里可以通过OpenContrail实现虚拟机(OpenStack云)和容器(网关)之间的直接通信。这种方法使得用户可以自由选择不同类型的传感器和执行程序,为其设置权限,并用安全的方式将其与云中负责任务处理的应用程序连接在一起。
数据中心包含下列服务: