最近几年来,双11、双12等成为了网络购物狂欢节,它已经发展成为全世界电商和消费者都参与进来的盛宴。对于我们用户来说,我们看到的是尽管是有上千万人的哄抢,但是购物和支付系统仍然可以处理泰若;而对技术人员来说,双十一无疑已经成为一场大考,考量的角度是整体架构、基础中间件、运维工具、人员等。一次成功的大促准备不光是针对活动本身对系统和架构做的优化措施,比如:流量控制,缓存策略,依赖管控,性能优化……更是与长时间的技术积累和打磨分不开。那么这篇文章就是在讲支付宝的整体架构,让我们有了一个初步认识,然后以本次在大促中大放异彩的“蚂蚁花呗”为例,大致介绍一个新业务是如何从头开始准备大促的。
架构
支付宝的架构设计上应该考虑到互联网金融业务的特殊性,比如要求更高的业务连续性,更好的高扩展性,更快速的支持新业务发展等特点。目前其架构如下:
整个平台被分成了三个层:
-
运维平台(IAAS):主要提供基础资源的可伸缩性,比如网络、存储、数据库、虚拟化、IDC等,保证底层系统平台的稳定性;
-
技术平台(PAAS):主要提供可伸缩、高可用的分布式事务处理和服务计算能力,能够做到弹性资源的分配和访问控制,提供一套基础的中间件运行环境,屏蔽底层资源的复杂性;
-
业务平台(SAAS):提供随时随地高可用的支付服务,并且提供一个安全易用的开放支付应用开发平台。
架构特性
逻辑数据中心架构
这套架构解决了几个关键问题:
-
由于尽量减少了跨单元交互和使用异步化,使得异地部署成为可能。整个系统的水平可伸缩性大大提高,不再依赖同城IDC;
-
可以实现N+1的异地灾备策略,大大缩减灾备成本,同时确保灾备设施真实可用;
-
整个系统已无单点存在,大大提升了整体的高可用性;同城和异地部署的多个单元可用作互备的容灾设施,通过运维管控平台进行快速切换,有机会实现100%的持续可用率;
-
该架构下业务级别的流量入口和出口形成了统一的可管控、可路由的控制点,整体系统的可管控能力得到很大提升。基于该架构,线上压测、流量管控、灰度发布等以前难以实现的运维管控模式,现在能够十分轻松地实现。
-
这比传统的“两地三中心”架构有更好的业务连续性保障。在“异地多活”的架构下,一个IDC对应的故障容灾IDC是一个“活”的IDC,平时就承接着正常线上业务,保证其稳定性和业务的正确性是一直被确保的
分布式数据架构
支付宝在2015年双十一当天的高峰期间处理支付峰值8.59万笔/秒,已经是国际第一大系统支付。支付宝已经是全球最大的OLTP处理者之一,对事务的敏感使支付宝的数据架构有别于其他的互联网公司,却继承了互联网公司特有的巨大用户量,最主要的是支付宝对交易的成本比传统金融公司更敏感,所以支付宝数据架构发展,就是一部低成本、线性可伸缩、分布式的数据架构演变史。
现在支付宝的数据架构已经从集中式的小型机和高端存储升级到了分布式PC服务解决方案,整体数据架构的解决方案尽量做到无厂商依赖,并且标准化。
总结
经过这么多年的高可用架构和大促的准备工作,蚂蚁金融技术团队可以做到“先胜而后求战”,主要分为三方面技术积累:“谋”,“器”,“将”。
“谋”就是整体的架构设计方案和策略;
“器”就是支持技术工作的各种基础中间件和基础组件;
“将”就是通过实践锻炼成长起来的技术人员。
个人总结:分布式数据架构是我们大数据技术曾经讲过的一个知识点,当时只是感慨当今世界大数据的奇妙和厉害之处,今天实实在在领略到了它的功用,深有体会。