最后,最核心能力就是信用。如果未来真的建立一个全社会的人与人、机构与机构、人与机构之间新型的信任机制,整个金融服务的成本可以进一步大幅降低,也可以更好的控制。「所以我们认为这三个是未来要做数字金融要突破的三个核心能力。
能支撑住连接、风险和信用三大能力的是交互、决策、交易和协同四大业务技术能力。程立说,蚂蚁金服现在系统做得这么大,但每个系统剥开来看,一个个组件无外乎就是做了交互、决策、交易和协同这四件事情。第一,交互技术,包括怎么与消费者、机构等交互,而像刷脸支付、人脸识别进地铁等新交互技术,不但带来了体验上的变化,也带来了商业流程的变化。第二,决策技术。无论是风险控制,还是建立信用,甚至一个营销事件,背后都有一套决策引擎。比如经过一系列的用户行为画像,自动化地通过算法和模型给出决策。而决策技术的提升,可以带来连接、风险和信用能力的提升。第三,用最低的成本处理交易。只有以更低的成本、甚至是远低于银行处理交易的成本,才有可能让很多新业务形态发生、提高交易能力,像淘宝的双十一大促随着交易能力的提升,体验和规模都增长得非常快。交易能力还体现在扩展能力,如何让数字金融服务可以服务 1 亿,甚至 20 亿到 30 亿的全球消费者,根本在于低成本的系统扩展能力。第四,协同技术。通过重构整个金融产业链条上的各个环节的连接,通过技术平台连接银行、金融机构等,从而让连接的机制发生变化。
|
在四大业务技术能力之下的金字塔基,就是最根本的基础技术BASIC,即区块链、人工智能、安全、物联网和计算。这五大技术基础技术就是蚂蚁金服技术战略投入的方向,其中SOFA就是计算的核心之一。
程立强调,当前其实已经有机构看到了互联网金融应用和数字金融的大方向,但是落实到企业或金融机构去解决具体问题时,又有两个不同的路径,一是金融机构开始用数字技术去解决过去解决不了的问题,二是像蚂蚁金服这样的互联网企业从科技视角去提供金融服务,而且这二条路径现在慢慢越来越走到同一个方向。当殊途同归的同时,就出现了金融机构和互联网企业之间协作的新方式,因为金融机构有核心能力、互联网企业也有自己的核心能力,双方正在形成一个新型的合作方式。
此外,科技金融或者金融科技还有「硬币的另外一面」,这就是金融监管的科技化升级:一方面发展金融科技,一方面发展新型的监管科技,两者结合的背后是真正对整个金融系统的风险洞察和理解。只有整个金融系统可持续发展,金融系统里的每个单元才是可持续发展。
对于蚂蚁金服来说,风险是永远的底线。蚂蚁金服有一支非常固定的风险团队,这个团队从来没有人员缩减,永远保证足够的人力。关于业务创新、用户体验和监管,这相当于天平的动态平衡,一旦动了一个、另外两个就会联动,所以这三者是要一起解的局。对于蚂蚁金服来说,每个新业务都会同时从几个方面进行评估,也会与监管机构做非常深入的沟通,基于更全面的理解之后,在各方面都取得最优的形态和背后的技术实现,再推出新业务。
程立强调:「对蚂蚁金服或者阿里巴巴来说,首先我们是非常的理想主义和愿景驱动,当确定可以给全世界带来更多平等的机会时,这一定指引我们的方向。但是我们也是一个非常现实主义的公司,当遇到具体问题的时候,会看怎么能够很好的绕过当下的障碍,从而走到要走向的未来。在遇到具体的现实问题的时候,也不会采取非常僵硬的方式。具体问题肯定是要具体分析的,但是我们的愿景不会变,也不会把所谓的价值观变成教条。商业上的可持续发展,对我们来说非常重要,如果我们商业上都不能可持续发展,就走不到未来。」
SOFA 的特性
在更包容、更可持续的绿色数字金融大愿景之下,从2005年每秒处理1笔交易到2017年双十一峰值25.6万笔交易/秒的交易处理能力,从单一的支付到覆盖微贷、理财、保险、信用等多种服务,通过十多年的探索与实践,蚂蚁金服形成了一套具备海量数据并发处理能力,满足金融级一致性和高可用需求的分布式架构平台,这套架构被称之为 SOFA,是一整套完整的金融级中间件产品技术和演进式架构转型服务体系。
SOFA 历经了五代的发展。在第五代也就 2017 年,伴随着蚂蚁金服科技的整体对外开放,全称正式演化成 Scalable Open Financial Architecture。Scalable,以「异地多活」为目标,使系统能在多个数据中心内任意扩展,提供机房级容灾能力,保证业务连续性;Open,整体设计秉承「开放」原则,使新兴架构向下兼容,能与经典架构有机融合,同时开放技术标准,拥抱开源生态;F 代表 Financial,即这个架构是金融级,安全、稳定、可靠是其内在的属性,具备「分布式事务」和「无损容灾」能力,保证在分布式架构下承受高并发交易,在系统扩展、容灾恢复、更新发布时确保数据无损,服务可用。
SOFA 架构由支付宝自 2007 年开始自主研发的 SOFA(Service Oriented Fabric Architecture) 框架发展而来,旨在解决 SOA 架构下的服务模块化编排协作(Fabric)问题。演化至今,已经是一套完善的金融级大规模交易处理架构,很好的解决了蚂蚁业务高速发展中,对高并发交易处理能力、强一致性、业务连续性、秒级容灾和弹性伸缩等方面的要求,相比传统的金融 IT 架构和通用的分布式架构具有诸多优势:
·高并发下的一致性:通过应用层、数据层、网络层和机房层面消除了单点和瓶颈,整体架构支持无限伸缩,创造了 25.6 万笔/秒峰值处理能力的世界纪录。同时通过基于 TCC(Try-Confirm-Cancel) 编程模型的微交易架构,在分布式架构下做到了数据的强一致,是全球目前唯一在超大规模金融级分布式架构上验证过的分布式事务方案;
·异地多活+一致性容灾能力保证极高的可用率:在数据层通过蚂蚁金服自研的金融级分布式关系型数据库 OceanBase 实现多库多地多活和强一致切换,在机房层实现异地多活单元化架构,整体达到了 99.99% 的可用率;
·按需供给弹性伸缩:通过数据、应用、流量弹性伸缩和基于单元化的弹性混合云架构,系统具备了按业务粒度进行资源调配的能力,连续两年通过该技术实现双十一、双十二、新春红包等高峰业务弹性伸缩,2016 年双十一 50% 业务在运营高峰期运行在云上,结束后实现资源释放,实现成本的极大优化。
杨冰作为现在蚂蚁金服中间件团队的负责人,强调 SOFA 为全自研的金融级分布式架构,理论上可以支持无限伸缩架构(双十一已经是实际的极限情况,目前还没有出现需要无限伸缩的实际业务场景),并且能够通过极低成本实现。
首先,SOFA 的无限伸缩能力是具备「伸」和「缩」的能力,而且不仅是数据库能无限伸缩,应用、网络等都能做到无限伸缩,一套架构实现所有层面的无限伸缩。
第二,在一致性问题上,SOFA达到了一致性和性能上的平衡,实现了金融交易业务的分布式事务一致性,这属于蚂蚁金服的黑科技。
第三,做整体机房及秒级容灾,现在配备蚂蚁金服自研的 OceanBase 数据库,能够达到更好的效果。
第四,极低成本,SOFA 架构具备演进能力,需要的时候可以做弹性伸缩。例如,单元化能力可以「切一个 1% 能力的支付宝」,再以这样的单元维度去增加,从而达到无限水平扩展;还可以根据业务维度,把交易系统创建到云上再收回来,比如新春红包的时候,扫五福系统很忙,就可以把扫五福系统弹到云上。
所以,SOFA的关键词包括:无限伸缩能力、一致性、秒级容灾和极低成本并且做到极致,从而定义了新的「金融级分布式架构」。
SOFA 的缘起
程立,花名鲁肃,摩羯座,工号 3896。2004 年,支付宝刚刚有自己独立的系统,基础平台还得靠外包团队提供技术支持。而 2004 年 2 月,程立还在上海交大攻读博士,一个偶然机会让他接触到阿里巴巴,并以外包架构师的身份协助支付宝网站的建设。一年合作下来,程立决定放弃博士学位,并于 2005 年 2 月正式加入支付宝。程立以严谨务实、逻辑严密,被蚂蚁技术团队的同事视作「神一样的存在」。
作为曾经的支付宝首席架构师、支付宝第一代架构设计者,以及支付宝史上最大危机——2008 年 1 月 1 月停机发布 17 小时——的救火大队长,可以说如果说没有程立,就没有现在的支付宝。在蚂蚁金服入门手册《拾念》中,记载了支付宝史上最惊心动魄的 17 小时:2008 年元旦,支付宝宣布要停机 8 小时发布「财务三期」,但各种意外接连出现,当时「财务携款潜逃」、「湿抹布导致服务器宕机」的传言满天飞、没有包裹送的快递小哥发帖跪求支付宝快点回来,程立在关键时刻敲了近两个小时的代码,最终结束了 17 小时的停机发布。
程立讲述了 SOFA 的诞生历史:最早的支付宝系统,是由还不太会大系统开发的人员实现的,像程立刚从学校出来就做支付宝第一代架构,因此第一代系统非常简单——就是一个简单的应用,装在一台应用服务器上,使用一个数据库,服务一个大客户淘宝。一个简单的系统,支撑了支付宝从 2004 年到 2006 年早期的发展。支付宝早期的系统架构虽然简单,但好处是特别快,产品经理希望怎么改、马上改一下代码就能实现了,比如说支付宝红包,从需求提出到上线就四天的时间,但是到后面,这样一个简单系统无法支撑更多的交易量,也不能支撑更加复杂的业务。
从 2006 年底开始酝酿,那时候支付宝面临最大的一个问题是业务变得越来越复杂,而工程师数量越来越多,原来的系统被称为 monolithic——即庞大的单体系统的意思。这个系统慢慢变得无法装载更多更复杂的业务逻辑,也不能让那么多工程师在一起并行的工作。当时,支付宝希望可以成百上千个项目并行进行,而且每个工程师可以不受干扰的工作,而当业务逻辑增加的时候,系统的复杂度不要成指数级上升。
所以,在 2006 年的时候,支付宝技术团队要做对未来的技术架构做一个选择,当时有两派意见:一派意见是向银行老大哥学习,老大哥已经走了十几年,这条路一定是安全的;另一派意见是走一条新的路,即用分布式的架构去支撑未来的交易支付系统,而这条路在当时还没有人走过。这里的分布式架构,并不是客户端/服务器时代的面向企业级的小规模分布式架构,而是在互联网时代的超大规模分布式架构。经过差不多大概一年左右的讨论和思考之后,支付宝团队做了一个决定,要走一条过去没有人走过的路,于是启动了支付宝第二代架构的建设,即支付宝技术系统的服务化。2007 年开始,支付宝启动了对交易系统、商户系统、会员系统、支付清算系统的改造。
就在那一年,支付宝到大连招聘遇到了胡喜(花名:阿玺),他之前已经在前一家公司研究 SOA 以及 OSGi 相关技术,于是就加入支付宝团队,帮助程立做下一代架构的转变。胡喜回忆,他在 2007 年加入支付宝团队的时候,研发人员都比较痛苦。当时的支付宝使用的是阿里巴巴的统一技术框架 WebX。WebX 是阿里自研发的一套基于 JavaServlet API 的通用 Web 框架,在阿里巴巴集团内部广泛使用,2010 年底向社会开放源码。WebX 比较偏向于前后端融合的架构,能快速搭建一个网站,但是没有考虑到业务发展到一定程度后的复杂度,怎么更好的搭建后台。例如,当时支付宝的一个电子钱包系统叫 iWallet,每次系统启动就得五六分钟,开发人员出去抽根烟,回来后如果发现错误又得修改后重新启动,开发人员每天不是在代码编译的过程当中,就是重启的过程当中,一个系统包含了几十个工程,十几个团队并行开发,项目并发也导致了很多的合并冲突和耗时,整个研发效率低下导致很难进行下去。于是,从那开始就着手研究解决支付宝整个架构的变化。
(来源:极客公园)