支付宝目前整个平台被分成了三个层:
-
运维平台(IAAS):主要提供基础资源的可伸缩性,比如网络、存储、数据库、虚拟化、IDC等,保证底层系统平台的稳定性;
-
技术平台(PAAS):主要提供可伸缩、高可用的分布式事务处理和服务计算能力,能够做到弹性资源的分配和访问控制,提供一套基础的中间件运行环境,屏蔽底层资源的复杂性;
-
业务平台(SAAS):提供随时随地高可用的支付服务,并且提供一个安全易用的开放支付应用开发平台。
随着支付宝的发展,使用人数越来越多,支付宝开始面临挑战:系统的容量越来越大,各种设备都随之扩展,系统操作也越来越复杂。所以支付宝需要重新来架构,能够将系统做成不断容纳不同新的即将到来的各种问题的系统,能狗提供异地可扩展,和很多容灾方案。为了解决问题,支付宝做了两种架构:
1.逻辑数据中心架构。支付宝决定将从接入层将系统分成多个单元。即将机房中的电脑全部分成不同的单元。每一个单元有一种应用,一层数据,和网络。
通过这种新的架构坚决几个关键问题:
- 减少单元之间的交互和能够同步数据,实现异地部署系统。让整个系统的水平伸缩性提高。
- 增加了使用效率,使系统处理问题的能力加强。
- 可以实现多个异地备份策略,减少灾备成本,同时确保设备真实可用。
- 该架构下业务级别的流量入口和出口形成同一的可管控能力,可路由的控制点。
2.分布式数据架构。按三个维度:业务类型,客户请求,数据复制读写分类来将支付宝内部交易数据主要分为三个大的数据库集群:主交易数据库集群,消费记录数据库集群,商户查询数据库集群。支付宝可以随着交易的增多来扩展这些集群,来做到系统良好的可伸缩性。
支付宝这次架构是技术架构,是利用技术解决支付宝数据量大,操作频繁复杂的问题,通过云将数据分类别存放在不同的服务器内,增加了数据处理效率等。并且将数据处理分成更多的任务,交给更多的人去做。体现了架构的好处。
蚂蚁金融团队对于这次技术架构,做到了“先胜而后求战”,主要分为三方面技术积累:“谋”,“器”,“将”:
“谋”就是整体的架构技术设计方案和谋略。
“器”就是支持技术工作的各种基础中间件和基础组件。
“将”就是通过实践锻炼成长起来的技术人员。
作者告诉我们一个好的架构团队不应该只有好的“谋”,还有过硬高稳定性的各种基础设施工具和身经百战被“虐了千百次”的技术人员的支撑才是最后取胜的关键。
所以我认为要做出一套好的架构需要以下几点:
1.架构的设计首先要从人为出发点,对于软件从事者来说,要以用户的客观体验为出发点,解决软件存在的问题。设计架构就是使软件更加地灵活开发和使用。
2.系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。
3.一个好的架构师应该是通过实践锻炼成长起来的技术人员,首先要能掌握基本的理论和技能。
4.一个好的架构要跟上时代的要求,进行不断地优化
5.最重要一个好的架构要以人为出发点,结果落实到人上去
阅读原文: