华为云IEF智能边缘平台十万边缘节点管理技术深度解读学习笔记

在3月27-28日举办的华为开发者大会2020(Cloud)上,华为云智能边缘平台IEF首席架构师张琦深度解读了十万边缘节点的管理技术,以及如何通过云原生技术和边缘计算结合,构建边缘计算实战场景中所需的业务下沉、云边协同及离线自治等关键能力。

边缘云公众号对分享内容做了学习摘要,以下是学习笔记,请各位同学指正:





云原生的特点:

  1. 核心组成部分:从服务器到虚拟机到Buildpacks到容器的演进,越来越快、敏捷、标准化;
  2. 隔离单元:更轻的体量和更快启动速度;
  3. 不变形:从宠物到牛群,现在的云原生是多实例横向扩展;
  4. 供应商:开源技术地位越来越高。

云原生边缘计算与传统边缘计算:

  1. 更灵活、快速;
  2. 增加复用性;
  3. 更安全,鲁棒性增强;
  4. 大规模系统管理的人效提高;
  5. 数据价值越来越多,效果越来越强。

IEF简介:

华为在公有云上推出的服务,重点是边缘智能,特点是云端集中管理,轻量化,边云协同,开放的开源生态。

边缘系统对云原生的六大诉求:

  1. 资源系统;
  2. 数据系统;
  3. 智能协同;
  4. 应用管理协同;
  5. 业务管理协同;
  6. 服务协同。
  1. 应对服务协同:使用EdgeMesh技术沟通云边

边缘会面临更加复杂的场景,如果微服务位于不同的边缘,如何透明地访问,从EdgeMesh服务发现角度讲,不能依靠于中心式的DNS,在每个边缘节点构建小的嵌入式DNS,服务A访问服务B,本地DNS劫持到流量,根据服务A要访问的服务的不同来解析特有的虚拟IP给服务A,以可定义的负载均衡策略转发到服务A上。

2,应对业务管理协同:将K8S部署模型延伸至边缘

随着越来越多的边缘场景,边缘应用的逻辑也越来越复杂,

● 需要部署成双机热备的情形;

● 多机多活互备的场景;

● 有关联的应用同节点部署以提升应用间交互效率;

● 同一应用的不同实例跨节点部署以提升可用性;

● 依据边缘节点的不同属性将应用不属于不同分组中;

● 定义独立于节点的应用部署以实现满足条件的新边缘节点上线后自动安装应用。

  • 应对智能协同:云上训练,边缘推理
  • 人工智能服务利用云上的资源完成海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成,支持部署到云上或边缘;
  • 边缘服务将云上训练好的AI应用以容器或函数形式推送到边缘节点,提供边缘传输通道,联动边缘和云端的数据,支撑AI应用实现边云智能协同。同时提供升级、监控、日志等运维能力;
  • 边缘AI容器/函数加载模型,实时从设备获取数据,通过推理进行瑕疵检测,根据结果调整生产设备的参数,提升良品率;
  • 边缘产生的数据和推理结果周期上传到云上,用于持续型模型训练和生产分析。
  • 应对数据协同:边缘数据处理云上挖掘

实时处理在边缘进行,在云上有Dashboard。

  • 边缘侧多设备多协议数据接入;
  • 基于事件规则处理数据,不同事件类型,分别建立规则,Error类一小时内五次警报,Warning类,使用复杂规则;
  • 边缘侧直接警报,可到毫秒级延时;
  • 对重要数据进行实时统计,实时展示最新状态;
  • 数据清洗后上云归档,进行进一步挖掘和分析。
  • 应对资源协同:云上集中管理边缘资源:

对数据的建模,一方面是面向应用,另一方面是面向底层连接,对设备进行连接。

  • 边缘计算提供云-边-端的资源协同管理,在云端同一管理边-端的节点和设备;
  • 传感器、网关、摄像机、机床等各种设备通过本地网络接入边缘节点,通常会有专门的工业协议,如Modbus、OPC-US,也可以使用MQTT、Http等通用协议;
  • 通用服务器、工控机、边缘专用盒子等边缘节点通过因特网连接到云端,同时使用Http、MQTT等通用协议;
  • 资源协同:如何对节点、设备进行功能抽象,在云-边-端之间通过各种协议完成数据接入,在云端统一管理和运维。

Edge Native应用的特殊挑战:

以上讲了使用Cloud Native解决的一些问题,Cloud Native无法完全解决边缘计算的问题,边缘节点有不同的特点,分为三个方面:应用和应用管理平台、连接和故障模式、从运维到施工。

1,应用和应用管理平台

   ● 边缘计算管理模式从牛群部分回归到宠物,原因是边缘节点是地域属性,不同于云上节点,部署的节点和资源有非常强的角色化属性;

   ● 大规模的调度在边缘侧不一定能够用的上,比如说,每个收费站部署的应用是一样的,但可能某个收费站要部署不一样的应用做试点;

● 轻量化,部署的设备是多样性的,同时占用的资源尽量少;

● 半状态应用,边缘节点可能离线运行,要有自己的状态;

● 边缘节点完全暴露,要完全隔离,0信任。

2,连接和故障模式

  • 边缘侧很容易存在大面积的上下线;
  • 短时间离线;
  • 网络情况复杂,有分层。

3,从运维到施工

  • 边缘侧很多情况下不能称之为运维,只能称为施工;
  • 施工人员缺乏IT技术;
  • 没有现场运维的条件。

可裁剪和轻量化

通常情况下,边缘是非常专用化的,随着边缘用途不同,其形态是不同的,有的是室外工作,有的是室内等等,现场的要求也不同,有的对电流有严格的限制,轻量化的目的是适应多样化的边缘要求。从小的摄像头到大的服务器,部署都没有问题。

  1. 用beehive插件式的方式,在边缘开源,例如可以按需将总线拿掉,这样会更轻;
  2. 插件发现,插件动态注册后,通知到各功能模块,满足插件间的互相发现;
  3. 动态插拔,支持功能模块加载、卸载、使能等管理能力,满足业务无感知的动态升级能力;
  4. 插件通信,封装golang channel实现轻量级消息通信,LunixDomainSocket实现跨进程通信,满足插件间消息通信。
  5.  
  6. 轻量化
  7. 去冗余,裁剪cAdvisor/VolumeManager/rktManager等边缘侧不适用场景;
  8. 边缘实现,重写statusmanager/dockershim/volume等模块实现,使其适用于边缘场景。

与其他开源项目的比较,Edgecore与K3S和ACK@edge比较,轻了很多。

容器引擎的轻量化实现

同时在容器也要轻量化,构建iSulad,下面对接LXC技术,上面实现CLI和CRI的标准化容器借口,在中间使用C语言构建插件式的容器引擎,这样更加轻、更快。

离线自治的故障自愈能力

边缘侧很多情况下需要离线运行,所以在边缘侧构建分布式的调度能力

  • 构建边缘部署优选树,依据先预选、再优选的方式基于调度优先级构建优选树;
  • 构建应用级决策器,依据调度优先级的顺序对高优先级节点进行监控,决策是否接管调度;
  • 实现边缘实例调度器,依据边缘部署优选树进行节点调度决策传递,当本节点接管调度决策后,依据设置好的调度策略对应用在本节点进行调度。

最大化减少应用升级时的断服时间

应用升级需要先停止旧应用,再下载新应用镜像,最后启动新应用容器,停止旧应用到启动新应用时间间隔内业务断服。通过预下载新镜像,将断服的时间减少到10秒内。

解决大规模节点管理:应对大流量的冲击

构建服务层应对大流量冲击:

  • K8S联邦集群,多K8S集群构成联邦管理;
  • 边云消息优化,调整边缘节点的心跳周期,裁剪多余周期消息,精简边云消息结构,精简监控、日志消息;
  • 系统保护,南向保护,限制并发连接数和消息量,防止高频连接,优化边缘重连策略和重试策略,北向限流,限制并发请求数,完善监控和告警,制定处理预案;
  • 流程优化,对节点注册、节点列表查询、应用列表查询等关键流程进行优化,通过调整锁操作、整合查询等手段提升系统并发性能;分析高负载的SQL查询,通过增加索引、批量查询、优化SQL语句等方法提升响应时间,降低DB负载。

解决大规模节点管理:大规模边缘应用分发

出于成本考虑,边云通道的带宽常常非常小,大规模的应用更新会影响业务甚至中断。

  • 建立边缘镜像加速站点,类似CDN的形式,也在积极构建P2P的技术,自动同步主镜像仓库中选定的镜像,利用边缘侧本地大带宽向同一区域的边缘节点提供镜像下载服务;
  • 在3000边缘节点的规模下,将集中施工完成从一周缩短至半天。

解决大规模节点管理:批量任务工作流

  1. 大规模升级和部署
  2. 取消省界项目中,每个省平均部署的节点数3000+,应用数超高1W+;
  3. 客户需要对门架等超过1000+应用 进行批量创建和升级,一个一个部署/升级,对用户来说简直是噩梦,客户体验不好;
  4. 操作人员众多,部署/升级比较麻烦。
  • 解决方案  

构建批量任务工作流,再去调度较小的工作任务,对每个task调整具有很高的灵活性,并减轻人工的部署。

  • 增加标签过滤应用/节点功能,过滤出具有同一同种类(如门架)的应用/节点;
  • 每一次批量部署/升级对应一个Job,每一个的应用部署/升级对应一个的task,属于某个特定的Job;
  • 正对这些Job和task,IEF并发进行部署/升级;
  • 为了应对由于网络抖动、高并发流控导致task失败的问题,在页面提供重试能力。

案例一、基于IEF智能边缘平台打造智慧园区

案例二、高速公路收费管理

此部分内容摘录自网络:

KubeEdge来源于华为云IEF团队在边缘计算领域的实践,是CNCF(Cloud Native Computing Foundation,云原生计算基金会)的正式项目,也是唯一的智能边缘计算项目,当前已被Kubernetes IoT Edge工作组作为边缘计算参考架构,并已吸引60+家企业关注和贡献(如ARM、京东、中国移动、联通、浙大等),成为产业界构建边云协同架构的参考架构主要选项之一。

  KubeEdge发展至今经历了三个阶段:

  v0.1-0.3:KubeEdge宣布开源,成为业界首个基于k8s的开源边缘计算架构,支持开放云边协同、容器部署、边缘设备管理以及轻量化部署等特性;

  v1.0:KubeEdge的里程碑版本,全面支持端、边、云协同,支持EdgeMesh服务网格、EdgeSite边缘轻量级集群以及CRI集成,并引入了Quic协议;

  v1.1:该版本将Kubernetes容器存储标准CSI带到了边缘,支持对象校验组件、单击一键启动KubeEdge集群工具以及DockerShim;

  未来:更多的边缘设备协议支持、云边协同的效率、可靠性……

  KubeEdge项目的发展离不开社区的力量,当前社区诚挚邀请广大开发者的加入,欢迎每一位贡献者的参与。

视频地址: https://hdcwebinars.huaweicloud.com/watch/b7kd8b3m

请联系边缘云助手获取清晰版PDF。

文章只代表原作者观点,边缘云致力于打造独立、客观的资讯信息平台,转载请注明来源于边缘云信息平台。
分享到
长按二维码关注

参与讨论 抢沙发

评论前必须登录!

立即登录   注册

边缘云生态研究

关于我们关注我们