《蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践》读后感

文章地址:https://mp.weixin.qq.com/s/UgOmJ2R82D9xTcISAFbxtg

  本文主要对支付宝的架构、架构特性、分布式数据结构、数据可靠性等几个方面进行了介绍。众所周知,支付宝是一个在线支付平台,根据其业务特点,要求这个平台需要有更高的业务连续性、更好的高扩展性、更快速的支持新业务发展的性能。

  目前,支付宝平台被分为三层:①运维平台(IAAS):用于保证底层系统平台的稳定性,主要提供基础资源的可伸缩性,比如网络、存储、数据库、虚拟化、IDC。②技术平台(PAAS):提供一套基础的中间件运行环境,做到弹性资源的分配和访问控制,能够屏蔽底层资源的复杂性。③业务平台(SAAS):提供随时随地的支付服务,且提供一个安全易用的支付应用开发平台。

  由于电子商务的发展,双十一、双十二业务量年年翻番,支付宝的系统容量越来越大,服务器、网络、数据库、机房都随之扩展。由此引发系统规模越来越大,系统的复杂度越来越高,以前按照点的伸缩性架构无法满足要求。所以,支付宝提出了逻辑数据中心架构,其核心思想是把数据水平拆分的思路向上层提到接入层、终端, 从接入层开始把系统分成多个单元。这套架构使得异地部署成为可能,而不再依赖同城IDC,而且实现了N+1的异地灾备策略,大大缩减灾备成本。这套架构在2013年完成并且顺利完成了双十一的考验。

  现在支付宝的数据架构已经从集中式的小型机和高端存储升级到了分布式PC服务解决方案,整体数据架构的解决方案尽量做到无厂商依赖,并且标准化。支付宝分布式数据架构可伸缩侧策略可分为三个维度:①按照业务类型进行垂直拆分;②按照客户请求进行水平拆分;③对于读远大于写的数据进行读写分离数据复制处理。分布式数据架构下,除了要保证事务的原子性、一致性、隔离性、持久性(数据库事务的ACID特性),还要保证其高可用性和可伸缩性,但要实现这些特性难度极大。对此,支付宝设计了一套基于服务层面的分布式事务框架,其在保证事务的ACID特性的前提下,保证了事务的最终一致性 ,称其为“柔性事物”策略。

  支付宝新增加的蚂蚁花呗功能,提供的本月消费下月还的功能越来越受到用户的喜爱,它避开了银行间的交易链路,最大限度的避免支付时的拥堵。在本文中作者提到:

蚂蚁金融技术团队可以做到“先胜而后求战”,主要分为三方面技术积累:“谋”,“器”,“将”:

  “谋”就是整体的架构设计方案和策略;

  “器”就是支持技术工作的各种基础中间件和基础组件;

  “将”就是通过实践锻炼成长起来的技术人员。

  现在各种架构分享中,作者们大多会介绍整体的架构设计方案和策略,但是他们提出的方案大致分为两种:一是纸上谈兵,从来没有经过实际考验;另外一种是提出的方案很好,但是一经实际业务的冲击就会垮掉,最后成功的少之又少。由此,我们可以看出,在一个系统中,理论层面的架构并不起到关键核心作用,而是过硬高稳定性的各种基础设施工具的和身经百战被“虐了千百次”的工作人员的技术支撑。

  但是就目前的市场和业务的发展形式来看,大多数情况下需要的是技术在某个特定时间内有个质的飞跃,但是却不会给你太多考虑设计技术架构的时间,在技术支持和人员能力都不佳的情况下,如何快速优质的完成构建平台架构,从而把更多的时间精力放在业务相关的开发工作中,是每个技术团队都希望实现的事 。

  过去,我们通过一些开源或者商业组件来实现技术共享从而快速解决谋发展技术的能力。但是随着大多数业务变得更加复杂和趋向专业,系统的规模的逐步变大,这种方式的缺点也逐渐暴露出来:①很多组件无法满足大并发情况下的需求;②随着业务更加复杂并趋向专业化,没有可以直接使用的开源组件;③“人”本身的经验和能力是无法传递的。所以现在我们通过“云”分享的技术和业务的能力的方式也发展的越来越快,“蚂蚁花呗”的成功就是一个鲜活的例子。这些都是建立在原来蚂蚁金服用了10年打磨的基础组件和技术人员经验的云服务上的,通过目前基于这种能力,我们目前可以快速给内部和外部的客户组建,高可用、安全、高效、合规的金融云服务架构下的系统。

  

原文地址:https://www.cnblogs.com/qilin20/p/10589619.html