OpenStack合力Kubernetes打造IoT平台,提供智能城市解决方案

  本文详细介绍了 OpenStack奥斯丁峰会 上主题演讲所提及的开源IoT平台。首先我们会介绍关于IoT的方法和愿景,随后会提供简要的技术概述并展示两个使用案例。

  物联网(IoT)是云计算领域的“下一件大事”。领先的行业供应商都提供了自己的IoT解决方案,并将其视作自己的业务战略。因此IoT这个词已经被滥用成为描述不同供应商专有解决方案的一个新流行词汇。“IoT”这个词几乎可以代表一切,甚至比“云计算服务”更加空泛。物联网主要围绕日益增加的计算机间通信,可通过用于收集数据传感器的网络和连接到云计算服务的执行程序处理各类信息。这个技术可以让我们生活中的一切,从街边路灯到港口都变得更加“智能”。

  我们对IoT的看法与其他供应商有所差异。我们会通过相同的方法向客户提供私有云解决方案,并使用现有的开源项目对云服务的实现方式进行扩展,借此打造通用IoT平台,以应对不同用例的需求。为此我们定义了下列需求:

  开源软件整个平台必须基于现有的开源解决方案,并且绝对不能只由某一家供应商开发。我们希望使用现有的平台:OpenStack、Kubernetes、Docker、OpenContrail等。

  不依赖具体硬件和供应商软硬件方面不能存在供应商锁定的情况。IoT网关CPU必须支持x86/64或ARM架构。我们不想因为昂贵的专有装置而被迫只能使用某一供应商的产品。

  **互操作性**IoT平台必须是通用的,可以适合不同用例。举例来说,如果某一IoT网关可用于统计街灯数量,那么也必须能通过相同的方式将其用于智能工厂或工业4.0应用程序中。

  因此我们设计出涉及OpenStack、Kubernetes、OpenContrail和Docker开源项目的下列高层体系结构。

物联网

  开源软件

  整个平台必须基于现有的开源解决方案,并且绝对不能只由某一家供应商开发。我们希望使用现有的平台:OpenStack、Kubernetes、Docker、OpenContrail等。

  不依赖具体硬件和供应商

  软硬件方面不能存在供应商锁定的情况。IoT网关CPU必须支持x86/64或ARM架构。我们不想因为昂贵的专有装置而被迫只能使用某一供应商的产品。

  互操作性

  IoT平台必须是通用的,可以适合不同用例。举例来说,如果某一IoT网关可用于统计街灯数量,那么也必须能通过相同的方式将其用于智能工厂或工业4.0应用程序中。

  下文技术概述一节将详细介绍其中的技术细节。首先一起来看看我们构建解决方案原型的两个用例。

  智能城市原型

  第一个用例是为捷克共和国一个名为皮斯克(Pisek)的小城市构建的智能城市项目。智能城市的理念和架构需要部署超过3000个端点,以及大约300个IoT网关,这些网关以高可用模式运行在Kubernetes驱动的容器中。该解决方案还包含开放数据门户,并通过数据API为第三方公司提供了下列信息:

  交通流量、路线、停车位

  监控和管理能源的使用以实现节能

  电子商务、营销、旅游信息

  环境分析

  生活方式、社交服务、社交网络

物联网

  该解决方案使用基于RaspberryPi 2的IoT网关。来自网关的数据存储在Graphite中,通过自行开发的数据挖掘应用程序进行处理,将结果显示在基于Leonardo CMS构建的市民门户网站中。Leonardo CMS是一种Web服务,可以将复杂的可视化结果混合显示在一起呈现任何内容。这个开放数据门户可以通过可视化仪表盘或API提供数据访问。

  下图展示了特定时间内,Kollarova和Zizkova两条街道十字路口的机动车和行人通行情况。

物联网

  若要详细了解该项目,建议阅读奥斯丁SuperUser杂志《更进一步,让城市变得更智能》一文,或观看 KubeCon 2016 演讲。

  OpenStack奥斯丁峰会上的智能会议系统

  为了证明我们的IoT平台真正不依赖某种应用程序环境,在OpenStack峰会过程中,我们将智能城市项目中使用的IoT网关(RaspberryPi 2)带到了奥斯丁会议中心,通过基于IQRF的网状网络将其与传感器连接在一起,借此测量湿度、温度,以及二氧化碳浓度。这个演示证明了IoT网关可以对IQRF、蓝牙、GPIO,以及任何其他基于Linux平台的通信标准进行管理并收集数据。