软件工程:为数十亿用户设计架构
从 2005 年成立以来,支付宝逐渐成长为拥有 12 亿用户的数字生活开放平台,在它背后,是不断演进的技术架构在做支撑。
在过去,我们已经分享过了支付宝伴随着双十一大促一路走来的技术演进,今天,我们邀请到了支付宝全局架构师曹刚,请他给大家分享一下,给 12 亿用户设计架构是什么体验。
所谓全局架构师,就是为整个公司的架构治理和架构演进提供服务的人。不过曹刚也并不是一开始就成为全局架构师,而是从一线研发开始做起,和支付宝共同成长。
支付宝全局架构师曹刚
一线研发:和公司一同成长,掌握架构理念
曹刚 2008 年 9 月加入支付宝,是公司的早期员工之一。加入公司后,他负责快捷支付业务和网银业务的开发,也参加了公司三代架构的建设。
“三代架构是一个非常有里程碑意义的架构体系,鲁肃老苗在公司内提出了 SOA这套架构模式,奠基了今天整个支付宝的技术基础。”曹刚回忆道。当时,支付宝和银行对接,是通过一个专门的银行网关系统对接的,人们通过支付宝付款,就是通过这套网关跳转到银行的网银系统进行支付。但是,这套系统各项功能糅杂在一起,发生问题难以维护和处理,更别提进行扩展了。曹刚和同事们一起,将这套银行网关系统演进成金融网络平台,通过 SOA 理念按照职责和领域进行分层和剥离包含支付指令向银行指令转换的金融交换层、报文拆分解析的网关层、与银行间的查错服务处理层,形成了今天支付宝金融网络的基础雏形。在这个过程中,曹刚对架构的理解逐步深入。
在一线研发的这段日子里,他认为自己收获最大的地方是,很快掌握了 SOA 的架构理念,包括架构设计方式以及整个运维体系、从零开始完成 SOA 架构的搭建,从底层到前端的架构细节等等。这些为他之后承担更大的职责奠定了基础。
成为架构师:从最下游到最上游
曹刚在成为全局架构师之前,分别担任过金融网络平台和财富领域的架构师。
和一线研发相比,架构师的工作不再局限于某一个系统的程序开发,更关注整个平台的体系化是否足够完善,哪些地方有短板,哪些地方需要优化,哪些老的系统是需要治理等。
担任金融网络架构师期间,曹刚重新设计了银行卡资金的流入流出体系,它里面涉及到的支付、退款、对账、查询等能力,和之前相比是更高层次的抽象,通过这种抽象形成了两套系统,分别是以实时交易为主的流入体系和异步处理、批量处理的流出体系。
在这段时间里,曹刚也参与了公司四代架构的改造。在阿里 ALL IN 无线之后,支付的业务量激增,表现在双十一大促上,则是支付峰值每年都会翻上好几倍。因此对金融网络的高可用和高并发的设计也成为曹刚关注的重点。
在应对高峰流量的挑战时,除了支付宝所做的分布式架构和单元化之外,每年双十一曹刚还会和银行方一起做扩容和压测,形成了一整套应对大促的容量规划和全链路压测的体系。“双十一大促,从一定程度上改变了整个国内的银行业 IT 基础能力。”对于这句话,作为这些年在一线和银行并肩作战的人,他的感受是最深刻的。
2016 年,应公司的的需要,曹刚加入了成立不久的财富事业群,成为财富领域的架构师。
虽然同是架构师,但和之前相比,金融网络偏业务底层,是金融基础设施的一部分,并不直接面对最终用户;财富则类似于支付业务的收银台,更贴近一线业务,属于业务的最上游,他的职业转变相当于从业务最下游转到最上游,改变还是很大的。
在这段时间里,曹刚最大的收获是对业务的理解更加深入,视野更加开阔,对架构的整体结构理解更加清晰。做金融网络架构的时候是从底层往上看,看的不是特别全面,在财富领域看业务可以更加完整,可以深刻的理解支付宝的这套架构体系。包括理解每一个领域的内容在整个业务过程中充当什么角色和位置,以理财产品为例,今天我们为什么要上这个理财产品,这个理财产品需要从哪个金融机构引进来,引进的过程中涉及哪些领域的合作才能让产品成功上架面对用户等等问题,都是他在做财富领域架构师之后学习到的。
担任财富领域架构师期间,曹刚推动金融资产交易这一层的架构从烟囱型变成平台型,打造了一个金融资产中台。在过去,理财产品分为很多业务线,包括余额宝、基金、定期、黄金等,都是烟囱化建设,曹刚将其中各类资产公共的、通用的部分抽象出来,沉淀为平台统一为各类业务提供服务,包括理财资产统一登记、计量,资金清算流程统一等,同时又保持每个业务各自的灵活性,这非常考验架构师对架构分与合的判断能力和权衡能力。
全局架构师:推动全公司架构演进与治理
进入 2019 年,曹刚已经在架构领域工作了 6 年时间,这 6 年里他对金融领域的业务和技术都进行了深入的了解和实践,希望到更大的平台去看一看,这一年他加入了架构部,成为了一名全局架构师。
全局架构师最核心的工作目标,就是推动整个支付宝技术架构的演进,同时拉动整个技术组织的升级和发展,协助 CTO 落地全公司的顶层技术战略。他们需要在CTO 战略和各条事业线之间形成良好衔接,推动顶层战略在各条事业线落地,同时挖掘各条线的共性问题,形成拉动全局技术架构演进的课题。
和局部领域架构师不一样的是,全局架构师需要关注整个公司全局性的课题。大部分时间,全局架构师要思考怎么让整个架构体系更灵动,一方面要让业务具备灵活性和自主性,但同时需要将共通的能力沉淀下来。结合公司业务和技术战略方向,全局架构师要定义整体架构升级的大方向,以及当前要做的横向技术课题有哪些。比如支付宝今年的横向课题包括云原生、安全生产、研发效能、数据智能等,然后深度参与或负责其中一些课题的具体落地过程。
全局架构师另一个工作就是关注现有的架构中不合理的的地方。比如研发效能、低水平的重复建设、边界不清晰、分工不合理等,需要推进解决这些问题。过去,我们往往依赖架构师的专家经验来解决这些问题,随着数字化转型的趋势,全局架构工作也在转型,我们要把技术研发过程和技术管理过程数字化、平台化,助推蚂蚁技术架构优化与演进、技术组织升级与发展,通过数据挖掘和分析,建立相关的数据分析产品,直接提供给 CTO 和各条线的技术负责人,让他们更好的发现技术领域的一些问题,并提供专家经验和解决方案,辅助技术管理层决策,从而更加高效的推动问题改进。
全局架构师需要什么样的特质
当前,支付宝正从金融支付平台向数字生活开放平台升级,我们要搭建全球最大的数字生活开放平台、数字普惠金融平台,我们要建设新一代的技术架构体系去更好的支撑业务战略提升,业务在高速发展,要在整个公司层面进行这样的架构升级,相当于给飞行中的飞机换引擎,需要全局统筹,善于取舍和决断,对全局架构师提出了非常大的挑战。
从上面可以知道,全局架构师的工作极端重要,同时对能力和经验都有很高要求,为了更广泛的吸纳人才,支付宝决定向全社会招募全局架构师。
至于全局架构师需要什么的人才,曹刚本身就是一个很好的模板:在垂直领域取得成绩,具备一定的技术影响力,可以认为是这个领域的权威;能力已经被证实过,有带领中型以上团队的经验,同时又追求更大领域的发展和格局,希望到更大的平台来发展。这就是支付宝对全局架构师候选人的画像。
另外,支付宝内部还有一个架构文化,从最开始的鲁肃老苗,通过传帮带而传承下来,其中也包括全局架构师需要具备的四种能力或特质:
首先,需要有业务洞察能力,全局架构师更多的偏业务架构和应用架构,因此对于自己所负责的领域要有独到的理解。就拿支付宝来说,你要理解它做的支付本质是什么?解决什么问题?底层是什么?包括支付、账务、清算、结算、交易平台等等,都需要有自己的理解。
其次要保持心态开放,有些问题一线的同学可能感受没那么强烈,比如两个团队之间的一些合作效率上的问题,但架构师要来解决的话可能伤害到同学们,那么到底要不要解决呢?这里就涉及到具体的权衡,而在这个过程中,要保持开放的心态,要能够容忍各种矛盾。
第三个是架构师需要具有全局视野,做架构本质是权衡和取舍,如果决策的时候只能看到一部分,那么结果就是盲人摸象,决策肯定会出问题。要解决局部领域的问题,需要从全局视野出发,否则最后的方向可能与整个公司的方向背道而驰。而这条对于全局架构师更加是必备的素质。
最后是紧盯结果,需要很强的推动力,架构师不是画几张图就完了,还必须把它落实到架构的原则、架构的元素、系分方案的评审中。因为全局架构师独立于业务线之外,在这样一个环境里推动一个事情往前走是非常困难的,涉及很多的团队协作和沟通。需要有鲜明的观点,并且要能说服很多人,才能得到想要的结果。
你的一个架构决策,将影响超过 12 亿人,支付宝全局架构师虚位以待,欢迎各位有志之士踊跃联络!