• 当前位置:100EC>电商人物>蚂蚁金服杨冰:金融科技公司为什么要拥抱开源?
    蚂蚁金服杨冰:金融科技公司为什么要拥抱开源?
    发布时间:2019年02月20日 09:16:45

    (网经社讯)我们选择将SOFA中间件框架逐步开源出来,在贡献给社区的同时,?#36130;?#24453;社区、合作伙伴甚至客户,都能够一起参与共建,形成行业标准和最佳?#23548;?/p>

    ——蚂蚁金服金融科技产品技术总监杨冰

    引言

    近日,有消息称,蚂蚁金服将会开源 SOFA最核心的两个组件——分布式事务框架和服务注册中心。

    熟悉中间件的朋友们都知道,这两个组件都是针对当前最火的微服务架构。其中,分布式事务框架是解决数据一致性问题的关键。服务注册中心则是服务治理的基础。在这两块开源后,SOFA 将成为一套真正完备的分布式解决方案。

    作为开源人士,我?#28304;?#28040;息深?#34892;?#36259;,因此联系到了蚂蚁金服中间件团?#25317;?#26472;冰总监,就此消息向他求证。机缘凑巧之下,杨冰花费了宝贵的时间,和我深入讲述了 SOFA 开源的思考,以及近期的规划。

    通过这次交?#31119;?#20063;让我看到了一个成功的商业公司是如何拥抱开源、并将开源作为其根本战略来撬动技术红利,支持其急速发展的业务需求的。

    以下是正文,?#21307;?#23427;分享出来以飨读者。

    如今,开源已经成为主流,可?#36816;担?#25972;个信息产业已经从过去的闭源模式转换为现今的开源模式。各种开源公司纷纷创新不同的开源模式,其中以 RedHat、Google、Facebook 等公司所取得的成绩最为耀眼。2018 年的时候,我曾经参与“开源社”主持的《2018 中国开源年度报告》的撰写工作,并建立了一个数学分析模型,?#28304;?#26469;对中国的互联网公司的开源项目分析其活跃度和健康?#21462;?#35753;我既感意外,也不意外的是,阿里系的开源项目占据了活跃度排行榜前五的第一、第二和第?#27169;?#29978;至在前五十个项目中,阿里系的开源项目占据了超过一半的份额!我不意外的是,业界一直对阿里在开源方面的动作和力度颇有感受;意外的是,这?#33267;?#24230;还是超乎了?#19994;?#24819;象。这其中包括阿里巴巴集团和蚂蚁金服等都贡献了相当可观的开源项目。

    缘何开源

    作为一家商业公司,宣称自己开源,甚至也形式上开源一些代码,其实已经是很常见的事情了。但是,真正能将开源与公司的技术演进相融合,并能?#34892;?#22320;助推公司业务发展的,却并不太多。这件事其实并没?#24515;?#20040;简单——远非只是上传到GitHub那么简单。

    根据业界的经验,在公司的技术产品开源方面,要将现有场景的代码开源,至少需要在已经运行稳定、结构清晰的现有代码基础上多付出30%的技术投入,?#28304;?#30721;进行梳理、完善和通用化,才能做到初步的代码开源;而进一步要将这些开源代码维护下去,乃至于和公司业务线上的产品代码保持同步发展,多付出的技术成本还?#23545;?#19981;止这些。作为一个互联网技术老兵,我?#28304;?#28145;以为然。

    那么,蚂蚁金服是如何说服公司决策层在?#24418;?#30475;到开源回报的前景下,同意付出这么多的额外代价来支持开源的呢?#23458;?#21160;开源的力量是因何而来的?

    “首先,开源是个共赢的模式,对于蚂蚁金服来说,开源可以扩大技术服务场景,为支付、金融等更多的客户提供服务,提升合作伙伴的效率。”杨冰说,“虽然,蚂蚁金服已经有很多的业务场景,也在很多场景下取得了超大规模的?#23548;?#32463;验,但是,依然存在没有覆盖到的金融服务场景。而将技术开源出来,可以供更多的客户应用到其自身的场景下——这些场景?#34892;?#30340;补充了蚂蚁金服的技术应用面,也为更完善的技术框架奠定了基础。因此,我们选择将SOFA中间件框架逐步开源出来,在贡献给社区的同时,?#36130;?#24453;社区、合作伙伴甚至客户,都能够一起参与共建,形成行业标准和最佳?#23548;!?/p>

    “其次,对金融服务来说,监管和自主可控的要求更多,”杨冰接着谈到,“客户也希望可以对其所采用的技术有更多的掌控。”开源是一种可以使客户和上下游产业?#39184;?#21442;与?#22836;?#23637;的可?#24515;?#24335;。

    “所以,其实并不是技术部门去说服公司决策层去开源,而是业务发展的自然选择,这也是一种合理的发展方向。”他总结道。这样的结果,其实是和当前流行的开源商业模式所暗合的。

    “另外,如你所说,确实在开源时,我们做了很大?#27597;?#36896;。以可扩展化的方式来层层构建SOFA框架的能力,保证SOFA的内部版本和开源的版本采用的是同一个内核。在开源时,剥离了特定业务的逻辑,而保?#33267;?#20844;司内部的业务线上的代码和开源代码的核心是一致的。这样,只要公司的业务在?#20013;?#21457;展,开源的代码就会一直维护和演进下去。所以SOFA的内部版本就是在开源版本之上扩展了内部逻辑和历史版本的兼容逻辑。开源版本的核心逻辑,内外是一致的,并在蚂蚁金服的生产环境中被广泛使用,同时会随着蚂蚁金服自身业务诉求的驱动不断的演进。”杨冰补充道,“但这是值得的,在为开源代码做改进时,也是为公司自己的业务做改进,这是双赢且可?#20013;?#21457;展的。”

    很多公司在初涉开源时,常常有疑虑,将核心技术开放出去,会不会导致竞争对手的技术提升,会不会造成更大的技术竞争压力?

    “事实上,我们在最初准备开源时,也有讨论过这个方面。技术要被更多人用、更多场景用,才会有发展。而开放的技术才能带来团?#25317;?#21457;展,因为技术是动态发展的,作为开源的一方,事实上在技术上是相对领先的。开源和掌握是两码事,掌握和用好又是两码事,所以,因开源而带来的竞争,其实是助推整个开源体系的发展的,是良性的、有益的。”杨冰说,“而从社区和行业现状看,大家都在开放,封闭的技术体系会逐渐落后。只有开放才能求同存异,?#39184;?#21457;展。”

    花絮

    我问蚂蚁金服的朋友,在你们开源中有什么有趣的“段子”吗?可以讲来听听。

    我朋友过了几天后,给我发来?#33487;?#26679;一段文字:

    “参与双十一的中间件团?#25317;?#24120;态是什么呢?

    当晚,团?#25317;?#24120;态大概就是喝着茶等零点高峰,高峰期过了之后,当然就是参与买买买啦。

    我们很多的一些事情的初始的想法都是来自于双十一当天的夜?#27169;?#20284;乎在经历了紧张的零点高峰之后,脑细胞特别活跃。

    对于基础设施团队来说,双十?#20976;?#26159;一次大考的结束,考完成绩出来了,我们就想?#32842;?#19968;些有挑战的事情,于是我们会天马行空地聊一聊对于下一年在技术上需要去做的事情。而在2017年的双十一当天,SOFA的几个同学就围在一起聊了SOFA能不能开源?为什么要开源?开源和商业化之间的关系?开源后要做哪些事情等等,这个算是SOFA开源的第一?#25991;?#37096;讨论。

    从这?#25991;?#37096;讨论之后,经过了大?#21450;?#24180;的准备时间,我们在2018年4月份正式宣布开源并一直在逐步开源的进程中。”

    他说,这就是他们憋了半天想出来的“段子?#20445;?#21704;哈哈,这群可爱的技术人啊。

    SOFA的演进和开源之路

    SOFA中间件框架是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融?#23545;?#21407;生架构所需?#27597;?#20010;组件,是一套分布式架构的完整的解决方?#31119;?#20063;是在金融场景里锤炼出来的最佳?#23548;?/p>

    SOFA开源全景图,涵盖了微服务领域?#27597;?#20010;方面,同时也积极和业界流行的开源组件结合,包括阿里巴?#22270;?#22242;开源的Nacos、Sentinel等,为用户提供更加广泛地选择

    SOFA作为一个演进了几年的框架,也一定程度上代表了蚂蚁金服的技术体系的演变,并?#34433;?#22312;形成了开源核心、开放式(组件式)开源的模式。SOFA从2018年开始开源,但是我比较好奇SOFA开源之前的发展旅程是怎样的。

    杨冰说,“最早的时候,在蚂蚁金服还没有从淘宝分拆出?#35789;保?#20844;司内使用过一个名为Webx的框架,但是随着业务的发?#36141;?#25216;术的演讲,这套框架已经不太适应淘宝的需求。那个时候胡喜(现蚂蚁金服副CTO)就重新创建了一个新的框架——SOFA中间件框架。”

    SOFA中间件在蚂蚁内部经历了十年的发?#36141;?#20116;代架构的演进,被广泛应用在包括支付、借贷、信用、基金、保险等全金融场景,支撑着蚂蚁平稳度过历次双十一、双十二、新春红包等大考,创造了25.6万笔每秒的交易记录,并还在不断刷新这个记录。

    “SOFA的版本迭代和公司的架构发展是密切相关的。比如说我们从SOFA1刚刚开始的时候,会做模块化的事情。到了SOFA2开?#23478;?#20837;整个微服务的体系。到SOFA3我们希望能够在微服务体系下,能够把一些服务聚合在一起,组成一个链路出来,这就是我们说的合并部署。”

    “随着每年的交易量的不断上升,让我们必须?#25317;?#20307;架构转到服务化架构,然后演进到单元化架构、弹性架构。SOFA大部分的功能升级都?#21069;?#38543;着整个公司的技术架构目标上?#27597;?#22823;挑战进行的。”杨冰说,“我个人是经历了SOFA1到SOFA2开发过程,从SOFA1整体完成落地,到SOFA2引入了服务的架构。到了SOFA3我?#21069;裈omcatJBoss那层替换掉,变成自研的应用服务器,解决了我们内部系统做类隔离、模块隔离以及合并部署的问题。”

    SOFA4:迈入开源

    正如前面所谈到的,开源既有的代码是需要做许多繁重的工作的,所以,SOFA直到发展到第四代才为开源做好了准?#31119;?#24182;将开源作为SOFA4的核心目标。

    “SOFA发展?#33487;?#20040;多年,是有非常重的历史包袱的,这也是我们为开源准备了非常长时间的原因。在从SOFA3到SOFA4的整个过程当中,在把整个SOFA做轻量化的过程当中,其实就是在为开源做准备。有一些公用的能力(和蚂蚁金服的整个架?#22815;?#19994;务没有强相关的部分)我们都希望可以开源出来。我们做开源这件事情不会把我们代码分为完全两套东西,然后两个分别演进,我们觉得这不是开源的正?#32439;?#27861;。”杨冰说,“另外,开源对我们整个团?#25317;?#28040;耗是非常大的,我们希望用同一套代码?#35789;?#29616;内部的兼容和外部的开源,我们会在开源的代码当中留一些比较好的扩展点,这也是对我们本身代码架构可扩展性的挑战,目前我们做到的程度就是这样的。”

    SOFA从2018年4月开始对外开源,得益于社区和开发者的认同,在经历了半年多的时间,SOFA所有相关的开源代码,获得了累计10000+的Star和80多个代码贡献者。

    在线上社区方面,SOFA开源的站点(
    https://www.sofastack.tech/)也是在不断沉淀相关的文章和文档。

    杨冰说,“原先我们觉得开源就是最好的,然而在SOFA演进的过程中,我们发现我们的场景足以构建出来比开源软件复杂度更高、能力更强的体系。?#26131;?#24049;也在参与这个的过程当中收获了很多。这件事情也是从一个侧面?#20174;?#20102;蚂蚁金服技术演进的历程。我们从最早的IOE架构,到部分采用开源软件,再到逐步开始全套自研。在自研过程当中,拥抱部分开源软件,并且去做深度的创造,做一些自己的创新。整个过程其实是一条非常艰难的路。”

    杨冰说,“我认为整个基础设施是应该走开源化道路的,因为从Linux到Kubernetes,已经被一次又一次地证明。越底层的基础代码,包括SOFA中间件这样的东西,看起来逻辑没有业务系统那么复杂,然而其实它考虑的一些细节、设计的优雅性、架构的健壮性其实是非常强的。而且,它一旦要去支撑那么多业务系?#24120;?#25972;个工程?#27597;?#26434;度也是非常高的,很难用一家公司的程序员去搞定整个技术栈。SOFA也是一样的,我们越来越发现这方面的一些趋势。我们靠一己之力去做是很难的,再加上我们既要对内支撑又要对外支持。现在明?#29730;苏?#26679;一个趋势,因此我觉得应?#27809;?#39304;社区,和社区共建才是比较好的一条路。以Linux为代表的疯狂发展,以及伴随着而来的商业化生态的?#27604;伲?#26159;一次又一次向世界证明,开源和商业化的结?#40092;?#21487;以非常完美的。”

    SOFA5:拥抱Service Mesh

    从多年前的SOA架构,到现在的容器化、微服务的技术演变,我们可以看到虽然技术在逐步变化,但是其主体指导思想还是一脉相承的。蚂蚁金服在微服务方面已经走到了探索的前沿,那么,当前的Service Mesh技术在SOFA的发?#26500;?#31243;中会起到什么作用?

    “这两年我们在积极拥抱、布局Mesh,在演进方向上,我个人比较关注Mesh这个方向,因为我个人认为这?#21069;?#22522;础设施沉淀到我们整个技术平台当中非常关键的一环。这也是我们SOFA5的主要目标。”杨冰说,“随着容器技术的兴起,可以将以往的中间件组件拆分?#27597;?#32454;、更灵动,而资源利用率和运维效率也得到了进一步?#27597;?#21892;。”

    近年来,随着Kubernetes确立了其在容器领域的统治地位,以及Serverless模式等不可变基础设施的架构进一步成熟,可以将服务在上层进一步进行抽象,为现在大规模的容器化、微服务化奠定了坚实的基础。

    也有一些业界的意见认为,ServiceMesh将会取代中间件。

    杨冰认为,“蚂蚁金服已经在中间件方面探索的比较深远,规模也相当的大,为拿到业务红利做了很多优化,这些能力还是会存在,只是通过换了一种跟应用集成的方式,让SDK变得更轻。随着基础技术平台逐步走向云化,我们认为ServiceMesh将会是连接现在这个时代和云原生时代的桥?#28023;?#32780;且无论中间件还是很多基础技术组件都将走向Serverless。Serverless对开发者而言将是一种全新编程模型,对运维人员而言则是颠覆性的运维模式,甚至是一种Opsless,?#34433;?#20449;广义的Serverless模?#20132;?#25104;为云原生时代的主角。”

    在蚂蚁金服的Service Mesh领域,涉及两个开源项目SOFAMesh和SOFAMosn。这两个项目的定位是这样:

    SOFAMesh项目:是蚂蚁金服ServiceMesh的控制平面,分支自Istio项目。在Istio体系和框架内进行了功能补充、扩展、增强和改进,立足于探索并解决Istio生产落地,尤其是大规模落地中遇到的?#23548;?#38382;题,在充分验证之后贡献回Istio上游。

    SOFAMosn项目:蚂蚁金服新型的基础设施和中间件的底层网络通?#23186;?#20915;方?#31119;?#21487;以有多种产品形态。在蚂蚁金服ServiceMesh中承担数据平面的角色,和SOFAMesh项目配?#40092;?#29992;,兼容Istio体系。此外SOFAMosn还将用于
    Ingress/APIGateway/ServerlessFunctionGateway等场景。

    目前蚂蚁金服开发团队已经和Istio开发团队建立联系,在Istio大规模落地方面进行合作和探索,相关?#23548;?#21644;创新会在生产验证/代码稳定之后会贡献出来。

    ServiceMesh是一个非常新的技术,Istio也是一个新兴的项目,在生产落地上存在很多需要了解的细节和可能遇到?#27597;?#31181;问题。而且?#34892;?#38656;求是有共性的,如RPC协议的支持,旧有非微服务应用的支持,现有应用升级Istio的平滑迁移等。

    “我们开源SOFAMesh和SOFAMosn,一方面是希望可以将我们在ServiceMesh和Istio落地的知识和经验分享出去看,另一方面希望通过开源共建的方式一起来将这个两个项目做?#27597;?#23436;善。”杨冰说,“我们虽然现在开源出来的版本?#20849;?#22810;,但是未来我们会把整个金融分布式云原生架构的领域补齐,一方面会把内?#23458;?#39046;域产品更完整的开放出来,另一方面和每一个领域的社区实现都做到兼容和可互相集成。”

    NEXT:分布式事务以及服务注册中心开源

    蚂蚁在2007年就开始在核心的业务中去使用自研的分布式事务框架去解决服务化以及数据库拆分后的数据一致性问题,经过10多年的演进,SOFA的分布式事务框架得到了蚂蚁内部业务广泛地使用与锻炼,包括蚂蚁金服最核心的交易、支付、账务系?#36710;齲?#22312;期间,SOFA分布式事务框架也演化出?#33487;?#23545;不用的业务场景的使用模式,兼顾研发效率与性能。而阿里巴巴前几个月也开源了其分布式事务框架Fescar,蚂蚁金服和阿里巴巴将在分布式事务这个领域上强强联手,SOFA的分布式事务框架将与Fescar合并,为业界提供更加优秀,更加全面的开源分布式事务解决方案。

    服务注册中心是微服务领域的重要组成部分,SOFA的服务注册中心最早源自于淘宝的初版ConfigServer,在支付宝/蚂蚁金服的业务发展驱动下,近十年间已经演进至第五代,具备无限水平扩展,高效的推送以及基于AP架构高可用能力,同时结合SOFARPC具备异地多活单元化架构支撑能力,SOFA服务注册中心的开源将会极大丰富整个SOFA开源的生态体系,也为微服务领域带来一个全新的服务发现解决方案。

    总结

    纵观蚂蚁金服的SOFA中间件开源的历程,我们看到了一个大型的商业公司是如何将开源核心模式和其商业模式紧密结合的;其走过的从采用专有软件、应用部分开源软件、演化自身的自研软件,到开源核心软件、全面拥抱开源世界的路径值得很多技术企业学习和思考。(来源: 蚂蚁金服科技)

    “五一”旅游消费旺季刚?#25112;?#26463;,电子商务消费纠纷调解平台(www.315.100ec.cn)用户维权案例库显示,在线旅游(OTA)成为消费投诉“重?#26234;保?#35746;票、出行、酒店住宿、旅游景点消费?#27597;骰方?#37117;存有诸多猫腻。其中,同程旅游、艺龙、途牛、携程、飞猪、去哪儿、马蜂?#36873;?#36208;着瞧旅行、联联周边游、世界邦旅行、侠?#34385;?#23376;游、骑驴游、小猪?#22871;?#31561;平台用户投诉较多。问题集中表现为收取高额?#20284;狽选?#35746;单无法消?#36873;?#19979;单后?#35328;?#32422;、退?#37027;?#36973;拒、货不对板、特价商品拒绝退款等。为此,电子商务消费纠纷调解平台(www.315.100ec.cn)进行2019电商系列调查专项行动之“五一”在线旅游,通过快评发布、滚动曝光、专题聚焦、密集播报、媒体联动、法律援助,关注在线旅游平台的消费权益保障。如果您在消费中遇到OTA平台(在线旅游)?#27597;?#31867;问题,?#38431;?#21521;我们发来求助。

    股票名称/代码
    $/总?#20160;?/div>
    $/营收
    $/净利润
    • 阿里巴巴BABA.US
    • 1092亿
    • 385亿
    • 94.5亿
    • 京东JD.US
    • 282.6亿
    • 557.4亿
    • 7.7亿
    • 唯品会VIPS.US
    • 583.2亿
    • 112.2亿
    • 0.4亿
    • 宝尊电商BZUN.US
    • 4.60亿
    • 6.40亿
    • 0.3亿
    • 聚美优品JMEI.US
    • 7.60亿
    • 8.90亿
    • -0.06亿
    • 寺库SECO.US
    • 3.60亿
    • 5.80亿
    • 0.03亿
    湖南快乐十分公式