大家好,我是来自酷碑社区的美天的学飞下面又来为大家介绍一下如何使用酷碑在不稳定的网络环境下然后来管理这种大规模的这种边缘机器下面就开始证实内容首先这里我放了一个其实是边缘计算的整个一个层次机构图但是从这个图上就是从右边往左边的可以看右边我这里画的是一个中心云在往左边应该是省级边缘这往边上是一个第十边缘这往边上是我们一种移动或者是一种现场揭露的边缘这里我画出它的一句就是从其实从最中心的右边的数据中心一直到我们的其实最末端就是我们的现场揭露它整个就是这个边缘计算它揭露的一个特点就是它越到这个末端就是我到这个现场的设备端它的设备数量会越来越多然后它就是跟中心侧这边连接的网络也会不太稳定比如说像我们在产生的数据中心它可能都是插网线它像我们这个像现场的这些设备或者是一些省市级第四级的边缘跟中心与连接的它往往如果不拉专线的情况下就是也不太稳定的网络这样造成的就是说我们如果想在中心云上通过中心云来管理我们这些省级第四级甚至说是现场的一些传感器设备对中心云上统一管理就会带来一些困难就在这种不稳定的网络环境下我今天就带了这个问题讲一下就是我们Kubeh如何来在不稳定的网络环境下来进行这种优化这个就是我这里简单罗练一下就是为什么需要边缘计算这里我大概过一下就是我们传统的就像我们的云计算都发对数据中心里面就这里我们为什么还需要一个边缘计算就是随着我们其实现在越来越的中端设备这个算力越来越强了其实我们就像我们一些中端摄像头我们都希望就是说我们其实在我们中端产生这些数据的能够在中端尽快处理响应对然后直接给拥护返回对除非一些比较那种就是后期要处理的数据在上雨这个就是边缘计算它目前的一个趋势这里我罗练了四点第一个就是低延迟就是我们在有一些可能需要现场快速响应的所以说我们在就是在这个靠近用户车这边就把它处理掉第二个就是海量数据就是我们大量的这种设备它产生这种大量的数据不可能都到云上所以在那个就是我们的靠近用户车先处理一下或者脱民或者是进行一些压缩最后在上雨好第三个就是涉及到一些安全就可能大家觉得我的数据全部到一个中心运用或者这种安全性可能会有问题所以我还是希望说本地先进行一下脱民处理然后再到的云上这样会更安全好最后一个就是我的一个本地自治的能力就是像我们这么多这种设备像我们比如智能车或者什么摄像头它如果跟这种中心运用上断开我如何能在本地能够就是稳定的运行对这也是边缘计算里面比较有意思的点好这个就是边缘计算现在的就是四大因素推动的边缘计算的发展好下面我们先看一下可能性价格可能性价格大家应该比较熟了然后就像我左边画的它上面就是一个控制面控制面其实就是我们的MASTER下面就是数据面数据面其实这里画的是那个切点对它其实可能性价格的设计是最初的设计不过现在很多都是把它运行在数据中心数据中心就意味着它有稳定的网络其实像我们的下面这个节点它跟MASTER这边其实有一个稳定的网络连接它可能是机制的也需要依赖有稳定的网络对这里面其实有一个比较出名的机制就是comment在这里面向它节点GAPXO或者它上面的控制面上的control manager调动器跟GAPXO连接也都是通过一个叫listwatch的机制listwatch的机制我大概介绍一下就是比如我这个客户端在刚开始连上它会首先进行一个listlist就是把我关系的东西都打回来以后再根据这个watch就是一个一个的时间然后apps那边推下来这里面存在两个问题第一个问题就是说比如说我这个节点离线交叉时间比如说5分钟10分钟甚至更长时间它在连上以后就会触发一个list的操作list就是它会把它关系的数据都拿回来不管说之前有没有这样的话就造成一些一种于数据的这种传输这样在我们边缘本身这种败款受限的情况下它就会造成一些问题第二个问题就是它那个watch往回推的时候缺乏一些就是这种可靠的传输的机制其实你有没有到达客户端客户端有没有处理其实是不知道的所以基于这两个我们其实在cubanage里面就是做了一些增强下面就是我还是罗列一下就是我们当初想基于cubanage架构做一个病院计算的平台但是我们是怎么考量的就是有什么优势和就challenge 有什么优势和挑战优势我左边也就不多介绍了以前就是运远生活KBS的很明显的优势比如说我们的第一个容计划的工作负载这样的话就在我们病院计算尤其是像一些签入式场景的如果我们把应用容计划就是会介绍一下这种应用的适配其实我们在这种传统像签入式这种它很多的软硬件都是那种偶和的比如你换了硬件可能软件需要出行编译什么的所以如果我们容计划了以后这种快评的迁移或者兼容都会做得很好第二个就是一个通用的应用的抽象我们照相可不可以再指它的API现在其实已经形成了一个标准这样就说如果这些使用Convince API的那个就是用户也可以就是直接用Convince API来操作我们的病院平台第三个就是可扩展架构可扩展的架构就是包括一个API像Convince这边的Standee我们可以通过Standee来扩展各种API这里我们其实在病院里扩展了一些就是病院IoT管理的API下面一个就是一个就是组件的扩展比如说我们的CSSI就是网络存储这样在我们病院场景里其实也是可以用到就病院网络病院存储好下面一个就是挑右边是挑战挑战的这里分了四个部分第一个就是资源受限其实我们在很多这种病院场景里面其实它资源都是很小的比如说我们有些摄像头还有一些车载或者机器人里面它的这种资源都是很有限的所以我们还是希望对这个KBS的资源做一些裁减 倾量对下面就是不一定的网络这个也是今天的一个重点不一定的网络就是我们这个常常就是说我们病院节点各语以上它的网络没那么稳定的比如说我们移动的车摄像头甚至其他的一些场景下所以这个就要依赖我们的这个不一定的网络情况下做一些优化好下面那个就是病院自治病院自治我刚才讲了病院自治是什么概念的像KBS里的Client它现在的数据都存在内存里其实如果它挂了再起来因为它的网络是稳定的它会重新做一个listwatch把数据拿回我们这个在病院场景下因为你有时候可能比如说节点离线了然后那个刚好又挂掉了你如果不在本地保存一份可能应用就恢复不了了所以我们其实也做了个本地自治其实就是在本地做了个数据把数据缓存一下这样的话就是后面如果网络断掉然后我别远发生一些重新什么我的应用可以还是可以恢复的最后一个就是一个设备管理设备管理就是我们其实在KBS里面它有一个简单的设备管理我们认为它在就是IoT这种设备介入还是不够的所以我们定制为一套就是设备介入的这种框架后面我会简单介绍一下好上面讲了一些背景这个我介绍一下就是QB edge的一个架构QB edge的架构可以从这边可以看到它分为云 边 端 三侧云上就是我们可以看到有一个CobatentX的一个控制面它就是个Master我们都没动过旁边可以看到有一个cloade call然后还有一个H call这里大家可能会有疑问就是为什么你们这里需要一个cloade call对 就是我刚讲了因为我们要基于这种不稳定的网络里面是做了一些优化所以这里我们其实就是做了一个cloade call对 然后下面相应的有H call然后cloade call呢这边可以看到我这边给它里面组件裸裂了一下有H controlDeus control还有cloade hub这个cloade hub这里面就是一个很关键的就是数据传输的模块它跟H call这里有没画出来它其实这里有个H hub就是cloade hub H hub然后配合会做一些数据传输对到上面整个的一个流程就是我H control从Manage这边listwatch数据拿回来然后会给到cloade hubcloade hub会传到我们这个H hub这里就是说我们这个cloade hub和H hub这个传输相比这listwatch有什么优势呢就说像我刚讲的listwatch它可能会出发这种就长时间断开出发这种realist的realist这样的话就是对我们其实中心云上这种带关销号比较大然后我们cloade hub和H hub就是我们在里面做了一些就是真谅传输的控制就说比如说我有一个数据我已经传过了好 那我这边云上就记录下来了下次即使是你边缘端再连上来我就不会重复传输了我只会传输我最新的更新的数据对 这就是一个差量的一个数据传输这样就减少了像cloade hub里面它那个realist带来的销号这是第一点第二点就是我们cloade hub跟H hub传输它这个数据还会做一个可靠的这个教验就是我cloade hub传输了一个数据然后我这个H hub这边会给它回一个响应只有我这H hub这边的响应上去了我cloade hub只认为是传输成功了如果这边没有响应那我cloade这边认为你还没收到 我就会重视直到你收到为止这样我们做了一个可靠机制这里可能大家又会有一个疑问就是说你做了这个可靠机制因为你发下来下面还会给上面回一个响应这样的话就是说你这会不会就是本身对性能有一些损耗因为你还要响应有效率上去其实这里我们也做过一些大规模测试因为我们的响应只是回复一个信号现在没啥 就是没什么数据就是控制信号它其实数据量很小对整个性能的跟我们想list的就是我们本身的业务数据相比是很小所以它的消耗可以忽略不济的这个就是我们云边通道针对这个不稳定网络做了一些优化这个是网络通道的优化后面我讲规模部署的时候还会介绍一下其他的优化这里还有一个可能大家又会有疑问就是说你把云边通道都改掉就是把listwatch就改掉就是我们其实用很多应用像小operator 像CNI或者CSI插件它在这种节点上运行本身就依赖于我们listwatch机制就是你这样改了会不会有问题其实我们在边缘AGCALL这里起了一个很简单的小server这个server是接用KPS API的加上你边缘部署的那些需要用KPS接口的operator或者CSI插件都可以从这边来获取数据这个就是我们既保证了我们在不稳定的网络下进行的一些优化又保证了我们在边缘上的一个生态的进入这个就是我们整个针对不稳定的网络做的一些优化整体架构我就先介绍到这里下面就是我先结合两个案例来给大家介绍一下我们为什么对这种不稳定的网络优化就是需求这么强烈好 第一个这个案例就是这是一个上汽的一个一个案例上汽就是他们把code edge装到了他们的那个车里对 这个是整个架构图也是分为云 边 端三次我都会介绍一下云上就是他们的中心云部署了一个commodities的控制面一个master然后这边就是部署的我们code edge那个cloth call对cloth call就是然后边缘那个节点可以接入然后他对他的每个车里布置了我们的 edge call就是刚刚那个边缘节点上的引擎然后再接入控制他车上的这些传感器这样其实他有个特点就是我右边列出来了第一个就是他这个规模非常大他这个车呢上量的话都是几十万甚至上百万台的车对然后他这么多车呢其实都通过无线然后连上来的这个网络其实很不稳定的这么大规模下的比如说这个车呢经常可能会断线什么的这要就保证我们对这种效率类似的那种机制呢必须要进行一些优化使他这种数据传输量呢尽可能小因为你那么多车数据量上来对所以我们优化了只差量了而且这里还可能会做一些更新的去除比如说你一次一连串更新两个我们可能只发送后面的一个那个更新的信号下来这个是一个上汽的这个智能车的这么一个他们的特点主要就是量大然后连接不稳定下面一个案例呢就是我们的电信天云他们继续库贝尔军呢就是做他们的CDN下面呢我画了一个他们的大概整体的一个模型图啊模型图呢就分为中兴云还有他的各个锐军区还有我们的CDN节点然后中兴云呢就是在最上层一个中兴控制region呢就是各个区域他们就是把code edge的机群呢就部署到了这个region区然后呢通过code edge呢来管理他啊就是这个region区散开的CDN节点我们知道CDN节点呢其实都是散开的好这里呢他也有个特点就是我的CDN节点呢量非常大他们目前部署的这一个region区呢应该是有四五千个CDN节点对他们的都是通过一种就是没有连线的方式接到我们这个啊region区的这个控制面对这样的话就说量这么大而且呢也没有稳定的网络这就要依赖于我们这个稳定的网络下依赖于我们对不稳定网络做这种优化来使这个系统呢啊达到一个一个稳定的状态啊这两个案例呢他们其实啊有共同的特点呢就是他整个啊就是code edge的机群呢跟他散开的边缘节点呢网络连接没那么稳定对所以呢我们这也是我们这次讨论的这个重点好下面这个呢我啊化了一下就是我们啊code edge呢他的一个那个啊高可用的一个部署价格吧这个其实也是我们前面这两个案例里面啊他们说使用的部署情况好上面这个框里面可以看到呢是一个啊k8s的一个master对他里面的因为你这么大的规模上来呢像我们的apso etcd啊这些肯定也是都要啊多实力部署这个可以根据你的那个规模选择比如说三个五个啊对我们通过一个load balance接出来然后下面这个啊声音点蓝色的呢就是说我们这个code edge的code call对这里code call因为我们也是支持住多实力的嘛对code call多实力部署开啊下面呢有个load balance好在下面呢就是一些边缘节点好这里呢我们这个啊部署的话他有一个特点就是啊用户呢其实你可以根据你自己的这种业务特点选择就你边缘节点是直接连到code call上来还是先连到load balance上来再到code call上来好这事情到底什么问题呢就是我们在边缘呢其实像刚刚像他们这个车也好cdn也好他们都有一些region对这些region呢你可以根据你自己的规划把这个code call呢对应对应一些区域比如说你这一部分边缘节点接到这个code call上来另一个啊一个一个一个小区域的节点呢接到这个code call上来就是他们两个区域呢可能互不影响如果说你不关心没有做这些区域的规划呢你也可以直接通过一个这个load balance连上来load balance再给你推到后面的code call上来这样也可以实现一个啊就是啊多实力的一个这么一个效果下面呢下面一层呢就是dressdress呢这个是跟我的node啊直接连接呢就是啊你你直接跟他的node相随上就行这个没有什么特别的这里呢我就讲一个我们这个啊大规模那个原理吧就说其实啊我们就是很多边缘场景的用户呢他们也是对我们有些诉求就是你想我们的全都数据中心里面呢可能他的一些节点呢就是像我们这种服务器然后这边缘节点呢就是刚刚讲的那些散开的设备这些设备的量是很大的所以我们的用户呢也是对我们有期望就是希望你们这个系统呢就接入这些边缘节点量呢边缘节点量呢能比那个啊就在数据中心像kbarc的节点呢规模更大比如说kbarc呢可能是几千我们的设备呢可能是几十万上百万就是希望你们单几群的规模呢能够更大一点好这里我讲一下我们为什么能就是支持更大规模呢就是像我们在kbarc里呢其实我们这些边缘节点呢他直接连接到APS2上来的其实在我们code edge呢我们通过cloud靠这里呢又缓冲了一层对这样的话就是达到冲的这一层缓冲了就是我们可以支持更大规模的节点对这些节点呢你可以连到cloud靠上来我们cloud靠理论上来说呢可以是很多实力而且很多个就是你的节点呢可以接上来对这样实现一个啊这种大规模的一个目的吧下面一个呢就是还有社区很多同学关注的啊就是我们啊怎么测试就是说我们要进行一些规模压测怎么来测呢这里我就介绍一下我们这个测试方式啊左边呢就是我们测试的一个啊车价格大家可以看到我们下面呢就是下面浅蓝色这部分呢是一个k8s集群这个集群呢就是一个标准的集群部署起来就好了对蓝色的它是master啊后面vm呢这一个一个一个节点好上面这个升蓝色的呢就是我们一个cool by 局的一个集群其实其实它是一个cool by 局的云端就是这里是那个cloud靠那部分好就是说我们在压测的时候边缘节点怎么接入呢可以看到下面这个黄色的这一个黄色的其实它是运行在下面这个集群里面的一个应用就一个pod就是你其实在下面这个集群里布一个pod这个pod呢就是我们把a 局靠呢给它容器化掉然后通过一个pod呢对这边提起来对然后你这边部署一个pod它泡得起来以后连到上面来呢就会显示是一个节点这样的话呢就是我们可以在下面这个集群里比如说布啊一万个或者甚至是多少个pod它在下面提起来然后上边呢就会注册成弄的这边上面呢就会看到有啊一万个节点对这样的话就是其实是啊节省的资源对我们测试的时候操作也更方便这是一个部署的模型对这样的话就是其实可以给一个比例放大比如说你这个节点里可以跑像couplet默认比如说是110个我们其实这里如果你测试的话资源各团可以调大一点比如说跑200个这样的话就是我有这里有10台机器呢就可以模拟2000个比如说有20台机器呢可以模拟4000个甚至你再搞到50台机器呢我就可以模拟上万种节点连上来的种场景对这就是一个啊我们这个测试的一个部署的这么一个框架吧好后面呢其实我们这个框架呢也会在社区啊给大家就是啊做一个工具啊或者什么的方面大家可以如果想测的话可以直接用起好右边呢这里啊我练了一些就是我们测试的一些指标吧比如说实验啊吞吐啊scalability啊就是性能就多少起点多少泡的还有像我们云上的cpu memory对这个呢也是都是我们测试的一些指标吧好下面呢就是针对呢我们这个不稳定的网络呢我们可能需要专门的做一些啊就是这种网络故障注入呢达到我们这种不稳定网络下测试的目标对像其实像k8s它的那个啊规模测试力呢啊就是没有测这一块我们这不稳定的网络测试呢我这里练了三个点啊第一个呢就是有没有网络断开这个断开呢主要模拟的就是我节点的大规模节点的上下线比如说我像我能汽车你那么多汽车跑在那里肯定同时呢会有啊很多规模这种节点同时上下线这样的话就是看下他这么大规模同时上下线会不会造成问题我们这里怎么操作的呢就是其实我把这个节点上的就是这边节点上的这个网络给他断一下然后来模拟这个节点的理线网络里其实你把这边这个就是我打红叉这里你网络一断开啊其实他这个网络像像像就跟云上这边断开然后然后这个他通了啊上线就模拟这个节点的上下线好第二个呢就是网络实验网络实验呢就是我们在这里面的注入一些啊社区有很多工具啊我们注入一些这种网络实验的这种下载故障注入然后他在实验下然后观察他的这个整个系统的这种微信啊性的好第三个呢就是网络带宽的控制啊这个就很好控制了这就是我们在或者直接在云端这里可以啊把那个网络带宽给他限制一下好这样的话就是啊我观察一下这种低带宽这种情况下他性能这些会怎么样好后续的我们也是很会整个把这个测试报告啊或者我们部署的方法或者社区发布一个报告再给大家那个参考一下好这个是一个测试的方法好啊上面呢就是我整个介绍一下我们这个大规模部署还有测试的一些流程好下面呢我给大家介绍一下我们社区吧因为我们本身是开源社区嘛好像克败区社区呢我们最早是在18年开源然后在19年进到CCF在去年的2020年呢就成为了这个幅画项目对其实在今年的我们也迎来了很多大规模的一些商用落地像我们的cd啊汽车啊好项目的十大下面这些starfalk还有我们现在有那800多的那个项目的贡献者200多的这种显带码的贡献者还有六十家的这个伙伴机构等会我介绍一下好我们根据那个现在业务场景呢也建立了一些seq和working group比如说我们的ai device iotmec还有wireless还有我们的机器人好大家呢对这些感兴趣呢都可以后面到我们的这个社区呢可以关注一下好这个呢就是我刚讲的我们社区的一些伙伴大家可以看这里面有国内位的有像的arm三星还有我们国内的运营商以及一些其他的云厂商像华语云docklaude史书云kobster协云伯伟云这些还有呢有一些科研机构他们呢也是用来会做一些科研然后这种整个内容呢就要这里正了这个这里呢就是社区的一些资源就是包括我们的快放网在get hub slack大家可以感兴趣可以关注一下好还有一个呢就是我们社区呢每周会开一个社区立会大家说说有什么需求啊什么的都可以到我们立会上来反馈或者讨论一下对我们的立会的这个信息呢你可以到我们get hub那个cobadge的那个主库的report readme里面查一下这个meeting的信息好下面呢啊一些文道manlist data大家感兴趣的话就可以关注一下好好这里呢最后一页呢我列了一个我们cobadge社区的一个那个公众号啊公众号呢每天呢会推一些cobadge的一些文章对如果呢你有一些啊跟cobadge或者边缘计算相关的文章也可以给我们投稿直接在我们公众号的后台回复都可以下面呢就是一个二维码呢是我们国内建了一些cobadge的微信群啊你如果想加入我们的群呢就扫一下这个码然后联系一下我们的那个社区小助手然后呢会把你拉到我们的cobadge群里来我们一起来啊探讨一些问题好今天呢大概内容就这样希望呢大家加入我们跟我们一起建立一个我左边写的多礼遇多场景通用的一个边缘计算平台呢啊通过我们平台呢是云原生无处不在好好谢谢大家