[译] William Morgan的服务网格之战

前言

英文原文来自 Service Mesh Wars with William Morgan,这是我见过的抨击Istio最为猛烈的一篇文章,极其火爆,又很有道理的样子。特别申明:仅做翻译,不代表本人立场。

正文

服务网格是一种抽象,为分布式应用程序提供流量路由,策略管理和遥测。

服务网格由数据平面和控制平面组成。在数据平面中,代理与服务一起运行,服务的每个请求都通过代理进行路由。在控制平面中,应用程序所有者可以控制分布在整个应用程序中的代理的行为。

随着Kubernetes生态系统的发展,服务网格抽象已经成为“云原生”应用技术栈中越来越受欢迎的组件。

随着公司热情地采用Kubernetes,他们最终发现自己拥有一个难以操作的大型分布式系统。正如我们在之前的探讨的那样,服务网格简化了这些运维困难。

Kubernetes社区已经发展到包括许多企业,而这些企业希望采用服务网络。但是今天,他们中的许多人都害怕采用这项技术,因为有多种竞争产品,而且不清楚社区将选择哪一个,或者社区最终是否会支持多种产品。

在接下来的几周内,我们将播出在巴塞罗那的KubeCon EU 2019 的采访。这些访谈是进入Kubernetes世界和云原生生态系统的窗口,它正在改变基础设施软件的世界。

这些节目中最突出的主题是服务网格。为什么服务网格如此重要?因为服务网络之上的争夺战是一个巨人和资源少得多的创业公司之间的经典技术竞争。

Kubernetes生态系统设计精美,是可以让最有价值的竞争对手获胜的交战市场 - 但在某些情况下,多个产品可以占据市场的不同部分。

在这些事件中,我们将探讨的主题是这些竞争解决方案的治理和外交,以及Kubernetes生态系统如何构建以允许和谐解决技术纷争。

很容易将服务网格之间的竞争视为赢家通吃。但截至2019年5月下旬,我们还不知道它是否会成为赢者通吃。为了预测服务网格战将如何发展,我们能做的最好的事情就是看历史例子。

容器编排战争是一个赢家通吃的市场。容器编排是非常有深度的问题,例如技术的复杂性和集成,生态系统必须有单一的赢家。

在容器编排战争期间,Mesos和Docker Swarm,以及HashiCorp Nomad,在和Kubernetes争夺至高无上的地位,许多大型企业对 Kubernetes 以外的容器编排系统下了赌注。尘埃落定后,Kubernetes成为胜利者,这些采用Kubernetes以外的编排系统的大型企业不得不开始考虑如何迁移到Kubernetes。

但在编排战争期间,更多的企业选择围观。他们没有选择Kubernetes或Mesos或Swarm。他们选择了等待。

企业技术人员很聪明,他们可以判断技术何时不成熟。虽然许多企业想要一个编排系统来管理他们的Docker容器,但他们并不想引入日后必须拆除的大量抽象。

一旦Kubernetes赢得了编排战争,企业资金就会涌入这个领域。云原生社区的增长速度超过了任何人的预期,因为我们解决了集中在容器编排器上的集体行动问题。

从企业到云供应商再到ISV到播客,我们对Kubernetes有着共同的愿景:它是分布式系统的Linux。

在Kubernetes生态系统中,思想领导者不会挑选优胜者。如果获胜者是通过竞争决定的,那对每个人来说都会更好。为了促进竞争,与Kubernetes的接口可以提供一层标准化,不同的产品可以与之竞争。企业可以选择接口而无需选择任何特定产品。

示例包括容器网络接口(CNI)和容器存储接口(CSI)。每个Kubernetes应用程序都需要存储和网络,但这些Kubernetes应用程序不希望被锁定到特定的供应程序。由于存在用于网络和存储的标准化接口,因此这些应用程序可以替换存储提供商,或者替换网络提供商。

这与服务网格有什么关系?

在服务网格市场,Buoyant率先推出了开源项目Linkerd。今天的客人William Morgan是Buoyant的首席执行官。在过去的四年中,Linkerd已经慢慢培养了一批在生产中运行开源服务网格的专用用户。

在过去四年中,Linkerd已经从其在Twitter开发的JVM服务代理的初始技术转变为基于Rust的Sidecar数据平面和基于Go的控制平面。Buoyant专注于服务网格领域,赢得了社区的大部分支持,Linkerd成为Kubecon EU 2019的主要服装品牌就是证明:会议中到处都是 Linkerd 的帽子和T恤。

为什么Linkerd变得时髦?具有讽刺意味的是,某些服务网络的竞争策略被广泛的视为是对云原生社区精神的侮辱。

Istio是在谷歌内部创建的,并与IBM和其他公司建立了一系列脆弱的合作伙伴关系。Istio通过暴力宣传进入Kubernetes生态系统,通过无尽的横幅广告,营销电子邮件活动和KubeCon编程宣传自己为云原生服务网络。

这个播客的任何听众都知道我和任何技术专家一样容易上当受骗。我是一个理想主义者 - 我愿意相信Istio代表服务网格,相当于Kubernetes。它来自谷歌,推出了一系列令人印象深刻的徽标,它具有鼓舞人心的愿景。看起来像云原生,闻起云原生,必须是云原生,对吧?

不幸的是,Istio的早期营销与项目的现实脱节。Istio有缺陷,很难搭建。Istio迅速发展成为谷歌制造的笑柄:好主意,几乎没有做好生产准备。

对于Linkerd来说,时机正好。

Istio对路由流量,管理安全策略和网络遥测的运维平面的浪漫愿景引诱了企业用户。由于他们对Istio的渴望未得到满足,这些企业对市场进行了调查,并迅速找到了通往隔壁的廉价服务网格Linkerd的大门,他一直耐心等待。

潮流已经转向反对Istio,并转向Linkerd。但服务网格战争刚刚开始。批评Istio是很容易的,但是该项目是不只是笑柄。Istio有详细的运维平面的愿景,将与Lyft开发的服务代理Sidecar Envoy一起发展。

也许Istio的早期失败是因为有过多的营销,但该项目仍然可以成功。谷歌是世界上最先进,资源最充足的公司 - 从谷歌围绕Anthos和其他战略计划的相关战略信息来看,该公司已经决定Istio将长期存在。

作为社区,我们应该感谢Istio地毯式轰炸营销战略的愚蠢。它验证了云原生社区的真正弹性,即使在谷歌营销的无处不在的胁迫下,社区也能够集体拒绝Istio Kool Aid。

这应该不足为奇。云原生计算基金会(CNCF)驻留在Linux基金会内部,而Kubernetes生态系统已经被Linus Torvalds的热切技术追求所感染。

CNCF是在AWS的阴影下形成的。CNCF由谷歌捐赠Kubernetes播种。就像Linux社区被定位为对微软的主导地位作出反应的反叛运动一样,Kubernetes社区代表了一种强烈的愿望,即向云供应商开放市场,超越亚马逊的守口如瓶。

由于具有如此深刻的不服从精神,社区已经拒绝了Istio,就像一组松散耦合的器官一样拒绝外来试图将自己分层的皮肤。尽管CNCF是由谷歌创立的,但社区是在大型集中云的敌视下形成的,而不是作为其产品的营销容器,这些产品可能是也可能不是开源的。

微软似乎比谷歌更了解这一事实,至少在服务网格领域。

在接受William采访后的第二天,微软宣布推出Service Mesh Interface(SMI),这是一个与Buoyant和其他公司合作的项目,旨在为Kubernetes部署提供服务网络应该提供的最小规范。SMI为想要服务网络的企业提供了一个安全的买入点,但不至于陷入Istio和Linkerd的交火中。

正是在这种环境下,我们开始了当前云原生生态系统的下一系列节目。

感谢Cloud Native Computing Foundation在KubeCon上组建了一个令人惊叹的播客区,并允许我进行这些采访。

译者注

文章有些偏激,用词夸张,有种美式脱口秀节目的味道,因此读者们请保持冷静。

不过Istio的确存在很多问题,问世两年来,期望和现实差距太大,伤了很多人的心,大概是爱之深责之切吧。Istio 也到了该好好骂一骂的时候了,我个人只想问一句:Mixer V2 什么时候能实现啊?

敖小剑
敖小剑
新时代农民工 * 中年码农

我目前研究的方向主要在Microservice、Servicemesh、Serverless等Cloud Native相关的领域,全职从事Dapr开发,欢迎交流和指导。