好事多磨 欢迎大家来到参加我们肯定记得的分享我是蔡薇 现在在Docloud是出副的容器还有Vasam 还有多云相关的一些项目然后同时也是一个肯定记得的名称的今天的话是因为身体原因需要大家口罩跟大家分享然后大家也不用担心 应该不是什么传染性疾病大家好 我叫傅伟我现在在微软 然后今天很高兴能以肯定Metaner的身份跟大家介绍关于这个项目现在的一些情况我们先看我们社区的一些增长的趋势然后根据CNCF今年出的2022年的年度报告上来看就是正在生产环境上使用肯定记以及正在评估使用肯定记的用户在他们正在变多从20年的36%增长到2022年的56%我想说是这里面应该有Docsume被Debris给掉的一些原因吧就有一些Doc可能用户现在组建的网坑的地上签对 然后这个数据也给我们Metaner带来一些压力这个是由另一个Svanteison所提供的一个Dashboard然后这个是近9个月来的一个数据然后我们现在的医术处长得非常快然后我过去几年在Metaner这个项目的时候大概活跃的医术处也就100多个然后现在已经长到了快450个了然后这里面的很多医术都是跟Docsume签营过来有关然后我们的场景变多之后对可能地的需求也在变多然后也帮我们发现了一些潜在的一些问题吧然后所有的Consolvator都来自于全球然后目前比较活跃的是美国跟和我们国家对 因为我们现在Metaner下面的压力比较大然后我们过去9个月了然后也招募了4名新的Member然后他们分别来自Docker 微软DockerLaw 以及英特尔然后我们整个社区现在还是比较健康的然后我们在过去做了两个比较重要的决定吧就是首先第一个就是我们开始支持了长期支持了一个版本然后我们以1.6这个版本作为我们第一个LTTS我们会支持到25年的2月15号然后另外一个决定就是因为我们在1.7引入了很多新的feature所以我们决定就不再发布1.8版本了我们会直接发布2.0对 关于1.6这个版本需要提点就是说它跟普通版本的差异在于我们平时对于普通的版本的话我们只接受一些security的patch但是对于这个长期支持的版本我们会定期做一些gold版本的升级然后相关的依赖的升级包括因为我们承诺是1.6会支持所有的active的commonness的版本所以我们也会定期的把那个主分之上的一些feature回合回来所以说你可以用1.6版本能一直用到25年但是需要提点就是因为我们是在25年2月份会把double给调所以我们会在24年的8月份把它变成一个普通的版本对 那个时候我们只接收关于cve相关的一些修复对 那下面的话我们就开始介绍1.7的一些特性在1.7中其实主要是增加了核心的一些功能然后还要去做了一些功能上的一些大的一些比较大的一些更新其中大家应该可以之前有关注过的就是double service还有API的一个增加它实际上就是在shame层的一部分增加一个API去更好的就管理一组肯登的一组中期然后这个是在1.17的时候我们需要去用一个环境辨量去打开然后另外就是NRI的更新然后这个互保会稍微稍后会想新介绍一下然后还有transfer serviceUthernamestVis的一些新加的一些支持还有JRBCshame的一个支持我们现在就稍微详细介绍一下Sandbox的功能然后这个部分的话实际上会涉及到3个5块吧 大概就是分别是我们是在shame层我们在shame层中我们去定义了一个出来一个Sandbox的API旁边是Sandbox定义的具体的一个函数接口然后shame层定义SandboxAPI之后然后在Kindlede这一层的话会增加了一个Sandbox的service然后在CRID这一层我们去增加了一个Sandbox的控制应该在Kindlede中增加了一个Sandbox控制的一个接口然后在CRL中去使用这个接口去进行一个刷箱的管理然后通过这种SandboxAPI的话实际上可以更好的去管理多个运行室平台就比如说在Linux,unix,windows上的也还有其他的一些重启的一些格式重启的一些形式 比如可能的VMR之类的然后我们现在来看一下Sandbox的一个逻辑吧就是它心中它到底改了什么东西它到底是怎么去运作的我们可以看到它在上层区域收抢出来了一个Sandbox controller就这一部分是在CRI这个插件中然后那个默认的话是Port Sandbox的这个控制了它实际上就是1.17的默认形式已经1.16的时候的整个的原样的一些代码也靠过来的然后它可以看到它最主要的就是这个Sandbox大家都叫有Port的Port进行的一个创建所以我们在创建一个Sandbox的时候它实际上最主要的就是通过Port来把持住整个的Sandbox的一个状态然后这个时候我们然后现在的话就是通过Sandbox API我们在Sandbox API中去通过这个在shame中去定义这个Sandbox API就可以看到Sandbox Box的这个然后我们在更上层的话是通过这个shame管理器然后我们从上面来往下看的话就是当一个这个Sandbox的创建选球到来之后这个我们会根据这个用户的一个配置或者选择通过这个configure来配置然后去选择到底是使用这个或者Sandbox还有老的那种模式这个Port进向的模式还是走的这个shame的模式如果我们走到shame的模式的话它会进入到这个remote的Sandbox的control逻辑中然后它是会访问这个content的地中的这个Sandbox的service然后它通过创建的接口去使用和之前一样的逻辑去起一个shame然后它再去创建出来这个在这个shame中去创建出来这个具体的Sandbox因为这些其中的具体的逻辑的话就是由这个Sandbox的API就是Sandbox的shame的逻辑来决定的由它可以决定是否去是否要起一些常态运行的一些进程还是说它就是在一些由于自己的某种方式来去把持住一个或者它通过其他的一种方式来去代表一个shame然后另外的逻辑就是去启动逻辑启动一个shame的话实际上也是走的这个SandboxAPI的这种方式然后它是然后后续的单元Sandbox创建好之后就会进行一些后续的逻辑就是正常的Task的创建然后当前是在1.1期中的话我就刚才所说的就是它是默认的话是需要一个需要一个环境变量来进行开启的然后它在2.0的时候我们就会把它进行作为一个默认的一种模式就Sandbox作为一个默认的模式所以我们可以去再配置Sandbox的模式是走shame的就走原始的PoodleSandbox然后另外就是NRI的更新然后它实际上并不是一个新的一个概念它在1.17期前实际上就已经有了这个概念然后它在最开始它我们可以说是0.1版本然后它是启动的是一个二进制的形式来进行一个运行它主要是通过在容器启动的容器启动前去执行一次NRI的插件的二进制来去在节点中做一些特殊的一些跟容器相关的一些处理然后在我们的最新版的NRI中我们是要最主要的就是有两个更改一个就是我们NRI现在是已经去插入到OCI和OCI之间的转换的逻辑之间然后另外的话就是对于NRI的访问的话我们也开始使用TDIBC的方式进行一个访问然后可以看到一个创建一个容器的流程的话大概就是通过一个创建容器的流程我们来看一下NRI的一个工作方式就是一个CI的请求过来之后然后它是需要去转换成一个OCI的一个格式然后下发到最底层的这个TIME中然后在这个转换的过程中我们实际上会去通过NRI去访问NRI来通过这个TDIBC的方式去访问NRI的一个插件然后去做一些OCI的这个比如说偶像设备的一些挂载然后这个4元的一些OI的一些这个调配就是OI的一些修改其中我们甚至还可以去做一些这个其他容器的一些驱逐和更新的一些操作就比如说A字元的创建可以导致导致B字元的B字元的一个这个这个CPU的限制的一些这个修改或者说我甚至可以直接驱逐掉B容器然后这个NRI中它NRI这次的话更新的时候这次更新它其实比较大的一个变动还有一个这个注册的或者说是它的一个NRI的注册的一个机制然后它分为两种一种是这个NRI的二进制的一种这个注册方式一种是这个NRI分为两种类型一种是这个二进制的一种NRI的插件然后另外一种就是一个外部NRI插件它是通过一个Socket可以看到这边的就是图上面的话就是通过这个二进制的方式可能在整个启动的时候它会去通过一个指定的那个配置的这个目录去指定了这个配置的这个目录去查找的那个NRI的这个插件的二进制然后去启动它然后进行后续的一些这个从上到下的一个注册逻辑先注册字元的插件然后进行一些配置然后同步同步就是指张可能地中一有的一些容器还有sonbox的一些信息之类的同步到这个NRI的这个插件服务中然后后续就开始进行一些正常的NRI的一些TiPC相关的一些请求然后插件也可以去RI去返向去调返向去往回调用去通知这个NRI这一部分需要去更新一些需要去更新一些其他的一些容器之类的一些操作然后在这个RI的这个NRI的插件的这种机制中的话他们是通过一个Socket来进行一个NRI的一个发现就是NRI可以在这个可能在地启动之后来进行一个再进行一个启动或者说是自己的一个这个移除之类的都可以然后地的一个启动移除可能还是有现在还是有原问题然后就是这个NRI的一个启动然后它实际上就通过这个Socket的去先把自身进行注册也就是说一个实际上一个二进制中其实NRI的一个二进制中它可以去注册NRI的插件然后后续到的地址上就一样了就是现在去进行一些RI的一些配置然后这个配置可能在这个场景台是没有的因为它自己是启动的然后这个以有资源的一些同步然后后续的一些这个GTIP的一些这个NRI请求对然后下面的话就是另外一个新的Pager然后在介绍到这个新的Pager前我们先来简单固要说可能地在下进项的时候它就做什么事情需要跟大家提示就是它跟Docker不一样是说Docker原来下进项的时候你是给是扣端给那个server端发一个请求然后服务端就server端它就直接把进项选下来了但是可能它不一样就可能地台是在扣端做的就所有逻辑其实都集中在我扣端这边然后扣端会提供一个SDK是铺铺那个铺的一个操作然后然后这个操作主要完成两件事情就是先从简单固让把数据拉到我的本地来拉到本地的content service 里面来然后你把数据都下载完之后会通过那个还会调那个div service把里面的套包解压到我的我的我的snapshot里面去所以说合金逻辑就两个就是下进项和解压但是因为我们是用SDK来做然后整个流程是很固化的所以在我们现在遇到一些新的挑战就说像那个OCI最近提出的一个叫应该是去年提出的那个叫reference API就是你可以把一个额外的描述经济它取到现有的那个镜像上去就比如说像安全供应链领域了你可以对镜像进行一个额外的描述比如说你添加一些软件物料清单或是你的镜像签名之类的对他就是对于那个领域而言他就希望说我在下镜像过程中我在下的过程中我需要去教育这个镜像是否是OK的比如说你的镜像用了一个购板门但是购板门比较老或是你用了依赖包他有重大的CV-1你没有修复所以他可以在下镜像过程中做相应的教验然后来拦截掉你就说我不需要你这个破的起起来因为你和很多问题没有修复掉但是我们现在的最重要的问题在于这个是一个SDK的APISDK的一个他这个API有一个很大的问题在于我们虽然说我们对外提供的是一个稳定的接口但是我内部时间可能会随着我版本的变化而变化所以我们不能够简单的通过加户格点的形式来做然后另外一个需求就是来自于机密计算就是机密计算有一个需求就是说我利用硬件的特性我能隔离进程包括进程所访问的数据但是普通情况下你下一个镜像化是先下到你本地然后再Unpack成一个LootFS再起这个安全容器对不对但是你起完之后其实你的数据还是在我HOST的端但他希望说我的下进像过程中我能把这个流直接导到安全容器内所以说按照这种方式的话我们需要对这个SDK进行一个很大的改动而且他的接口也不会稳定所以我们希望是把稳定的接口放到服务端然后通过在服务端加一些可配置的形式来支撑各种场景但是回过头来你看这个问题其实他本质上就是一个数据流向的管理就比如说你下进像过程中就是你的进像数据是可以在你的仓库跟你的本地进行传输以及转换的比如说你下进像的时候其实是从Reset水直接转到你本地对焦铺或者是你可以直接往这样的仓库推送甚至你可以在两个进像仓库之间打一个流把仓库A的进像B直接传到那个仓库C上去所以说他本质上是一个数据流向的问题所以我们基于这个假定了我们抽象出了Transfer Service也就是说我们Transfer Service管理是一个数据流动的一个插件就是他可以就是你可以理解就是说你每次数据的处理都可以理解是一个远到端的一个转换过程这种转换可以是简单的Copy也可以是一个加减密的过程或者是一个你解压或者是你打包的你可以根据你的需求来定义所以我们后面就变成说我们抽象的Transfer Service之后我们就会定义说你的远在哪你的目的转在哪至于你中间怎么流转其实我们可以把它交给开发者来做然后大体上是这样就是我们相当于把所有的操作都移到了服务端上去然后接下来我们在1.7面做了这事情之后我们希望在2.0能推动更多的场景的落地就是刚刚提到的OCI的API因为现在有一些业务希望说我在下经浄过程中我不需要解压因为解压过程中会带来很多的IO它可能就提前把它的进向数据就提前我准备好了我下载完之后我直接我慢了都可以用了然后甚至是说我Lazy Loading就我的进向数据很大比如说像那种大规模的它的进向可能有10个G这样子但我可能我只能读取的时候的数据可能也就只有只有1 2个G但是我可以通过Lazy Loading是我按需去读然后甚至是你这种进向签名的教验之类的我们都可以做然后甚至是说我可以对于精密计算而言我们可以把那个进向的目的端直接转到完全容器内然后我们未来会在Transfer Service直接在CI里面直接就用了然后对大体是这样的然后最后一个1.7面需要强调的一个Visual是这样就是Urenn Space然后这个Visual我觉得内核很早就很早就已经支持了但是我们为什么现在来做呢就是因为先介绍一下就是说就是你在用那个比如说你用Unshare的时候你其实是可以把一个普通用户比如说UID1001的这个用户直接映射到你容器内其实你是PID是零的就是你在映射完之后你整个进程在你的容器内其实是有很多的capability你可以做很多事情就是你可以做mount就是你原来容器想要mount在容器内mount的话你需要Private Village但是现在你不需要做这样的操作你可以在做完映射之后进程它的权量会非常大但是它仅限于在它的那个容器的环境内然后就算它讨议出去它也是个普通的用户所以说它对系统的影响比较小但是这个Visual已经很早之前就有但是我们为什么现在才说的事情是因为所有的映射的权限管理都是在内核针对这个进程的访问权限上做了优化 做了映射但是最重要的问题是你进程需要读文件文件的映射没有做对于镜像构建员他很多时候都是拿UID0就是拿路的用户去做构建所以你就算做完映射之后比如说肯尔蒂这个其实还是UID0的UID为0的用户才能够去访问但是你做完映射之后你文件系统没有做映射其实你还是无法访问的所以你想要让它访问的话你就要在它在你在你Unshare之前你需要把这个文件系统的UID0通过全球Orner把它改成101你得挨一个把所有的文件系统里面的就是所有的文件都便利一遍之后才能够去消费它但是你的镜像比如说像Passion或Notepad这种的话你的文件数目非常多如果你挨个便利的话你的IO会非常大所以我就一直没有去用它的原因在这但是后来到了内核5.12之后提出了一个叫ID Mapping的这么一个操作它可以简单的把一个目录慢了另外一个目录就直接完成了就ID的一个映射关系可能这个其实它是一个UID为0的用户才能访问但是通过这个映射之后其实你可以看到我看到的里面的数据其实就是UID1001就是你通过简单的系统调用之后你就发现我可以用这个用户去访问这个数据了所以有了这个特性之后你就不再用全球Orner的形式来来一个便利了所以说我们才开始去提这个事情也就是说为什么顾问NetX它前段时间开始做这个式的原因但是我们在1.7里面我们只是做了全球Orner因为当时我们在做的时候因为ID Mapping在5.12的时候它只是使用了常用的文件系统它到了5.19之后才支持Overlay所以我们应该是在2.0的时候才会完全支持这个场景大概1.7的feature就讲到这吧然后我们看一下2.0我们的一些规划2.0今天我在下面的展台可能很多人都在问说Centerbox什么时候可以用然后现在给大家的一个答复是这样就是我们会在北美的北美站开始之前我们发布第一个Alpha版本然后会在元旦前发布Veta然后在我们春节期间发布正式的版本然后我们2.0里面做的所有事情其实都是在把1.7里面的一些feature给商用起来基本上就看我们说的那些然后需要强调的是说我们不只是加息功能我们还在删除以前我们在老版本里面被Debrick调的一些功能如果说大家还在用这些feature的话建议做一个升级吧然后还要需要强调一点就是我们CI的一些配置也会有一些改动需要强调一点就是说因为现在大部分BodyFold都用SystemD的这些部分原来是只是配置在CI的这个配置下就OK了但是我们现在就希望这个配置挪到RoundTime层面所以说如果还在用这个配置的同学可以稍微改一改因为我们2.0里面会把这个挪掉然后2.0基本上就是我们刚刚提到的这些然后我们下面的话我们会介绍关于可能地塌周边的一些生态可能地这边实际上社区就是努力在达到一个这种灵活的然后可扩展性极强的一个这个社区生态然后现在的话实际上已经很多功能都是可以去通过这种接口化或者插件化的形式让它变得更加的灵活例如SystemShort然后OCI的运行时RoundTime的shameClient然后NR刚才说的NR的一些插件都是那种可以要用户去替代的一些模块然后另外也有一些很多的一些非核心的一些项目去加入到可能地的组织中然后也有很多的社区项目还有一些厂商的一些项目都去采用了可能地特别是可能地作为1.4以后可能地的话通过它的一个这个标准的这种JRPC Service来去做一个这个稳定的一个接口接口规范化然后另外它提供的一些客户当然的话其实也不是这些东西这些东西这些东西这些东西这些东西这些东西这些东西这些东西这些东西这些东西这些东西这些东西这些东西这些东西这些东西另外它提供的一些客户当然的话其实在整个可能地的项目中最核心的就是这个CTR这个命令然后它是一个它实际上是应该是一个一个开发性的一个工具然后并不建议在生产中去严格去依赖它的一些命令的一些这个稳定性但是它因为它的接口是和这个是比较偏底层会比较接近于这个可能地Service的这个接口的所以它在在灵活性上提供的比较大一些然后另外就是大家也可以去用这个社区的一个这个项目就是Nedokontrol这个项目的话其实这个的话是提供一个像刀客一样的这个命令行然后我外区提供了一些社区的一些这个项目的一些支持然后比如说经济的懒家载然后经济的这个前名验证之类的一些特殊的一些这个我外地一些功能然后另外就是大家可能会经常会用到这个CII control这个命令然后另外点底下的话是一些这个Kolima这类的finch这类的是一些这个上伤性的那个转车的这类的是长相采用的这个可能地来做这个采用可能地的一些这个工具那个ServiceShot的话它实际上是这个对对近相的一个这个存储还有这个层的一个管理的一个模块一个组件然后它内置它内置了一些这个对LinuxWindows这类的环境进行了一些内置的一些这个啊组件支持然后我们也可以去通过PROCUTE PLUG IN的方式去额外去去插入自己去实现的那个啊那个快照的一些这个服务然后包括例如包括例如这些这些懒家带的这些这些懒家带的这些这个这些这些这些这个快照服务实际上都是通过这个PROCUTE PLUG IN的方式去接进去的包括一些其中前三个的话实际上是成为这个可能地组织的可能地组织下的一些这个非核心项目然后其他两个的话是那个敞伤性的一个这个项目然后其实这个Untime和SMC一部分实际上是可能地最主要的最主要的部分之一然后这一部分的这个灵活的这个灵活的这个灵活的这个就是灵活的这种可扩展性实际上也保证了可能地可以在各种的这种啊杀相机制下去这个去使用然后包括最常用的就是大家可能是不愿意去使用的RAN-C它就是一个标准的OCI的一个运行时对于Linux的同期然后还有C-RAN和UKE这两个的话也是去使用其他语言来实现的这个那个中期运行时OCI的一个运行运行时他们也是在社区的比较受欢迎的RAN-C的话是这个PBS-GELS基于这个来做的一个OCI的运行时它是一个实验性的大家也可以感兴趣也可以去了解一下然后对于Windows的这个场景下的中期啊Windows下的中期的话就是这个啊HCIS-CM还有这个RAN-HCIS然后的话还有这个RAN-C的话RAN-C的话是这个最近新加入到这个Kennedy组织下的一个OCI的运行时它主要是运行这个MASAM的这个杀相然后这个后续我们会有一个详细的介绍然后其他底下几个就是比如卡塔呀这个之类的都是一些这个其他的一种这种其他的这种这种这种杀相隔离的这种实现的运行时和CM然后其中那个Khwanza它实际上是通过对Kennedy的进行也是一个最新的一个项目它对Kennedy进行一些一些这个定制化然后去目的是为了减少这个常态运行的CM然后来并且它在里边还违护了一些多个杀相技术的运行时的CM然后的话一般的CM也是个很有趣的项目它是用EPPS来做容器做容器进程的一个管理大家也感兴趣也可以去了解一下然后MASAM的话MASAM的话是一个当前发展非常迅速的一个杀相技术然后今天上午Kennedy在上午的主论坛争也介绍了MASAM技术在整个CM-CF里边的中销性然后我们这边的话就不详细去介绍MASAM相关的技术的一些核心点然后我们就不详细介绍一下MASAM核心技术我们就主要去看一下地社区和MASAM社区之间的一些一些捧出的一些火花或者说是需要做的一些事情其中最主要的就是RAMACID这个项目它实际上是一个MASAM运行室的一个最主要的就是做一个MASAM运行室的一个CM框架然后它基于RAMACID它做出来的两个而基于RAMACID做出来的这个CM它现在是有两种模式的分别是一个就是正常的模式就是正常的起CM的那种模式然后就是它会去先去启动自己的CM然后去自己去把自己再ESC出来一个自己然后去起Task Service然后去联谈然后它有一个特点就是去可以看到它通过去集成了Yuki这个运行室提供的LABOR-CANONER的这个库来保重来让这个CM可以同时运行MASAM还有这个CANONER正常的Linux运行容器也就是带一个在一个Sandbox中我们可以同时运行MASAM和Linux运行容器然后的话另外就是共享的模式共享的模式的话实际上就是相当于是CM是一个常态运行的一个多闷的一样的一个服务然后CM会去调用这个常态运行的这个服务然后去告诉它我说我要起一个Sandbox然后它会把这个它会在里面去起一个Task Service然后把地纸藏给它然后它会去连接它然后进行一些和上百一样的一样的一些逻辑然后实际上对于这个框架来说的话我们用户需要去定制化去开发的话实际上只需要去蓝色的地方就对于MASAM Time运行室来说它只需要去做MASAM Time的一些适配中间所有的事情实际上都不需要去做太多的做任何的一些修改的然后然后这个MASA的话实际上它除了这个MASA的话它除了提供这个框架以外的话它还提供了一些常态一些这个标准化运行室的一些这个耳机就是Same的一些命令包括MASAM TimeMASAM Age它其中的话实际上并没有去做一些Hot Function的一些这个挂带或者说是其他的一些外外的能力的一些暴露它只是标准的去支持MASA的标准的这个接口然后但是然后另外的话就是DESLAPS它提供出来了一些基于其他的一些MASAM运用框架的一些这个Same然后在当这个Same去Same就是有一堆Same之后我们该怎么去正好很好的去运它呢尤其是在KONETIC的环境下我们不可能去每个接站里边都去去手动去运行去跑这种东西去跑这些脚本就是比较累一些严厉的话然后这个时候就可以去可以去有一个这个KONETIC的一个项目它是要去做的是一个是要你的KONETIC的节点去支持这个MASAM的运行它都可以通过可以看一下这个命令就是只需要一个Autotation打一个Autotation它就可以帮你去把这些刚才所说的这些Same去安装到你的这个节点中当然这也是一个实验性的项目就是这些Same安装到KONETIC的这个安装到节点中之后KONETIC运行更改一下KONETIC的配置然后可能我们就可以去部署一下MASAM的MASAM相关的一些容器或者容器可以跑一下MASAM然后另外的话就是MASAM工作组的一些内容它实际上是在也是有一些任务需要和KONETIC做一些特殊的做一些联动然后包括刚才所说的包括对于OCI的MASAM制品成关的一些一些修改它有一个它们简单定制了一个OCI制品的一个进向格式然后这一部分也是需要KONETIC做一些特殊做一些OCI兼容这也是现在是处于review的阶段然后另外一个的话就是一个MASAM工作组的这个提议刚才看到KONETIC MASAM它实际上已经做了是对节点的节点中安装SAM的这个操作逻辑但是这个实际上是只针对于MASAM这一部分东西然后这个时候我们想他们想去做一些更加灵活的更加通用性的就是在KONETIC如何去如何去很好的去管理KONETIC SAM的生命周期我们怎么去保证在当然我们想更加一个SAM的时候去更好的去去把它安装到节点中然后去保证可能在安装的过程中不会去出现一些崩溃或者出现崩溃的时候如何很好的去恢复它这个就是这个提议所需要讨论的一些内容然后包括它在定义的在KONETIC中定义了一个SAM的一个CRD然后我们社区非常欢迎大家去进行一些参与然后我们主要的话我们主要的话希望大家可以参与的时候可以通过KONETIC这个仓库的这个一修啊或者说是其他的方式都可以一修啊之类的就最简单的方式然后然后也可以在SLACK中去和我们SLACK中去这两个这个CHANNEL区和我们去聊去发现或者这个然后我们去会议的话是每个月的第二个就是然后欢迎大家一起再参与到KONETIC的这个灵活生态的构建的工作中大家有什么问题大家可以去再展对可以到楼下那个展区然后我们是FE区谢谢大家这个参与收听因为那个我们感觉我们超市超远多然后我我会在下面一楼的FE然后我今天下午跟明天我都我都会在如果大家想问可以到一楼去谢谢大家