Conduit是的一个相对较新的轻量级、基于社区的服务网格(service mesh),它来自Buoyant,现在该项目已经合并到了Linkerd项目之中,并且发布了Linkerd 2(Beta)。7月17日,Linkerd发布了推文“The @runconduit code merge is complete...”,Conduit随之成为流行的Linkerd服务网格的下一代版本。除了常规的Linkerd 1版本发布,Linkerd 2(beta)构件也已经生成。Linkerd 2代码是完全开源的,可以在他们的GitHub仓库上获取。Conduit 0.5.0是Conduit项目最后一个正式发布版本。
\\Linkerd是由Buoyant的联合创始人William Morgan和Oliver Gould在2015年创建的。Linkerd构建在Finagle(Twitter开发的用于JVM的可扩展RPC系统)之上,它能够用来构建语言中立的、多语种的微服务应用程序,该项目的设计适用于高并发的场景,比如像Expedia、Monzo、Salesforce和PayPal这样的地方。
\\Linkerd是所谓的“service mesh(服务网格)”领域的几个流行工具之一(其他的还包括Istio、 Envoy、Cilium和Consul Connect)。服务网格是一个专门的基础设施层,用来处理服务到服务之间的通信。服务网格用来解决微服务运维方面的一些复杂性,它围绕可观测性、重试/超时、服务发现以及动态代理等方面的最佳实践进行了封装,上述所提及的这些关注点通常会妨碍微服务的部署。
\\Conduit最初也是Buoyant开发的一个独立项目,它的数据面板(data plane)是使用Rust编写的,而控制面板(control plane)则是采用Go编写的,它是作为一个轻量级的服务网格替代方案在去年引入的。它设计为使用Kubernetes部署的低资源消耗的sidecar,Conduit采用一种带有倾向性的方式来实现服务网格,其目标是减少配置和大幅度降低资源的开销。它带来的结果就是在资源开销、性能和部署便利性方面都有了明显改善。
\\Gould目前是Buoyant的CTO,同时还是Linkerd 1和2的核心贡献者,他回答了创建Conduit的原因。
\\\\\Conduit快如闪电般的Rust代理每个实例只有大约10MB,具有毫秒级别的p99延迟,并且支持HTTP/1.x、HTTP/2和gRPC。Conduit在任何Kubernetes集群上都能秒级瞬间安装,并且能够根据你感兴趣的服务情况进行增量扩展。
\
当被问到原始意图是否就是要将Conduit一起并入Linkerd时,Gould回答到:
\\\\\当Conduit创建的时候,我们的愿景是构建出一个极其简单的方案,来解决我们花费数年的时间帮助Linkerd用户所克服的问题:云原生应用的监控、可靠性以及安全性。另外,我们非常确信Linkerd只需很少的系统资源就能实现这一点。但是,这是一个冒险的行为,很多的Linkerd产品用户在我们确信它成功之前并不认为将其称为“Linkerd”是合适的选择。
\
在分别运维了两个项目仅仅七个月之后,Gould和他的团队觉得Conduit“配得上Linkerd这个名字”,在6月27日,Morgan新建了一个issue将这个项目合二为一(在Linkerd维护者的邮件列表中进行了讨论)。在代码合并完成之后,Linkerd的推文宣布了该目标已达成。
\\对已有的Linkerd 1用户来说这意味着什么呢?Gould说这两个项目都会持续开发。
\\\\\Linkerd 1.x将会与Linkerd 2.x并行开发。我们正在与社区协作制定一个迁移路线图,该路线图将会给出这个过程中的每个步骤。
\
既然这两个项目已经合并了,那么未来的路线图是怎样的呢?Gould说他们正在致力于为服务的所有者提供非常棒的调试体验。“除了Linkerd 2中已构建的指标和工具,我们正在添加强大的CLI和GUI工具,帮助精确定位特定服务的问题。”Linkerd用户将能快速掌握是什么原因导致了问题的产生、这是不是延迟的问题、特定的端点是否返回了非法的响应或者含有不可靠的依赖。
\\八月份,Linkerd将会发布另一个版本。
\\查看英文原文:Buoyant's Conduit Service Mesh Officially Becomes Linkerd 2