AWS的边缘计算平台GreenGrass和IoT

为什么需要有边缘计算?

如今公有云和私有云平台提供的服务已经连接上了绝大多数的桌面设备和移动设备。但是更多的设备比如,车辆,工程机械,医疗设备,无人机,生产机械等等在运行的时候都会产生大量的数据,但这些数据往往不会连接到云端;

  1. 有些时候其实是很难连接到云端,比如在极端条件下工作的机械或者不允许直接连接外网的工业设备往往不可能一直保持互联网连接,并实时上传数据,获得云平台的计算和存储能力。
  2. 很多设备需要对数据有实时的响应,比如医疗器械和精密工业设备等,云平台的数据中心是集中式的。云平台连接到终端设备的延迟是不可控的,虽然我们能够通过技术手段确保数据中心服务的高可用性,但是互联网是没有办法确保连接的高可用性和高性能的,通过公网提供服务的云平台“心有余而力不足”。
  3. 所有数据都进入云数据中心是不经济的,海量的数据需要几何增长的数据处理能力。其实终端设备本身就有一定的数据处理和存储能力。应该通过边缘设备整合并提供这些能力。以减轻云平台的压力和成本。

传统的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上储存的训练好的机器学习模型,在边缘设备上执行人工智能识别等任务。

AWS的边缘计算平台GreenGrass和IoT的更多相关文章

  1. Polaristech 刘洋:基于 OpenResty/Kong 构建边缘计算平台

    2019 年 3 月 23 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·北京站,Polaristech 技术专家刘洋在活动上做了<基于 ...

  2. KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码

    KubeEdge开源背景 KubeEdge在18年11月24日的上海KubeCon上宣布开源,技术圈曾掀起一阵讨论边缘计算的风潮,从此翻开了边缘计算和云计算联动的新篇章. KubeEdge即Kube+ ...

  3. 边缘计算在物联网(IoT)当中的运用「物联网架构探索系列」

    这里记录的是我对物联网架构的学习.探索和思考,希望对你有所启发…… 边缘计算是指在靠近物或数据源头的一侧,采用网络.计算.存储.应用核心能力为一体的开放平台,就近提供最近端服务.其应用程序在边缘侧发起 ...

  4. 北美KubeCon新风,正把K8S魔力带向边缘计算

    作者:DJ 审校:Kevin·Wang 1. 容器生态圈新的创新方向 2018年容器技术圈的年终盛典北美KubeCon终于在西雅图落下了帷幕.这次北美KubeCon总共吸引了8000多观众参会,创下历 ...

  5. 阿里云如何基于标准 K8s 打造边缘计算云原生基础设施

    作者 | 黄玉奇(徙远)  阿里巴巴高级技术专家 关注"阿里巴巴云原生"公众号,回复关键词 1219 即可下载本文 PPT 及实操演示视频. 导读:伴随 5G.IoT 的发展,边缘 ...

  6. KubeEdge,一个Kubernetes原生边缘计算框架

    ​KubeEdge成为第一个Kubernetes原生边缘计算平台,Edge和云组件现已开源! 开源边缘计算正在经历其业界最具活力的发展阶段.如此多的开源平台,如此多的整合以及如此多的标准化举措!这显示 ...

  7. 5G 与 MEC 边缘计算

    目录 文章目录 目录 前言 参考文献 通信网络 核心网演进之路 早古时期 2G 网络架构 3G 网络架构 4G 网络架构 5G 5G 网络的需求 5G 网络架构的设计原则 5G 网络的逻辑架构 5G ...

  8. 阿里云物联网边缘计算加载MQTT驱动

    写在前面 本文在LinkEdge快速入门样例驱动的基础上,加载了MQTT订阅的客户端,使得边缘端容器可以通过MQTT获得外部数据. 1. 系统需求 物联网边缘计算平台,又名Link IoT Edge[ ...

  9. 阿里云杨敬宇:边缘计算行业通识与阿里云ENS的技术演进之路

    近日,阿里云杨敬宇在CSDN阿里云核心技术竞争力在线峰会上进行了<5G基础设施-阿里云边缘计算的技术演进之路>主题演讲,针对5G时代下,行业和技术的趋势.边缘计算产业通识以及阿里云边缘计算 ...

随机推荐

  1. 1029 旧键盘 (20 分)C、Java、python

    题目描述 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出 肯定坏掉的那些键. 输入描述: 输入在2行中分别给出应该输入的文 ...

  2. 输入URI,按下回车发生了什么?

    当我们输入URL,按下回车发生了什么? 这个题目很俗套- -但是是面试经常出现的题目了.今天听尼古拉斯•屌•大斌哥介绍关于从URI到浏览器呈现给我们页面发生了什么.感觉收获颇多.索性就翻阅了一些其他资 ...

  3. Arrays.asList 返回值类型

    public static void main(String[] args) { Integer[] datas = {1,2,3,4,5}; List<Integer> list = A ...

  4. react 表单(受控组件和非受控组件)

    我们知道表单元素与其他的普通DOM元素来说是不一样的,它们保存了自己的一些状态. 我们主要说的就是表单元素中的受控组件和非受控组件. 受控组件就是这个组件的状态是我们(react)控制的,这个组件的行 ...

  5. es lucene搜索及聚合流程源码分析

    本文以TermQuery,GlobalOrdinalsStringTermsAggregator为例,通过代码,分析es,lucene搜索及聚合流程.1:协调节点收到请求后,将search任务发到相关 ...

  6. ArcEngine 创建要素,删除要素,生成网格,渲染图层(VB)

    示例代码:https://github.com/yu969890202/ArcEngine/tree/master/WinFrom_ArcEngine_PointDistribution博客后面有两张 ...

  7. Arrays.sort() VS Arrays.parallelSort()

    英文原文地址:Arrays.sort vs Arrays.parallelSort 作者:baeldung 翻译:高行行 1. 概述 我们都使用过 Arrays.sort() 对对象或原始数据类型数组 ...

  8. 修饰符new与override

    new:在作为修饰符时,可以隐藏从父类的继承的成员. override:修改父类的方法.属性. 上代码比较清楚: using System; using System.Collections.Gene ...

  9. 【C_Language】---C文件学习

    ---恢复内容开始--- 又看了一遍文件的知识点了,断断续续已经看了2-3遍,也就这次花了点时间做了一下总结,以后我想都不会再去翻书了,哈哈. 1. 基于缓冲区的文件操作2. 打开关闭文件3. 单个字 ...

  10. dp-最长公共子序列(LCS)

    字符序列 与 字符字串的区别 序列是可以不连续的字符串 , 字串必须要是连续的 . 问题描述 : 给定两串字符串 abcde 和 acdf , 找出 2 串中相同的字符序列,观察知 相同的字符序列为 ...