9月10日报道(文/吕梦)
相比“李总”这个称谓,李嘉鹏更愿意大家称呼他“泉子”或“笨神”。
“寒泉子”是李嘉鹏在阿里的花名。年大学毕业后,他进入支付宝基础架构部从事Java中间件(蚂蚁金服已开源的Sofa框架)研发;4年后转入阿里JVM团队,开发创建了至今仍然被阿里人广为使用的阿里性能分析平台。
当年,李嘉鹏研发的框架承载了支付宝90%以上系统的运行,各个技术部解决不了的底层问题,都知道“去找寒泉子”。
年底,带着多年对JVM和性能问题的认知和预判,李嘉鹏与童庭坚(花名:子喻)创立了PerfMa(杭州笨马网络技术有限公司),通过一站式IT系统稳定性解决方案为企业提供性能全方位的技术产品支持与专家服务,帮助客户提升系统研发与运营质量。
阴差阳错上了JVM这条“贼船”
尽管一直从事后端系统的基础架构和JVM性能分析相关工作,但李嘉鹏告诉「猎云网」,与Java结缘完全是“阴差阳错”的机遇——阿里并不是他拿下的第一个Offer,大学期间自己主修的也都是前端,当时,他甚至不知道Java虚拟机是什么。
“Java和C++大一也有教过,不过学的都是很基本的概念,用得不多,也不熟。”大学期间,李嘉鹏的兴趣都在Flash、Flex上,大三那年还自研了一个Flex博客,靠它赚得了丰厚的外快。
年国庆节后,李嘉鹏从长沙去广州面试,顺利拿到了迅雷Flash工程师岗位的Offer。
“我回学校后,其他同学才意识到要开始找工作。那时候我没有后顾之忧所以心态也很轻松,就想跟着去武汉面试的同学过去玩。”
在华中科技大学,他们遇到了支付宝的宣讲会。宣讲会后紧接着就是笔试。
“我原本想在教室外面等同学,听说笔试时间有点长,还要换去别的教学楼,索性就和他们一起进去参加考试了。”李嘉鹏说。
命运神奇的地方就在于,它总会以出其不意的方式出现。同学都没面试上,李嘉鹏通过了。经过层层面试,成功获得支付宝的入职机会。
一边是当时风头正盛的迅雷,可以做自己喜欢和擅长的Flash;另一边是还没什么知名度的支付宝,被安排在生疏的Java岗。
最终,李嘉鹏选择了后者,理由很简单,“杭州没去过,听说环境不错,就想过去看看。”
就这样,他进入支付宝,从事和自己专业完全不对口的Java框架的研发。
后来,他问当年的面试官之一鲁肃(时任蚂蚁金服CTO),为什么会选择一个没Java经验的本科毕业生从事这个岗位,对方回答“你当时带着一沓大学做过的项目介绍,你在介绍这些项目的时候,两个眼睛都是放光的。”
“可能面试官们觉得,如果我喜欢钻研这些东西,就算Java基础差一点,以后也能慢慢学会吧。”李嘉鹏说,他们也是自己的伯乐,“如果按照Flash后来的发展趋势,我可能早就转行了,也许在做游戏吧。”
面试官的确没看错,凭着一股韧劲和毅力,这个被“阴差阳错”招进来的小伙子完全通过自学,成为所有人眼中“最熟悉支付宝研发框架的人”。
“因为当时是在基础架构部门,其他业务部门就会觉得,你们技术一定很强,有什么问题找你解决是很正常的。”但初出茅庐,李嘉鹏面对很多问题往往一筹莫展,“常常把我喊到座位上,还有一堆人围着你,有时候我说‘我解决不了要回去再研究一下’,几次之后我觉得特别尴尬。”
为了胜任工作,李嘉鹏下班后继续待在办公室研究源码。那一年相当长一段时间里,他几乎是整层楼里每天最晚一个离开的。
“我想要搞清楚每一行代码为什么这么写?是什么样的逻辑?只有把整个理顺之后,才能知道在什么情况下发生这种异常,解决问题就容易多了。”
仅仅几个月,李嘉鹏就完全吃透了支付宝研发框架。一年下来,用旺旺加他好友的就有上千人,“时不时我就会收到一个消息‘寒泉子帮我看下这个问题’。”用他自己的话说就是:慢慢成了排查问题的“老司机”。
年,通过肉眼看代码,对支付宝交易系统进行优化,他将TPS(TransactionPerSecond,即服务器每秒处理的事务数)从60提升到,按照彼时运维成本估算,相当于为支付宝节省了上亿元的采购费用。
年,移动支付狂飙突进,支付宝异军突起。根据当年支付宝年度对账单显示,移动端支付宝钱包用户数同比增长%。仅“双11”当天,支付宝的无线支付笔数就高达万笔,是年的5倍,无线支付交易额共计亿人民币,是上一年的10倍。
与此同时,支撑整个支付宝系统运行的底层技术问题也越来越突出,框架需要进行大幅升级和改造。
“当时完全是基于OSGI来做,类加载的问题非常明显,被迫要深入到JVM里去。然后我把OpenJDK源码下载下来,比如搜索异常的关键字,通过上下文连蒙带猜是什么原因引起的。但这种方法耗时耗力而且不够精确,我就尝试编译一个Java虚拟机,模拟各种场景做调试,最后费了好大劲才玩起来。”
在李嘉鹏的记忆里,整个过程最痛苦的莫过于“身边没有一个可以和你交流的人,因为他们也不懂”,甚至还发文感慨,真是“踏上了JVM这条贼船”。
对于网络上一些贴子或文章,他从不盲信,“我更喜欢通过实践来证明,所以更多地是从源码角度去看它背后真正的问题。”
这种不断攻克一个又一个难题的感觉让李嘉鹏特别有成就感——正是这股一定要把问题解决透彻的“笨劲”,让他从Java的门外汉到慢慢熟悉Java、精通Java,甚至从框架本身到周边技术都有了深刻的理解。
年底,李嘉鹏转入阿里JVM团队,结合过去大量JVM性能优化、故障排查的经验,开发了被阿里人熟知的阿里性能分析平台。
年9月,李嘉鹏离职前,在阿里技术社区和内网用一篇文章回顾了自己作为技术工程师7年的职业生涯。文章引来不少