蚂蚁金服SOFA开源负责人鲁直:不只是中间件,未来会开源更多

时间:2019-08-11 来源:www.ldkx.net

?

最近,技术媒体Linux中国的创始人王兴宇讨论了SOFA 5,Serverless,ServiceMesh,Seata等技术内容的蚂蚁金福SOFA开源技术内容。以下是访谈文章。

img_pic_1556523026_0.jpeg

虽然Lu和我很长一段时间都在接触微信,但这是我第一次见面。在对话过程中,我了解到陆智于2009年加入阿里巴巴并已经工作了十年。我最初是作为1688.COM的业务系统开始的,我对中间件技术非常感兴趣。我还经常研究各种中间件的实现和功能。后来,在2013年,为了更深入地研究中间件框架,我转到了Ant Financial Middleware团队,从那时起我一直在做SOFA。

目前,陆志在SOFA团队的工作主要负责几个部分。其中一个主要部分是SOFA开源相关工作。 SOFA的产品系统非常广泛,包括开源部分,整个内部微服务系统,以及SOFA框架等.和这些与开源相关的工作主要由陆智驱动。

当然,作为技术负责人,陆智必须带来技术团队和技术工作。谈到这一点,陆智说:

“我认为技术管理与普通管理不同,因为技术管理最重要的一点是除了管理之外还要保持一定的技术判断和敏锐度。对于某些新技术,包括团队遇到某些重大技术问题,您必须做出一些方向性判断。虽然决赛不一定是你的具体解决方案,但在整个团队的技术和技术选择上,我们必须共同确定方向。“

我以前做了十多年的技术管理,我很能感受到这种情况。重大问题的技术领导者必须面对困难。

SOFA 5服务网格

据我所知,SOFA现已发展为SOFA5。在SOFA4阶段,主要任务是澄清开源系统,然后开始分步开源;现在它已经发展到SOFA5。我想知道如何从SOFA4发展到SOFA5。是什么让Ant Financial Middleware团队判断SOFA4的分阶段目标已经达到并可以进入新的SOFA5阶段?

“从整个行业趋势来看,SOFA4的架构相对更为传统。它更多的是整理和整理我们以前的技术框架。在这个阶段,SOFA代码经历了大量的优化和重建。达到开源的要求,SOFA走上了开源核心模式,逐步逐步开辟了各个部分。“陆志说,”但从行业的整体判断来看,未来无疑是云时代,所以我想考虑如何使所有业务系统都能提供云功能,例如无服务器。“

然后就这个话题,Lu直接谈到了他对云计算的理解:“一方面,云计算必须为整个业务的开发提供更方便的基础资源,你不能关心底层基础设施。无服务器文字意味着”没有“服务器”我不关心服务器是如何来的,不关心基础设施,只关心业务代码。云服务提供商就是这种情况,在这个抽象层之后,它的资源利用率将会更高,你可以有更多的利润空间,这是一个双赢的局面。对于用户来说,这个好处是真实的,你可以少关注基础设施,只关心代码。“

“我们希望在SOFA5的指导下,在这个新的迭代中,让业务包括让我们在未来开放各种功能,各种服务模式将更加关注自己的业务代码,而无需支付更加关注基础设施。“陆智说,

在SOFA5中,一个重要的方向是服务网格方向,这将是SOFA5中非常重要的特性。陆智强调了他对Service Mesh技术的乐观态度:“我认为Service Mesh是迈向未来的关键一步,因此企业无需关心基础设施。通过Service Mesh,我们可以直接投入大量技术能力在基础架构中,业务无法感知到这一层。现在可以通过Service Mesh解决可能需要数小时或更长时间才能解决的基础架构问题。“

“目前我们已经在生产环境中应用了Service Mesh。我们在这方面有很大的决心,我们希望能够在今年更大范围内使用Service Mesh。在这个阶段,我们更加关注这项技术。室内装饰在地面上,我希望能够使用它,然后为社区做出更多贡献。“

Service Mesh这个术语最初由2016年开发Linkerd的Buoyant提出。随着Linkerd的推出,Service Mesh也进入了国内技术社区。 Service Mesh也被翻译为“服务网格”。 Linkerd是业界首个服务网格。

Service Mesh是一个处理服务间通信的基础架构层,负责可靠地传递请求。实际上,服务网格通常实现为轻量级Web代理,通常与应用程序一起部署,但对应用程序是透明的。

Service Mesh部署模型有两种情况:

对于简单请求,作为请求发起方的客户端应用程序实例将首先以简单方式将请求发送到本地Service Mesh实例。这是两个独立的进程,它们之间有远程调用。 Service Mesh完成整个服务间调用负载均衡的完整服务间调用过程,最后将请求发送给目标服务。这是Sidecar,它在原始客户端和服务器之间添加了代理。

在多服务调用的情况下,Service Mesh显示在所有服务下方,称为服务间通信特定的基础结构层。 Service Mesh接管整个网络并转发服务之间的所有请求。在这种情况下,上述服务不再负责请求的特定逻辑,仅负责完成业务处理。服务通信之间的链接与应用程序分离并呈现抽象层。

如果有大量服务,Sidecars之间的连接将形成一个网络,这是服务网格名称的起源。

尽管无服务器的概念已经提出了几年,特别是在中国,但无服务器和FaaS技术的发展相对滞后。

“我们将使用Service Mesh作为跳板进一步发展。”陆智说,“无服务器应该更多地关注它的字面意思,它的意思是'没有服务器',后一种技术就是让无服务器承担特定的业务。”

目前,AWS处于无服务器和FaaS的最前沿。据我所知,国内云服务提供商正在积极推广这方面,但用户的普及似乎并不是特别高。

陆智指出,“我认为无服务器想要成功,它仍然需要从覆盖业务的整个范围开放,否则它可能仍然停留在FaaS上,而且场景更加有限。”

Service Mesh将是下一个微服务时代,它将继续进行理论研究和实践探索。

陆智说:“坦率地说,我认为istio的想法非常好,但在整个工程设计中,如果你把它放在像Ant Financial这样的大型环境中,你可能需要做一些工作。我们希望今年服务网可以将我们在Service Mesh的一些实践经验纳入产品环境项目,然后在蚂蚁规模扩大后做出贡献。现在整个系统都要做更多的工作。进一步改进,推广更多业务,然后将这些经验反馈给整个Service Mesh设计,让它更进一步。“

换句话说,Ant Financial与istio在Service Mesh上的技术路线一致,但它将从工程角度促进其发展。

陆智:“我们希望在验证完产品后,我们会小心翼翼地将其推向开源社区。这也是蚂蚁开源贡献的一贯概念.我们希望经过一段时间的成熟,我们将会经过大规模的内部验证,其稳定性有一定的保证,它将有助于外部社区的使用,然后扩大更多的使用场景,包括完善和解决以前没有遇到的一些问题。 “

Heli Seata分布式事务框架

自2007年以来,Ant Financial独立开发了分布式事务中间件XTS,广泛应用并解决了金融核心场景下跨数据库和跨服务数据一致性的问题,最后呈现了DTX云产品化并向外开放世界。与此同时,阿里巴巴中间件团队发布了TXC,为集团的应用提供分布式交易服务。经过多年的技术沉淀,它于2016年转变为GTS,并由许多外部客户通过阿里云解决方案实施。

2019年1月,基于技术积累,阿里巴巴中间件团队推出了开源项目Fescar。 Ant Financial还开放了自己的分布式事务框架,并与Fescar合并构建了一个分布式事务解决方案。这种发展既合理又意外。我非常好奇这一时期发生的事情以及它如何与SOFA中间件团队的发展相结合。他们接下来有什么计划?

陆智说:“分布式交易是Ant Financial在2007年所做的创新。它基于TCC原则。我们在内部实施了这个模型.TCC理论相对简单,但需要花费很长时间才能完成。抛光的实施。分布式交易技术已经在Ant Financial工作了12年。在Ant Financial的核心业务中,包括支付,交易,会计等系统都在使用这套分布式交易框架来解决和孵化。“/p>

在分布式事务领域,业界相对空白,没有很好的分布式事务框架。谈到合并的初衷,陆智说,“既然阿里巴巴和蚂蚁金融在这方面做了一些开源工作,我们将这两部分努力相互补充,以适用于更多分布式的业务场景, Ant Financial加入了Seata社区,在Seata 0.4.0中构建了一个TCC模型,为分布式事务提供了更广泛的解决方案。“

具体来说,“阿里巴巴的Seata报价是一种AT模式。对于企业来说,没有必要过多的认识,但它所涵盖的覆盖范围是有限的。如果你能接受这种情况,最好使用AT模式。由于财务需求较强,需要采用TCC模型,服务访问成本较高,但可以实现非常好的分布式执行。未来,将提供XA等模型以适应更广泛的业务场景。这篇文章,Ant Financial和阿里巴巴将结合起来提供融合框架。“

Seata为微服务架构下的分布式事务问题提出了一个独特的答案。 Seata的愿景是使分布式事务的使用与使用本地事务一样简单有效,并希望Seata适用于所有分布式事务场景。

Ant Financial如何开源

作为一个开源核心模型项目,我希望知道Ant Financial Middleware的开源通常会做些什么。是否有更完整的流程和规则?

“首先,最基本的是代码,并提供相应的示例。然后我们将提供指导文件,例如贡献者指南。因为从本质上讲,我们想要创建一个开源社区,社区的参与对我们来说非常重要。有些人会提出一个问题,有些人会回答这个问题。卢说,有些人要求提供功能要求,有些人要提PR等。

Linux中国开发了一种衡量开源项目活动的模型。我们认为,从过去开始,我们在情感上意识到开源项目是活跃的并且已经开始通过理性数据评估逐步改进,但这需要将一些数据排除在欺骗之外。情况就像许多人会使用项目的星级来评估项目的活动,这当然是粗糙的。我们将继续与2019年度开源年度报告合作,并提供数据支持。我们一定会对SOFA相关项目进行检查。我希望我能真正反映出SOFA在开源方面的工作。

从前面的上下文来看,SOFA5将继续遵循开放核心模型,即:核心部分是开源的,它与本地业务密切相关,但与核心没有密切关系的部分不是开源的。

对于开源核心模型,有些人唱歌很糟糕,有些人说好,有各种各样的意见。但是,从Ant Financial的实践来看,他们实际上已经实现了开源核心模型。这是我在中国学到的第一个开源核心模型项目。

说到开源模式,陆智说:“要开源,我认为首先要做好心理准备,也就是说,你必须有一个核心部分,然后在此基础上扩展,必须有一定的增长但是你必须接受这样的成本。我认为这种成本是可以接受的.项目本身必须设计并且有可能存在某种分裂。如果你没有分裂的可能性,你不能这样做。内核的设计将更适合,这是开源的核心模块,然后扩展,模块是可插拔的。“

至于如何开源工作,陆智说:“我们没有专门研究开源的人,也没有专门研究内部代码的人。我们将这两部分放在一起,包括开源代码和内部代码,因为一个优点是熟悉外部代码并熟悉内部代码,这个边界可以更好地掌握。我们更多的是开发一些规则。例如,与业务层密切相关的部分,你打开来源,没有人使用;如果你与业务无关,你为什么不开源呢?因为你的开源产品想要做得更好,这些功能开源不是很多问题,所以我们的标准就是看看它是不是与内部系统有关。它与业务密切相关,如果不相关,它可以是开源的。“

在谈话中,陆智的“你为什么不开源?”的评论给我留下了深刻的印象。这实际上代表了他们开源的初衷,但从公司的角度来看,开源已经给公司带来了真实。效益?这不仅仅是感情问题。我相信每个热爱开源的人实际上都有开源感受或更理想的想法,但另一方面,无论是来自公司的机制还是公司的表现。开源仍然必须有实实在在的好处,这可以促进公司的业务发展。作为一个开源项目的负责人,他是如何感受开源的好处的?

在这个问题上,显然他已经有了成熟的思维:“首先,最直接的好处是持久的。从直接的角度来看,你的名声出来招人是否容易找到一个更合适的人?这是最短的利益长期利益,开源社区已经分享了很多意见,而且从实践中也是如此。例如,如果你是在公司做,公司的业务情景是有限的,虽然蚂蚁金服装覆盖范围各种业务,财务方面都基本涵盖。但其他行业不一定有,他们可能会遇到这个问题,我们可能不会遇到,但将来可能会遇到这些问题如果你在开源中打开一个项目方式,这意味着更大的用例场景更容易发现错误。您使用的人越多,触发此错误的可能性就越大,这就是进一步改进的可能性。

此外,通过这种基于社区的开发,在涉及更多人之后,项目可以更快地前进,而不仅仅是你自己。在一家公司,团队中的人数肯定是有限的,并且有这么多人参与,这对该项目的前进发展有很大的好处,这反过来将为公司带来更多的好处。无论是潜在的还是直接的。

最后,如果您的产品具有商业支持,例如其他系统的支持,则可以更好地提供商业支持。

由于SOFA是开源的,据我所知,大约有30个企业用户已经使用过这个开源框架。是直接使用开源部分。当然,这主要是针对国内用户。那么外国影响如国内影响力在哪里呢?是因为我们的项目不够国际化,还是有足够的人知道这个框架?

陆智说:“我认为这可能有两个原因。一方面,我们在国际化方面做的不多。今年我们会尝试做更多的国际工作。另一方面,文化差异可能会有所不同当然,我们会尝试走国际路线,因为开源总是无国界的。“

进一步的SOFA是社区治理领域。 “我们希望采纳并参考Apache基金会。这是一个非常好的治理模型。我们将尝试将这种方法用于社区治理。这对国际产品来说很重要。它的好处在于,它更强调治理模式,是否以社区方式运作,是否尊重整个社区等。“陆志说,”我们将考虑直接联系Apache基金会,CNCF,如果适当的,我们将把项目捐赠给基金会。如果它只是一个没有基金会支持的商业公司,每个人都会有更多的顾虑。将项目捐赠给基金会,通过基金会给予每个人更多信心。托管,让更多参与者参与,而不仅仅是蚂蚁,每个人都会更有信心参与。“

最后,陆智希望与开源社区交流。 “事实上,Ant Financial是开源的,而不仅仅是SOFA中间件框架。未来,它将开辟更多的东西,包括AI中的一些技术,并希望整个社区可以更多地关注Ant Gold。开源的未来。“