大家好,我叫张辉龙I noticed there are some foreigners and developersso I had to introduce myself by English againThis is Steve Zhangand my GitHub idea is the HR sunshineand I noticed some developersit's very glad to see you in there in person大家好然后我就简单介绍一下online-inter中国的张辉龙然后我现在主要是在SalesMesh的领域EastJune里面做开发然后很高兴在这个地方给大家带来对于关于AmbientMesh和SideCard模式的这种共存场景下的路由谢谢大家好,感谢,感谢辉龙今天这张分享是由我和辉龙搭档来给大家大概分析一下Ambient和SideCard两者共存的模式下的网络路径分析今天大概演讲的内容是今天大概演讲内容是包括这几块就是先会大概介绍一下给大家回顾一下EastJune的发展历程然后包括Ambient是怎么诞生的在什么样的背景下诞生的后面核心会去讲解一下就是Ambient和SideCard模式共存下的一个流量路径分析这个会由怀龙给大家具体来讲解还包括后面的一个社区的关于Ambient的未来的一个掌那我就先开始首先给大家回顾一下EastJune社区的关于Ambient的这一块的发展历程首先EastJune社区是第一个版本是2017年然后发布了0.1.0的一个版本然后EastJune一开始的本身的一个自己的部署的一个形态是一个分布式的一个包括像有一些Mixed的一些组件它在1.5的那个版本里面把这些组件都做了一个合并然后衍生出了一个单体的架构也就是我们目前能看到社区的一些版本的EastJune这样的一个版本然后在2022年的话然后EastJune它发布了一个新的一个数据面形式叫Ambient的我们中文翻译过来是叫环境网格EastJune 1.18的话Ambient的发布了一个第一个Alpha的版本然后目前是可以在社区下达去安装进行使用然后大家知道EastJune在2022年也就是今年上半年的时候然后通过了ZF的一个毕业Ambient的话目前的话Ambient社区的规划是它是未来的一个眼睛的一个形态然后目前还是Alpha未来的话会眼睛为Beta大概是在社区预计预计会在EastJune 1.20的一个版本里面可以把Ambient的变成一个Beta的状态首先我们回顾一下EastJune的现有的一个模式它是怎么去由Satocard变为NBient的Satocard模式其实大家很熟悉就是这个图所示然后EastJune它核心要解决的问题是什么就是第一个是它基于Satocard的模式那个流量管理安全可观测性是三大特性然后Satocard它本身是那个基于在KBUS的环境里面我们基于那个WebHook然后在破了串键的时候给它注入了一个Satocard然后流量基于透明蓝节的方式去把流量把业务的流量引入到Satocard可以看到下面这个图是指Satocard这个模式下代理了一个网络的一个路径的一个传输的一个过程然后Satocard前面讲的那些功能就流量管理和可观测包括它其实是包含了L4和L7的能力那NBIN和Satocard的模式有什么不同呢可以看到NBIN它本身的一个设计理念它是一种全新的一种数据平面模式它的一个设计理念是说要将那个数据平面也就是Satocard的模式它包含了L4和L7做一些分离然后因为有些业务场景它其实可能是只需要用到L4的能力那在这些业务场景下其实你提供一个既支持L4也支持L7的Satocard的话其实是没必要的然后在这些可以像来说把L4和L7做一个解诱然后可以看到7层提供哪些能力和4层提供哪些能力那这样的话其实对于客户或者对用户来说的话它可以安须的去使用7层的能力4层的话它可以作为一个标配然后NBIN数据面的话就刚讲到的就是L4和L7的对比Satocard的区别核心是L4和L7做了一个代理的结构另外在部署模式上面其实它有一个核心的差异它不再是以那个颇德里面的一个Satocard的一个container的方式出现了然后它的那个部署的形态的话就是它会在每一个节点上布一个L4的代理然后对于那个7层的L7的也就是这里土上所示的一个one point of policy它是一种采用一种集中式的方式做一个部署在社区的实现里面的话核心的L4的那个代理的话会把它叫做returnal其实社区的第一个版本的实现的话四层的代理的话它也是采用英卧也来实现的当考虑到英卧也的一个复杂度再加上那个四层的本身的一个业务的一个能力它其实可能对于需要采用一个更轻量级的一个代理来说是一个更优的一个方案所以社区采用Rust也就是用returnal来实现了这个L4的代理然后one point它是采用干涨的时候采用一种集中式的方式部署它究竟是怎么去触发来部署它的呢是采用我们去申明一个getaway的一个CR然后通过one point一个proceed controller然后去触发安装这个L7的代理然后这个安装的话它其实本身是基于一个service account的一个基于每一个服务力度或者是每一个limspaces的力度去触发安装一个L7的一个one point可以看到这个图上面有简单的一个流量路径就是A防B的话其实是它那个因为B的话是部署了一个one point然后那个流量路径它其实是会首先经过L4在本节点的L4的returnal然后因为B它给B服务创建了一个one point所以它那个流量要经过针对B服务的一个one point也就是L7的一个代理然后再流转到那个B服务所在的节点的returnal然后如果你的服务本身是没有声明去创建L7的话也就是这图里面的那个环线所代表的这个路径然后C防B的话它其实是只需要经过returnal就是L4的这个代理就可以了这样的话其实对于你本身的一个业务的一个场景来说是一个多样化的可以按需的去使用你要不要部署这个one point然后回到这个流量N变的一个模式对比賽达卡大家肯定会关心它的这样的一个网络具体它这个路径就是土上的这个路径到底是怎么实现的比如说第一个疑问A防B服务对吧APPA防APPB这个流量它是怎么到底是怎么去在破的里面是怎么到达returnal然后returnal又是怎么到达one point包括那个整个流量拦截它对比赛达卡它是一个怎么样的一个实际的一个实现其实网络这一块的话其实相对来说它是会有一些复杂度我希望我和我的搭档基于本产的分享然后给大家来讲解这一块让大家有一个比较清晰的一个认识首先看到NB的一个流量拦截这一块其实赛达卡的流量拦截大家很应该比较清楚了它本身是破的里面的一个apptables规则去做了一些拦截的出入流量但在NB的这个模式下可以看到前面那个图它那个在每一个节点上部署了一个returnal那这个流量由破的由这个节点的一个业务的破的发出流量是怎么到达这个returnal的呢它这里面有一些背后的一些一些实现的一些原理首先第一个就是对于NB来说的话它不再是像赛达卡的话它的那个流量拦截它有两种方式一种是采用CDI的方式一种是采用那个apptables破了里面的apptables直接通过一粒的container去做一个apptables的规则然后在NB的这边的话其实核心是还是采用就是EastelCDI的方式来实现流量拦截然后这个CDI它会做几个事情这个图里面可以看到它会做一二三四个事情然后第一个首先那个它要关心的是我要拦截哪些破的发出了流量那它是怎么去把这个范围给它那个就是包含这些具体的破的了它是通过Unix的一个叫ibc的这样的一个技术来来去把它那个认为要拦截的这些破的流量放到这个ibc的ibc的本身类似于可以理解为是一个数组然后第二个就是它会串建一个Generward的一个DY这个Generward它其实本身是一个隧道隧道的一个协议然后这个隧道的协议的话我们可以接下来看它是具体来做哪一块的我们先保留这个悬建就可以然后第三个它会设置一些那个ibfield的一个就是它本身是因为那个流量拦截这一块的话它会做一些就是五元组的那个反问的话原地址反而目的地址然后目标的话它接收到了那个请求之后的话它其实它是需要做一个反向溯源的它会判定这个原地址它的请求是不是一个合规的然后这里设置的这些ibfield其实本身是那个为了关掉一些一些印证的一些逻辑然后让这些流量可以正常地发出来然后最后的话其实是最核心的一块所以流量路径这个拦截这一块其实核心的技术其实就是我们说Latefield里面的ibtable和测费路由这一块然后这些流量怎么到达这个Tunnel这个节点其实核心也是基于这一块来做的就是基于节点上面的ibtable然后在基于节点上面的一个测费路由的一些规则然后把这个流量把破的发出来的流量会倒入到Retunnel里面然后当然还有一个另外一块就是Retunnel本身这个破的里面它也会设置一些ibtable是规则然后是它为什么要设置这些规则我们可以接下来一一来看第一个就是实际上插件它会为Retunnel配置这些ibtable是规则它是为了做啥用呢其实核心是当流量它引入到Retunnel以后然后Retunnel它本身它并不它要处理多个流量然后多个流量的话可以看到Retunnel破的里面它有好几个设备一个是左边的Pestial Out和Pestial In然后有Retunnel本身对应的破的设备这里没有画出来就是对应了比如说常规的ETH0然后这个Pestial Out和Pestial In它分别对应的是Retunnel收到的一个出现的流量和入现的流量然后出现的流量和入现的流量分别路由到对应Sidecar模式类似的端口比如说那个出现的话会把通过App Tips规则拦截到那个15001的15001的这个出现的端口然后入现流量也会对应的拦截到对应的端口然后当然这里其实还包含了那个因为Sidecar模式下它有一个智能DNS然后也包含了对DNS的一个处理然后跟变成网格内部的一些首先第一个我们要看到就是前面最开始的那个示意图就是APPA反过APP B它的一个简单的一个流转的一个路径这个图它大概的画的一个意思是说那个作为一个APP我向外发起一个业务请求我的流量是怎么到达这个本节点的这个Retaller的破的第一个路径就是任意一个破的里面发出的一个流量的话它在这个是基于特定的Sidecar的实现首先它会每一个破的里面它会有一个VTH的Pair然后这个破的这个VTHPair的话它会大家知道VTH的话它是一个Linux的上面的一个虚拟设备它其实可以理解为是一个就是它一端是在破的里面另外一端其实是在节点上面那这样的话成破的里面发出了这样的一个流量它其实最终会到节点上面来然后基于这样的一个逻辑上的话就所以那个APP破的发出了这个标号唯一的这个请求最终到达会命中这个returner破的这个APPC的然后这样的话APPC的命中了之后它会基于APPTable的规则会被拦截然后标记为OX100的一个标记然后基于这个标记再基于策略路由最终路由到了一个EstealOde在在节点上面的EstealOde的一个设备然后EstealOde的设备的话它其实本身是一个前面讲的它是一个一个隧道的一个一个协议的一个设备然后这个隧道的时候隧道的话它其实有两端一端的话它是在这个节点上面另外一端在那个Tallaport的这边那这样的话它首先第一个疑问就是这里为什么没有像就是4号标号为4的这个路径为什么没有像标号唯一的这个路径同样采用VTH了这个大家可以思考一下回头可以等一下有没有那个就是这里就是其实是会有一些疑问对不对然后使用日内瓦碎到它的好处是其实核心是什么呢它核心是对VTH的话它其实大家就是知道它流量就是经过了节点然后基于节点的一些IP Table规则和策略路由可以把流量引到那个在Tallaport里面但这里为什么没有像那个没有把这个日内瓦设备也对应了采用简单的VTH了其实核心的逻辑是因为那个我们在Tallaport收到请求的流量之后它其实因为它本身是一个代理嘛然后大家知道代理的核心逻辑是什么它在做转发对吧那它转发了一个核心的一个背后的东西是什么它要知道你的原始的目标IP那这个隧道它就是隧道鞋其实很简单它就是简单说把原始的鞋它做了一个分装然后它让你的原始的目标它其实这些信息的保留下来了那保留下来之后对于Tallaport收到了之后大家肯定就知道这个原始的目标然后它才能去做进一步的转发但是这样的一个逻辑然后Esteal Out和Esteal In刚刚前面有讲过就是它分明对应的是一个出现和一个入现的一个转发Esteal Out对应的是这个出现的一个转发然后它对应会把流量基于来到Retallaport以后之后然后Retallaport本身也有那个IPTables和策略路由会流转到150012的这样的一个Tallaport进程的一个端口对应Esteal In也是一样的然后我们再回过来看一个完整的一个路径完整的一个路径的话就是对应的是那个APPA反无APP然后它分别是经过了那个一二三四五六这样的一个路径然后其实上面这个路径很简单就是刚刚前面讲了就是它会基于这些规则基于IPTables和策略路由然后来到那个Esteal Out的设备Esteal Out基于隧道然后最终来到了Tallaport设备然后为什么采用日内瓦就刚刚说了就是它采用了是一个分装的协议基于分装的协议才能直到原始的一个目标IP然后最终它其实这里有一个核心的一个5到6这一个点5到6的话其实对于发出端的那个节点所在的Tallaport来说它发出了目标的IP其实是那个对应的目标的那个IP大家知道对于目标服务的那个Port来说的话它的IP其实和它本节点的Tallaport的IP其实是不一样的那对于入端的这个流量它是怎么又流转到了这个入端的这个Retallon其实这里也是采用了那个节点上面的IPTables规则和那个策略路由到底是类似的所以这样的话其实5到6的话就是当那个A发给B的话其实到了首先5本身的原始的目标IP是发给B的这样的一个Port的IP然后基于Port的基于目标Port的所在的这个节点的IPTables规则然后它拦截到了目标Port的所在的这个Retallon节点然后Retallon节点在基于日内瓦隧道然后再到达了这个RetallonRetallon在原例子转发给了那个目标IP的Port的然后这个其实是刚刚前面讲的路径的其中的一环就是只有L4也就是只有Retallon这样的一个路径的情况下然后再有Winpoint的这个情况下它会稍微复杂一点其实就是看了有没有定义这个目标服务的这个对应了L7的一个代理如果你有定义的话它其实在发出端这一次的节点上面的Retallon的话它其实它本身Retallon里面基于控制面下发的一个配置它是直到目标端的这样的一个Winpoint的地址这样的话其实在发出的时候它会先把那个请求先导给那个Winpoint的Port然后Winpoint的Port再发给目标端的Port然后这样的话整个路径大概是如图所示然后接下来其实前面讲的是那个Sidecar和Sidecar的一个对应的能变的这样的一个流量路径当然其实我们可以容易想到就是因为社区的这个两个模式它并不是说可以直接硬切化的它其实需要一个软招路那这样的话这个软招路的话其实会涉及到一个什么样的一个状态了就是当你现在部署的一个版本是一个Sidecar的版本那未来你怎么去升级到一个NB的版本呢那它其实是需要一个过渡这个过渡的话其实是我们接下来要由淮龙为大家讲解的一个两个模式共存的一个流量路径OK 下面由淮龙给大家讲解好的非常感谢那个雨昕给大家介绍的一些一些这种ambient meshLetano相关的一些具体的这种技术细节那下面的话我给大家介绍一下具体的就是关于如果说存在我们的ambient mesh和我们Sidecar都同时存在在我们的网格当中的情况这是一种并存的并存的这个场景那基于刚才由雨昕同学给大家介绍的情况下我们得到了这样一个一个路由对象一个流量图那实际上呢Sidecar和ambient mesh它在共存的情况下这个我们是一个ambient mesh到Sidecar大家可以看到那如果从ambient mesh出来的话大家应该可以感觉到就是IP tables做了对应的转发其实最主要的还是大家要注意一个IP set刚才雨昕也说到IP set是一个比较重要的这是由我们的他去做了一个动态的资源发现就是当你创建了一个POD以后这个POD就会它对应的IP就会加到这个IP set里面然后进行流量的标记以及IP table策略的应用然后到了第二步以后在由刚才说的会有路由转发到但是出去的East to out这是一个在Node节点上的一个device或者说我们不叫device也行然后East to out通过Geneva的tunnel然后到Past to out这样的话就进入到我们的每一个demo set的那样一个POD里面去真正正正的POD里面去然后在最后也是通过POD里面的Letano POD里面的IP tables然后经过第五步进入到真正正正的Tunnel的进程Process里面然后在这个地方在过去到的第六步然后到我们的Sidecar的那个地方照Sidecar的话之前有很多文章去进行路由的介绍所以这个地方我们就不一一地介绍了但我们最主要的关注点是左边的时候这个地方存在的路径的路由表然后另外需要说明的一点其实这个图我们在社区里面我们有一篇Blog出来然后最早的不是这个样子的但实际上就是在右上角的时候Ease2的CNI和CNI的PluginNetwalk的Plugin其实这一块的话是有修改的因为大家在网上应该能看到Solo的一些文章里面的话它的图其实对现在来说已经是Audit所以说我们做了一个这样一个做一样这样把CNI的Netwalk的Plugin放在Ease2的CNI的Demon Set里面因为实际上这个跟于霍华德的介绍就是这个东西其实是由他们整体来做IP Tables和路由规则的设置的都是有设置并不是有单独的设置就之前那些网上的图可能是有一些变化了那有了ambientMesh到Satica那也有Satica到ambientMesh那这种场景下我们在第二张图里面是没有就No WePoint的情况下都是四层到四层的那Satica那边我就依然是不具体介绍我们主要是关注在右边的这一块刚才那个雨昕的配置文件里面看到如果你有WePoint的话它的那个配置里面会有WePoint的Processed Address那这个景面是没有的情况下我们会发现直接就叫第三步那第三步大家注意一个一个问题也是我们在做的时候它那个在之前的那个那个路径里面雨昕的那个图里面用VETHVETH去代替其实实际上它会实际上当你启用了Geneva的这些Protocol以后它会为你每一个Pod去生成VT对应的VTH你让我们比如说我们这是做到Name SpaceSleep到HDDBB BIM那这样的话它其实会为HDDBB BIM创建一个VETH特别的然后所有的那个IP Addresses都是完全都是一样的一致的就是多个IP Address相当不同的这个应用的VETH去然后到第四步的时候同样的也是由于我们的East to CNI和Demon Set它是去做的这些路由规则然后进行转发转发由先经过节点的协议站再由节点协议站IP Table Squeeze进入到East to IN然后通过GenevaGeneva的Tunnel进入到Past to然后再由Past to进入到我们的Prot里面去来然后在最后再到ZTunnel里面再转发到我们的HDDBB BIM的Prot里面所以这是一个Waypoint的相对来说有Waypoint的这种场景就是刚才我们接到第三部分如果YesWaypoint Traffic Yes然后这个地方会有根据配置里面的Waypoint Address然后到我们的Waypoint里面再由Waypoint进行一个转发通过Hbound Protocol进入到这个里面我们是Hello World这么一个Application那其实进去以后路由和它的路径的规则就跟我们之前的是一样的Waypoint和Waypoint的差别主要就是在中间这个WaypointProt它的存在的差别关于这个图的话我们会有一个整体的图这个整体的图因为在这儿后续的话下一个版本发出来的Blog里面会有更加具体的一些描述然后大家可以去Eastview.io上去去阅读欢迎大家执政那讲了这么多我们有一些summaryWarming upWarming up的话我们先简单介绍一下它使用一些technology那首先我们说一下就是Prot的流量基于IP Tables和策略路由被路由到Eastview In和Eastview Out我注意到有一些也有一些国外的一些用户所以我这个地方介绍一下就是第二个technology是genevergeneric networkvichonizationencapsulation那这个呢就是我们可以理解它是为了实现我们在同一个节点上the tunnel port和我们application port之间的隧道连接然后第三个是第三个技术是我们的HBOMHBOM是一个Protocol它主要是在建立隧道实现the tunnel之间的tcp流量的连接然后第四个呢就是使用tepoxy它实现刚才说的策略路由实现我们的透明拦截tepoxy主要是使用它来做一些策略路由实现它的流量的标记对当然大家我们有介绍一下我不知道该用英文说给大家介绍一下所以我们可以描述一些评论Giniverse是技术技术为了你知道tunnel port和application port它会建造连接的连接的连接的连接的HBOM会建造连接的连接的连接的连接的连接的连接的连接的总结了以后我们有一些有一些有一些问题以兴和我们在这边在做的过程中发现一个问题第一个就是当这些问题社区也代积极地去推进和改进第一个问题就是我们对以有的一些API还附盖的问题当然大家知道互动时代会存在一些问题总结下来差不多就这两个第一个是我们在赛卡的七层屋的模式下对traffic management API的覆盖度有问题比如说对source labels对v2 service的这种场景下它是不支持的第二个就是对一些assentication和authorization的一些策略相关的API它的覆盖也是有问题的就是说它并不能完全的满足这些feature的一些需求所以大家在使用的时候也要注意当你们用到这一块的话如果没用的话就没关系了第二个Z tunnel也存在一些问题特别是在Z tunnel它在对多个end point去做附载均衡的时候它并不是一个像我们之前的那种真实的附载均衡它的这个附载均衡它是一个随机选择end point这一块其实有8个有8个 我们也注意到在code里面我们也注意到一些问题但是现在后续的话肯定会这块肯定会做一些修改的对 这个主要是在Z tunnel里面去实现的另外就是Z tunnel它有一些问题就是单点故障的问题还有它的优雅升级问题因为大家可以考虑如果说我们的单点Z tunnel它本身一个demo set它挂掉以后那我们上面的一些配置文件就会出现问题还有一个就是Z tunnel也需要升级虽然ambient mesh的引入让我们的application不再需要它的升级如果有升级的时候不再需要重新我们的pod但是Z tunnel的升级它是会有影响的所以这是一个问题然后另外一个就是性能和资源的问题其实在第一个讲解当中有一个网站有一个对比分析这个地方我们也练出来了然后对性能的整体的性能提升还有H bound的协议没有TLS的差异因为目前这块其实没有没有一个很明确的对比对比数据去分析这个问题所以也是非常希望大家去做一个能够做一个在座的各位的divipers也有至于这个方面另外一个就是第四个SiteCard如何平滑的眼睛到ambient mesh这也是我们应该考虑的问题假如说ambient meshHomePod去推进得比较顺利的话那我们的SiteCard如何我们是SiteCard模式的这种SizeMesh它怎么去平滑的变动到ambient mesh它当然这是一个比较远的问题了然后这就是我们今天的一个演讲然后也非常感谢大家在这里听有问题谢谢演讲非常非常详细的一个介绍我想问一个问题就是本身STO它就是以它的复杂度文明它本来就比较复杂然后引入ambient之后它跟SiteCard模式两种并存它虽然说刚才也讲到有些问题比如API有些东西不能进来我们在做这些事情我想了解就是社区的一个就是社区从社区的角度或者从社区领导层的角度我们长期的一个目的或者规判是什么我们长期比如说我们是两种模式并存还是我们长期的来看的话我们希望从对眼睛的ambient的模式因为在我看来的话这种两种模式长期并存的话我感觉的维护代价是非常大的比如后面我们有什么新增的那两个模式上都去支持的话其实这个完全两种背道而驰的模式的话其实非常困难我想问一下就是从社区领导层社区的那个制造委员会的话他们有没有一个长期的一个规划和策略对对方面谢谢 谢谢华斌这个问题非常好也是引发我们大家在做这个事情的时候深思其实这个问题最多的要问Google和Solo当然我跟那个孙林有个一个交流然后孙林在目前的现阶段是希望大家就是说我们在使用East9的时候大家可以选择自己需要的举个例子在很多时候我们如果不是特别关注我们的资源利用率的时候我们可能使用Sidecam模式因为Sidecam比较成熟ambient mesh的话现在属于一个比较新的阶段按他们的说法1.20可能会推定到Beta版对 但是等这些问题都解决得差不多的时候应该也是可以的但是未来的话其实并没有出现一个声音说是必须要演绎其实我写那个博客的时候我的措辞是很明确的跟华斌一样我的措辞是我们未来会从Sidecam眼睛到ambient mesh但是这个在写Blog的时候这句话被驱掉了但是我理解其实大家还在看这个官网有看这个技术番区是得到你们眼睛后面可能再多判断对吧可能是这个意思Sidecam和ambient其实刚刚前面我最开始讲了就是它在那个流量蓝节这一块其实是有很大的不同当然核心技术其实没有很大不同但其实它因为那个ambient的话它其实是需要考虑和你的kBus的这个环境也就是你的技术设施的一个金融性然后这个其实是它目前还在就是怎么说就是还未完全变成Beta的一个很大的一个要考虑的一个问题就是假设利用的CNN插件比如说是Kanliko那可能我在我们在图里面画的比如说它那个流量怎么引导到Retarlo对吧它其实背后是需要基于那个VTH的这个这个背后的一个Port的这样的一个CNN的一个实现那如果你是采用这种其他的一些非VTH的这样的一个CNN插件的话可能对于这个模式的话它其实是会有一些金融性的问题当然社区其实也会采用一些其他的方案我们这里面其实没有讲就是NB的话其实有两个模式它其实还有一个叫基于EBPF的一个模式这个模式的话当然它也不是完全就是所谓的它能解决所有问题它这个其实它有EBPF大家知道它对内核版本它其实有一定的要求那它其实也需要大家去看自己的一个基督设施是不是一个符合简单来说就是有多种多样的一个玩法然后还要结合自己的基督设施的一个形态去使用谢谢然后EBPF的话下午的话我们会有也是有我们英特尔的同事给大家讲大家有什么问题吗李老师你好就是我想问一个问题就是刚刚也提到的就是会引发一个单点故障就是暗面的模式然后就是Zetano的话因为如果我们对一些场景上它要求比较高的一些可靠性如果Zetano的话挂掉的话整个接电的话其实都是不可用的所以说对于这种场景的话目前的有没有什么一些应对的思路就是后续应该朝什么方向去研究吧这个其实就是就是社区当然没有提出这个现在还没有一个完全的一个答案说这个问题怎么解我们可以很清晰地想到第一个就是我们怎么去保证Zetano的高可用对吧那Zetano本身是部署在采用DMC的方式去做一个部署的那它本身它的Zetano实现是采用刚刚前面讲了它本身一开始它最开始是采用英文来实现了它现在的一个落地的实现就是采用Rush的方式去实现首先它的代码足够少然后因为它只要解决L4的这样的一个负载均衡然后这样的一个代理转发的问题解决怎么支持也去帮我们的协议那它对英文来说的话它的代码的一个质量或者做它的那个它的攻击面影或者是其他的一些导致它可能会出这种crush的问题可能会变少这个是一方面另外一方面就是像Cellim的话他们采用的是L4的话它可以采用EBPF的方式我不知道社区未来是不是也会采用这种就是双模这种模式就是其实是可以切换的就是L4的这种L4层其实是相对来说比较好解决的OK其实这个问题的话也有在讨论对我们要做很多的考虑对目前只能依靠KBS的丁锋赛的行我们那个时间也差不多了有问题的话大家下来跟这两位演讲者一起去交流一下