简介:云计算的出现促使物联网实现爆炸式增长。在设备规模和业务复杂度不断攀升的趋势之下,边缘计算因其能够将计算能力更靠近网络边缘和设备,从而带来云性能成本的降低,也在这波浪潮之下得到快速发展。

作者 | OpenYurt 社区

云计算的出现促使物联网实现爆炸式增长。在设备规模和业务复杂度不断攀升的趋势之下,边缘计算因其能够将计算能力更靠近网络边缘和设备,从而带来云性能成本的降低,也在这波浪潮之下得到快速发展。

诚然,物联网边缘计算尚处发展初期,有许多挑战需要被解决。比如在大量软件及通信协议极为复杂的设备异构环境下,需要具备快速处理业务数据,并对异常情况作出快速响应的能力;另外,在大多数情况下,出于安全或其他考虑,边缘节点在物理上无法从云节点直接访问,使部署变得困难,也无法实现云到边缘的管理。这些问题都使业务的连续性、稳定性和可用性遭受威胁。

现在,企业和开发者通过开源社区就能够找到应对以上问题的解决方案。近日,OpenYurt 与开源项目 eKuiper 正式达成合作,完成了集成对接:从 v0.4.0 版本开始,OpenYurt 将正式支持部署和管理 eKuiper ,双方将共同帮助开发者轻松、高效地解决物联网边缘计算场景下流式数据处理和运维挑战。

eKuiper:轻量级 IoT 数据分析和流处理开源软件

物联网边缘计算很多场景下需要流式数据处理能力。所谓流数据是指一组顺序、大量、快速、连续到达的数据序列。一般情况下,流数据可被视为一个随时间延续而无限增长的动态数据集合,它可以帮助用户实时了解系统设备的状态,并对异常情况做出快速响应。

在边缘端,计算资源(CPU,内存等)不像在云端一般丰富,因此传统的流式数据处理框架类似于 Apache Spark 或者 Apache Flink 等,由于其安装包过大,或者部署结构与过程过于复杂、运行时的高消耗等原因,并不适合于在这些资源受限的边缘设备(工控机、网关,或者配置不高的 X86 或者 ARM 服务器等设备)上运行。而 eKuiper 就是为了解决在物联网边缘设备上的这些问题而设计开发。

eKuiper 的前身是由开源物联网数据基础设施软件供应商 EMQ 于 2019 年正式开源的 Kuiper 项目。2021 年 6 月,Kuiper 项目加入 LF Edge 基金会并更名为 eKuiper,开始作为独立的项目运营。eKuiper 的本质是一个轻量级物联网数据分析和流处理软件,可以运行在各类资源受限的边缘设备上,希望使边缘端的流式数据处理拥有如 Spark 与 Flink 的能力。

如下图所示,eKuiper 整体架构大致分为三部分:

  • 左侧为 Sources,代表数据来源的位置,数据来源可能是 OpenYurt 里部署边缘端的 MQTT Broker,也可能是消息队列、文件和数据库等;
  • 右侧为 Sinks,代表数据处理完成后所要存储的位置,也就是目标系统,目标可以是 MQTT,可以将其存到文件、数据库里面,也可以调用 HTTP 服务;
  • 中间部分为 eKuiper 的运行时,最上层为数据业务逻辑处理,这个层面提供了 SQL 与规则解析器,SQL 处理器进行处理后并将其转化成 SQL 执行计划;下面层为流运行时和 SQL 运行时, 运行最终执行出来的执行计划;最底层为存储,存储在运行过程中需要持久化的一些信息。

在 eKuiper 中,用户可通过管理仪表板来管理一个或多个 eKuiper 实例。通常,这些仪表板部署在云节点中,用于管理跨多个边缘节点的 eKuiper 实例。正如前文所述,由于大多数情况下边缘节点在物理上无法从云节点访问, 使得部署变得困难,无法进行高效的 eKuiper 云边管理。

OpenYurt 则改变了这种情况。


OpenYurt:非侵入式的边缘云原生智能平台

云原生技术已经无处不在,并被应用于“新的应用负载” ,“新的计算形态”和“新的物理边界”。作为云原生的技术基石,容器和 Kubernetes 正在通过越来越多的计算形态承载,丰富的形态也开始从传统的中心云走向边缘计算、走向终端。

通常来说,边缘场景下计算规模庞大、业务复杂,采取原生 Kubernetes 的 workload 管理模型远不能满足现实中云原生边缘计算的落地需求;并且云边网络通过公网相连,网络连接有很大不可控因素,可能带来边缘业务运行的不稳定因素,而且由于边缘节点一般位于用户网络的防火墙内部,会造成云边网络只能单向连通的客观条件,给原生的 Kubernetes 运维监控带来很大挑战;最后,无可避免地要面对边缘资源种类的多样、异构,使边缘标准化支持面临困难。

OpenYurt 基于原生 Kubernetes 构建,是业界首个对 Kubernetes 无侵入的边缘计算云原生开源平台。OpenYurt 是阿里云容器服务产品 ACK@Edge 的核心框架,由阿里云于 2020 年 5 月以开源的方式反哺业界,并通过捐赠给 CNCF,实现更加中立、开放的社区环境,成为生态兼容场景下边缘云原生平台首选项目。

如下图所示,OpenYurt 的架构设计非常简洁,是一个典型的“中心-边缘”模式。在云端(K8s Master)上通过增加 Yurt Controller Manager, Yurt App Manager 以及 Tunnel Server 组件。而在边缘端(K8s Worker)上增加了 YurtHub 和 Tunnel Agent 组件:

这样的架构设计给边缘场景下的原生 Kubernetes 能力获得以下增强:

  • 边缘单元化:通过 Yurt App Manager 组件,从单元化的视角,管理分散在不同地域的边缘资源,并对各地域单元内的业务提供独立的生命周期管理、升级、扩缩容、流量闭环等能力;且业务无需进行任何适配或改造
  • 边缘自治: 因为每个边缘节点增加了具备缓存能力的透明代理 YurtHub,从而可以保障云边网络断开,如果节点或者业务重启时,可以利用本地缓存数据恢复业务
  • 云边协同(运维监控):通过 Tunnel Server/Tunnel Agent 的配合,为位于防火墙内部的边缘节点提供安全的云边双向认证的加密通道,即使边到云网络单向连通的边缘计算场景下,用户仍可运行原生 kubernetes 运维命令(如 kubectl proxy/logs/exec/port-forward/attach 等)。同时中心式的运维监控系统(如 prometheus, metrics-server 等)也可以通过云边通道获取到边缘的监控数据
  • 云原生生态兼容:所有功能均是通过 Add-on 或者 controller 形式来增强 Kubernetes,因此保证对 Kubernetes 以及云原生社区生态的 100% 兼容;另外,OpenYurt 还提供了一个 YurtCtl 工具,可以用于原生 Kubernetes 和 OpenYurt 集群的一键式转换

简而言之,OpenYurt 使用户能够管理在边缘基础设施中运行的应用程序,就像它们在云基础设施中运行一样。

使用 OpenYurt 部署和管理 eKuiper

从 v0.4.0 版本开始,OpenYurt 项目正式支持部署 eKuiper 及其仪表板,用户可以利用 yurt- tunnel云边隧道,通过 eKuiper 的 Web 管理控制台实现对 eKuiper 实例进行配置管理,实现高效、轻量的 IoT 边缘流处理能力。

eKuiper 和 eKuiper Dashboard 组件采用原生 Helm Chart 直接部署,其中eKuiper 组件整个运行在边缘端,而 ekuiper Dashboard 运行在云端(管控端)。同时 OpenYurt 的 Yurt-Tunnel 组件通过 dns 和 iptables dnat 等机制,会自动拦截云边网络通信。因此 eKuiper 组件可以在对云边隧道无感知状态下完成云端对边缘端的指令下发。

基于以上方式,用户可以直接在 OpenYurt 平台上通过仪表板,在边缘场景下轻松管理 eKuiper,并且在浏览器中通过仪表板来及时查看服务是否健康:

社区合作规划

未来,双方还将面向 IoT 行业继续探索高效的云原生边缘中间件解决方案,并吸引更多轻量级 IoT 相关中间件加入 OpenYurt 生态,使边缘中间件真正以云原生的方式获得部署支持。此外,作为 eKuiper 的贡献者,EMQ 也将继阿里云、VMWare、Intel 后,正式成为由 OpenYurt 发起的云原生 IoT SIG 企业成员。

希望更多开发者支持并加入 OpenYurt 和 eKuiper 社区,共建面向云原生 IoT 开源生态。

扩展阅读

如果您想了解 LF Edge eKuiper 与 CNCF OpenYurt 的更多特性,请阅读下面的参考资料:

  • eKuiper Github 代码库
  • eKuiper 参考指南
  • OpenYurt Github 代码库
  • OpenYurt 官网
  • OpenYurt 教程
  • eKuiper 管理控制台教程

原文链接:https://developer.aliyun.com/article/786920?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

OpenYurt 联手 eKuiper,解决 IoT 场景下边缘流数据处理难题相关推荐

  1. 干货 | 解决分布式场景下数据一致性问题,我有办法!

    此次分享的缘由 支付重构 考虑支付重构的时候,自然想到原本属于一个本地事务中的处理,现在要跨应用了要怎么处理.拿充值订单举个栗子吧,假设:原本订单模块和账户模块是放在一起的,现在需要做服务拆分,拆分成 ...

  2. sqlserver检测到基于一致性的逻辑_面试官;解决分布式场景下数据一致性问题

    在这一篇中主要回答目前分布式事务问题是怎么解决的?行业中有什么解决方案?这些解决方案分别有什么优缺点?别人是怎么做的?我们可以怎么来做? 支付重构 考虑支付重构的时候,自然想到原本属于一个本地事务中的 ...

  3. RocketMQ Streams在云安全及 IoT 场景下的大规模最佳实践

    本文作者:袁小栋,Apache RocketMQ Committer,RocketMQ Streams Cofonder,阿里云安全智能计算引擎负责人 RocketMQ Streams简介 Rocke ...

  4. 先查询后修改并发的时候sql_如何解决并发场景下扣款的数据一致性问题?

    1.场景介绍 场景1:扣费,企业账户送流量或者红包,用户签到领取.此场景下就是多用户对某一个账号的并发扣款: 场景2:充值,打赏给主播,这种场景是多用户对同一个账号进行打款,但是方案和问题和场景1是一 ...

  5. AliAGC 自动增益控制算法:解决复杂场景下的音量问题

    音视频会议,直播连麦以及短视频已经成为人们工作.教学以及娱乐的一部分,其背后都离不开音视频实时通信等关键技术的广泛应用.音频方面,可预见的是客户业务形式的多样性,环境的复杂性,以及接入设备的差异性会带 ...

  6. 关于如何解决特定场景下WPF4.0中“XamlWriter.Save序列化限制”问题的一种思路

    问题背景      笔者最近使用ArcGIS Server WPF API 开发一个能够实现所见即所得的基于Xaml的图层符号编辑功能.这个功能主要目的能够让用户以Xaml的形式来定义图层符号,并能够 ...

  7. 光安检场景下危险品检测

    搬来了 之前东家的东西哦~~ 复杂视觉场景下的目标识别任务有很多亟待解决的问题,也一直是学术界研究的焦点.计算机视觉顶会ICCV 2021接收了一篇由北京航空航天大学刘祥龙教授团队.中国科学院软件研究 ...

  8. ICCV 2021|复杂场景目标检测——科大讯飞等提出X光安检场景下危险品检测基准(已开源)...

    关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 计算机视觉研究院专栏 作者:Edison_G 复杂视觉场景下的目标识别任务有很 ...

  9. 危化品爆炸场景下的应急通信系统解决方案

    生产危化品/石化产品所用的原料.中间体甚至产品都具有易燃易爆.剧毒,腐蚀的特性.生产大多在高温.高压.高速.低压.深冷等苛刻条件下进行,经常因处理不当而发生火灾或爆炸事故,造成人员伤亡和经济损失.因此 ...

最新文章

  1. POJ 3784.Running Median
  2. gaia引擎分析(二)场景管理
  3. php中echo js代码,JS有没类似PHP的echo效果?
  4. max格式转obj小工具_Python写图片格式批量处理工具!你还一张一张转格式吗?
  5. Python——sys.stdout.flush()方法的作用
  6. 取石子游戏(信息学奥赛一本通-T1218)
  7. Servlet、Struts2以及SpringMvc中的线程安全
  8. 【智能优化算法】基于混合布谷鸟算法和灰狼算法求解带单目标优化问题附matlab代码
  9. 保险H5页面、新增模板设计记录
  10. QQ城市达人接口编程及经验分享2--新接口
  11. 单片机中code、data、idata、xdata等关键字意思
  12. python使用xlwings库操作Excel常见操作
  13. Worktile 中百万级实时消息推送服务的实现
  14. 软件架构设计---软件架构评估
  15. Intellidea创建maven project遇到的问题
  16. 视频教程-Jira敏捷项目管理(1)-Linux
  17. 一分钟搞明白什么是维度,什么是事实,什么是度量,什么是粒度
  18. 广州小学生米饭行为实验:米饭被大骂一个月会变臭
  19. 2018华为软件精英挑战赛总结及代码
  20. 交叉编译tftpd32嵌入mini2440小板tftp撩起jffs2系统的fs2410小板:)in.tftpd即tftpd

热门文章

  1. arcgis 圈选获取图层下点位_ArcGIS小技巧——提取面要素的质心点
  2. python中yield的用法
  3. elasticsearch mapping之dynamic
  4. 子弹图(Bullet chart)绘制很难吗?绘制技巧整理送你~~
  5. 一文学会设置 Jupyter 主题与目录
  6. GitHub 开源神器:堪称作业终结者!
  7. 漫画:什么是狭义相对论?
  8. as my sql 后面加表达式_Lambda 表达式有何用处?如何使用?
  9. kvm虚拟机设置万兆网卡_SR-IOV 10Gb 万兆网卡支持
  10. 熵(Entropy),交叉熵(Cross-Entropy),KL-松散度(KL Divergence),似然(Likelihood)