每年“双11”都是一场电商盛会,消费者狂欢日。今年双11的意义尤为重大,它已经发展成为全世界电商和消费者都参与进来的盛宴。而对技术人员来说,双十一无疑已经成为一场大考,考量的角度是整体架构、基础中间件、运维工具、人员等。
一次成功的大促准备不光是针对活动本身对系统和架构做的优化措施,比如:流量控制,缓存策略,依赖管控,性能优化……更是与长时间的技术积累和打磨分不开。下面我将简单介绍支付宝的整体架构,让大家有个初步认识,然后会以本次在大促中大放异彩的“蚂蚁花呗”为例,大致介绍一个新业务是如何从头开始准备大促的。
架构
支付宝的架构设计上应该考虑到互联网金融业务的特殊性,比如要求更高的业务连续性,更好的高扩展性,更快速的支持新业务发展等特点。目前其架构如下:
整个平台被分成了三个层:
在2015年完成了基于逻辑机房,异地部署的“异地多活”的架构落地。“异地多活”架构是指,基于逻辑机房扩展能力,在不同的地域IDC部署逻辑机房,并且每个逻辑机房都是“活”的,真正承接线上业务,在发生故障的时候可以快速进行逻辑机房之间的快速切换。
这比传统的“两地三中心”架构有更好的业务连续性保障。在“异地多活”的架构下,一个IDC对应的故障容灾IDC是一个“活”的IDC,平时就承接着正常线上业务,保证其稳定性和业务的正确性是一直被确保的。
以下是支付宝“异地多活”架构示意图:
除了更好的故障应急能力之外,基于逻辑机房我们又具备的“蓝绿发布”或者说“灰度发布”的验证能力。我们把单个逻辑机房(后续简称LDC)内部又分成A、B两个逻辑机房,A 、B机房在功能上完全对等。日常情况下,调用请求按照对等概率随机路由到A或B 。当开启蓝绿模式时,上层路由组件会调整路由计算策略,隔离A与B之间的调用, A组内应用只能相互访问,而不会访问B组。
然后进行蓝绿发布流程大致如下:
Step1. 发布前,将“蓝”流量调至0%,对“蓝”的所有应用整体无序分2组发布。
Step2. “蓝”引流1%观察,如无异常,逐步上调分流比例至100%。
Step3. “绿”流量为0%,对“绿”所有应用整体无序分2组发布。
Step4. 恢复日常运行状态,蓝、绿单元各承担线上50%的业务流量。
分布式数据架构
支付宝在2015年双十一当天的高峰期间处理支付峰值8.59万笔/秒,已经是国际第一大系统支付。支付宝已经是全球最大的OLTP处理者之一,对事务的敏感使支付宝的数据架构有别于其他的互联网公司,却继承了互联网公司特有的巨大用户量,最主要的是支付宝对交易的成本比传统金融公司更敏感,所以支付宝数据架构发展,就是一部低成本、线性可伸缩、分布式的数据架构演变史。
现在支付宝的数据架构已经从集中式的小型机和高端存储升级到了分布式PC服务解决方案,整体数据架构的解决方案尽量做到无厂商依赖,并且标准化。
支付宝分布式数据架构可伸缩策略主要分为三个维度:
根据CAP和BASE原则,再结合支付宝系统的特点,我们设计了一套基于服务层面的分布式事务框架,他支持两阶段提交协议,但是做了很多的优化,在保证事务的ACID原则的前提下,确保事务的最终一致性 。我们叫做“柔性事物”策略。原理如下:
以下是分布式事务框架的流程图:
实现:
蚂蚁花呗
蚂蚁花呗是今年增加的一个新支付工具,“确认收货后、下月还”的支付体验受到了越来越多的消费者信赖。跟余额和余额宝一样,蚂蚁花呗避开了银行间的交易链路,最大限度避免支付时的拥堵。据官方数据披露,在今天的双十一大促中,蚂蚁花呗支付成功率达到99.99%、平均每笔支付耗时0.035秒,和各大银行渠道一起确保了支付的顺畅。
蚂蚁花呗距今发展不到一年,但发展速度非常快。从上线初期的10笔/秒的支付量发展到双十一当天峰值2.1w笔/秒。支撑蚂蚁花呗业务发展的技术体系经过不断演进、已经完全依托于蚂蚁金服的金融云架构。
在2014年12月,蚂蚁花呗团队完成业务系统优化,按照标准将系统架设到了金融云上,依次对接了渠道层、业务层、核心平台层、数据层,使得用户对蚂蚁花呗在营销、下单和支付整个过程中体验统一。
2015年4月,蚂蚁花呗系统同步金融云的单元化的建设,即LDC,使得数据和应用走向异地成为了现实,具备了较好的扩展性和流量管控能力。在可用性方面,与金融云账务体系深度结合,借用账务系统的failover能力,使得蚂蚁花呗通过低成本改造就具备了同城灾备、异地灾备等高可用能力。任何一个单元的数据库出了问题、能够快速进行容灾切换、不会影响这个单元的用户进行蚂蚁花呗支付。在稳定性方面,借助于云客户平台的高稳定性的能力,将蚂蚁花呗客户签约形成的合约数据迁移进去,并预先写入云客户平台的缓存中,在大促高峰期缓存的命中率达到100%。同时,结合全链路压测平台,对蚂蚁花呗进行了能力摸高和持续的稳定性测试,发现系统的性能点反复进行优化,使得大促当天系统平稳运行。在之前的架构中,系统的秒级处理能力无法有效衡量,通过简单的引流压测无法得到更加准确、可信的数据。立足于金融云,系统很快通过全链路压测得到了每秒处理4w笔支付的稳定能力。
蚂蚁花呗业务中最为关键的一环在于买家授信和支付风险的控制。从买家下单的那一刻开始,后台便开始对虚假交易、限额限次、套现、支用风险等风险模型进行并行计算,这些模型最终将在20ms以内完成对仅百亿数据的计算和判定,能够在用户到达收银台前确定这笔交易是否存在潜在风险。
为了保证蚂蚁花呗双11期间的授信资金充足,在金融云体系下搭建了机构资产中心,对接支付清算平台,将表内的信贷资产打包形成一个一定期限的资产池,并以这个资产池为基础,发行可交易证券进行融资,即通过资产转让的方式获得充足资金,通过这一创新确保了用户能够通过花呗服务顺利完成交易,并分流对银行渠道的压力。通过资产证券化运作,不仅帮助100多万小微企业实现融资,也支撑了蚂蚁花呗用户的消费信贷需求。蚂蚁小贷的资产证券化业务平台可达到每小时过亿笔、总规模数十亿元级别的资产转让。
总结
经过这么多年的高可用架构和大促的准备工作,蚂蚁金融技术团队可以做到“先胜而后求战”,主要分为三方面技术积累:“谋”,“器”,“将”。
“谋”就是整体的架构设计方案和策略;
“器”就是支持技术工作的各种基础中间件和基础组件;
点击关注,互联网研发架构师
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。