微服务解决物联网软件问题

December 13, 2018 Brandon Lewis

随着物联网系统比以往任何时候都复杂,开发人员转向微服务架构,使得推出和更新物联网软件更快、更轻松、更安全。

微服务架构是一个松散耦合的框架,它使用虚拟化来将系统软件组件分隔成“容器”。

图 1 说明了 Docker(最受欢迎的容器化技术之一)如何将主机操作系统与其他应用程序、实用程序和第三方服务隔离开来,这些组件分隔到单独的容器中。

图 1. 微服务架构使用容器来划分系统中的软件组件。(资料来源:56K.Cloud GmbH

根据占用空间,给定架构中的各种服务可以驻留在云、雾网关或服务器中,或者驻留在物联网边缘设备本身上。这确保特定软件功能驻留在对于使用案例而言它们作用最大的位置(图 2)。容器化的软件组件通常通过标准化 API 相互通信。

图 2. 微服务可以驻留在物联网架构中它们作用最大的任何位置。(资料来源:EdgeX Foundry

基于容器的微服务架构的结构允许物联网开发人员大规模快速部署软件,而不必担心会在系统的其它地方破坏软件依赖关系。它还可以确保适用于新旧设备的可扩展、可互操作连接,因为可以根据目标硬件平台添加容器化协议和网络支持。

这些功能转化为更快、更多迭代的物联网软件升级,更精细的代码库管理,以及更好地利用软件工程资源。

位于物联网边缘的微服务容器

容器化软件架构起源于企业,使 IT 开发人员能够安全地分隔在相同硬件上运行的应用程序和服务。随着越来越多的计算能力转移到物联网设备以支持不断增多的功能,容器逐渐成为需要以下功能的边缘部署的极具吸引力的选项:

  • 多元化协议和数据格式
  • 不同的分析能力级别
  • 快速、迭代系统升级
  • 产品差异化和加速上市时间
  • 高效使用资源

但是,在边缘中工作的微服务架构必须克服在数据中心中不存在的挑战。例如,随着架构纳入更多微服务,需要更多网络和通信,这会增加延迟。

架构中包含更多设备和服务还会引入更多潜在的故障点和需要保护的接口。最后,跨越来越多的分布式、异构设备和环境协调服务也会变得日益复杂。

为了克服物联网边缘中容器的这些问题,Dell OEM 和其他公司启动了 EdgeX Foundry 微服务架构。

面向边缘的开放式、中立和可扩展微服务

EdgeX Foundry 是 The Linux Foundation 主持的一个开放源代码、独立于供应商的项目,其中包含许多不依赖于硬件和操作系统的微服务(图 3)。该平台旨在提高互操作性和加快上市时间,方便供应商构建差异化的物联网解决方案。微服务是通过 Docker 和 Docker Compose 部署的。

图 3. EdgeX Foundry 微服务架构提供开放源代码构建模块,以提高物联网系统的互操作性并加快上市时间。(资料来源:EdgeX Foundry

主要 EdgeX Foundry 微服务划分为三个类别:

  • 设备服务在物联网边缘设备或网关上运行,处理从 OT 传感器收集数据以及与其通信。这些服务支持众多行业标准协议,以快速集成新旧系统。
  • 核心服务驻留在网关平台或内部部署的雾服务器上,可提供本地数据持久保存、命令功能和配置信息。核心服务还提供设备监控和管理等更复杂的功能所需的基础设施。
  • 导出服务位于网关、内部部署的雾服务器上或云中,可对要发送到企业的数据执行转换、设置格式和筛选操作。这对于确保将 OT 传感器数据导出为与企业数据模型兼容的格式(例如 JSON)非常重要。

除了这些基本服务之外,松散耦合的 EdgeX Foundry 微服务架构还支持可选服务,例如本地分析、安全性、计划、设备管理、警报和数据记录,可针对正在处理的应用程序添加、删除或定制这些服务(图 4)。

图 4. 将 EdgeX Foundry 的核心服务与本地分析等可选微服务相结合,可帮助物联网开发人员快速定制软件堆栈以满足应用程序需要。(资料来源:EdgeX Foundry

这些微服务使用 REST API 相互通信,这可最大程度降低实时应用程序的通信延迟。因为 EdgeX Foundry 可以在单个硬件平台上支持很多应用程序和服务,综合物联网部署所需的独立系统更少。随着功能整合到越来越少的系统中,同时还最大程度地减少了安全漏洞和故障点。

面向微服务的微型计算机

EdgeX Foundry 贡献者继续优化架构的性能,目标是在单个 Raspberry Pi 3 设备上运行所有设备服务、核心服务和导出服务。此实施的目标启动时间设置为不到一分钟,并且跨各服务层的数据引入、处理和执行的延迟达到亚秒级。

当前容器化的核心服务软件占用空间小至 113 MB,启动时间在 10 秒以下。这使得 EdgeX Foundry 软件堆栈与 Dell Edge Gateway 5100 等系统的兼容性更好。该堆栈基于英特尔凌动 E3825 处理器,带 2 GB DDR3L-1067 MHz RAM,并支持 32 GB 固态盘驱动器。

微服务位于边缘中任意位置的灵活性

对于物联网开发人员来说,EdgeX Foundry 的松散耦合、容器化框架意味着可以在架构中功能作用最大的位置,大规模快速部署所需的功能。并且可能更重要的是,可以部署附加应用程序和服务,而不必担心会在系统的其它地方破坏软件依赖关系。这转化为更快、更多迭代的物联网软件升级和更高效、更精细的代码库管理。

EdgeX Foundry 微服务架构的其它实用程序确保从车间到云的新旧设备之间可扩展、可互操作的连接。因此,物联网组织可以将带有基本功能的产品迅速投入市场,同时保留珍贵的软件工程资源以用于增值功能、服务和创新。

要了解有关微服务架构和 EdgeX Foundry 的更多信息,请观看按需点播网络研讨会 “物联网边缘计算的微服务方法”。

作者简介

Brandon Lewis

Brandon is responsible for Embedded Computing Design’s IoT Design, Automotive Embedded Systems, Security by Design, and Industrial Embedded Systems brands, where he drives content strategy, positioning, and community engagement. He is also Embedded Computing Design’s IoT Insider columnist, and enjoys covering topics that range from development kits and tools to cyber security and technology business models. Brandon received a BA in English Literature from Arizona State University, where he graduated cum laude.

在Twitter上关注 Follow on Linkedin Brandon Lewis 的更多内容

无上个文章

下个文章
太阳能摄像头让监控更方便
太阳能摄像头让监控更方便

监控市场通常限于易于接入电力和网络连接的地点。对于室外系统来说,这意味着只有在进行挖掘和更改其他基础...