AWS的边缘计算平台GreenGrass和IoT
为什么需要有边缘计算?
如今公有云和私有云平台提供的服务已经连接上了绝大多数的桌面设备和移动设备。但是更多的设备比如,车辆,工程机械,医疗设备,无人机,生产机械等等在运行的时候都会产生大量的数据,但这些数据往往不会连接到云端;
- 有些时候其实是很难连接到云端,比如在极端条件下工作的机械或者不允许直接连接外网的工业设备往往不可能一直保持互联网连接,并实时上传数据,获得云平台的计算和存储能力。
- 很多设备需要对数据有实时的响应,比如医疗器械和精密工业设备等,云平台的数据中心是集中式的。云平台连接到终端设备的延迟是不可控的,虽然我们能够通过技术手段确保数据中心服务的高可用性,但是互联网是没有办法确保连接的高可用性和高性能的,通过公网提供服务的云平台“心有余而力不足”。
- 所有数据都进入云数据中心是不经济的,海量的数据需要几何增长的数据处理能力。其实终端设备本身就有一定的数据处理和存储能力。应该通过边缘设备整合并提供这些能力。以减轻云平台的压力和成本。
传统的IoT架构如下图所示,其实很难满足实际的需要。如上面介绍的,云平台的储存和计算能力并不能及时和有效地发挥作用,很多时候IoT设备并不会和云端一直保持稳定的连接。
AWS IoT Core
AWS在收购了2lemetry后,以这家公司的产品为原型发展出了AWS IoT Core,作为其最初的物联网服务的核心平台。
IoT Core平台有一个设备的注册机制,注册过的设备才能够作为安全的设备连接到物联网中和云端以及其他设备通讯。AWS IoT Core支持各种主流物联网平台的语言和系统。IoT Core也支持安全和可扩展的MQTT broker,进行端到云和云到端的消息通信连接。IoT Core还有拥有一套规则引擎机制,可以定义和过滤数据传输,并且能够和AWS的各种服务进行集成,包括Lambda。
GreenGrass简单介绍
GreenGrass则弥补上了AWS云和IoT设备之间的中间段,主要处理的就是边缘计算这一部分,尤其在和AWS云服务中断同时也能够继续运行,甚至可以在边缘设别上继续执行Lambda应用。通过GreenGrasss,开发者们把一些实时处理和响应的能力下沉到边缘计算设备。亚马逊在2016年就启动了GreenGrass项目,当时是作为AWS IoT的线下网关存在的。随着最近几年边缘计算的理论和实践的发展,事件驱动编程和机器学习接口成为了边缘计算的发展和变革的新动力,GreenGrass在AWS的IoT体系中也变得更加重要。
Greengrass由两个部分组成:Greengrass Core和IoT Device SDK,
- Greengrass Core是Greengrass的Runtime,核心系统功能。可以执行AMS Lambda,进行消息传输,设备遮蔽(device shadows),安全性保护已经和云端通讯。
- IoT Device SDK, 用于和Core通讯,发布和接受Greengrass的消息。
- 通常IoT设备都不是独立工作,各个设备之间能够通讯和协作,同时不同的Greengrass Core之间也可以协作。
Lambda是AWS的一个serverless应用框架,支持在AMS云服务中直接运行代码的方式工作;在Greengrass上,AWS实现本地Lambda机制,即在设备无法连接外部网络的时候仍然能够进行数据处理和运算。提供了sandbox和本地设备直接执行两种模式。
Shadow机制,使用JSON文档定义设备的状态和Lambda功能,同时能够和云端同步,或者只在本地保留和处理数据。
IoT设备和Greengrass的通讯方式采用的是MQTT消息机制,发布和订阅的机制,这样其实简化了通讯和同步的过程。
最后要提到是:在最近的版本中,AWS IoT Greengrass加入了机器学习执行功能,可以下载Amazon S3 bucket上储存的训练好的机器学习模型,在边缘设备上执行人工智能识别等任务。
原文地址:https://www.cnblogs.com/yangjian2006/p/12310830.html