SOFA 5年
// 挑战
、成长、拥抱开源
//
进入蚂蚁金服中间件SOFA团队的日子
,比想象中更充实、更有乐趣,也更有挑战。
刚转岗到中间件的时候,鲁直最直接体会到的就是用户的不同,在业务团队只需要考虑业务,但是做中间件却要考虑到用户,也就是研发人员的使用场景、使用习惯的差异,哪怕在单词拼写、命名规范等细枝末节上都要一再较真。
“程序员大半时间都花在变量命名上了,真不是玩笑”。
而越接触中间件,就越发现它比想象得更难,但鲁直马上从“懵逼”的状态中出来:
那段时间,拼命去找相关书籍去看,建立对中间件的基础理论认知;然后开始做很多支持工作,有时候凌晨2、3点还在帮助用户排查问题。
这个过程中,迅速地了解了所负责的中间件产品的细节,快速地积累了解决问题的经验,“对于中间件的认识真的是飞速提升”。
而这还只是开始。
谈及做中间件最痛苦的事情,其实更多的是因为项目进度的压力而带来的挑战。
2016年的双十一大促,当时是SOFA团队去做弹性架构的改造,但SOFARPC中的一个非常老的协议的支持在弹性架构下面却一直出现问题。
迫在眉睫的双十一、一直停滞的改造、高强度的工作,让整个团队的压力都非常大。
周末连续加班,一批人反复对这个协议深入分析,通宵制定修复方案
,在高压之下,团队凝聚在一起,最终让业务顺利升级中间件,支持了那一年的双十一大促的要求!
或许这就是“痛苦造就性格”,不逼自己一把怎么知道自己可以做到?
其实,在SOFA的技术团队里还有一个共识:
Design for failure
,也就是在设计过程中假定在任何情况下底层都有不可靠的风险存在。鲁直坦言:在体量/规模非常大的情况下,小概率的事件发生都会变得非常频繁。
支付宝就发生过的一次黑天鹅事件,由于一个路由器把数据位翻转了,导致通信出现问题,而通信数据中存在一部分业务数据,其中有一个字段是钱,对于金融业务来说,从0变成1的细微改变,带来的影响是及其巨大的。不过那时候还比较幸运,出错的是数据头,直接报错了。
“其实,这样小概率的事件可能10年也遇不到一次,但是一旦遇到,损失是难以估计的。”事后,技术团队马上在RPC层加了数据校验,保证数据在传输过程中不被经过篡改。
拥抱变化,承担风险,也开放技术。
2018年4月,SOFA正式开源了,由技术团队进行日常维护。
鲁直表示:目前SOFA在蚂蚁金服有将近2000个应用,是被蚂蚁实践证实的一套框架,开源出去,让更多的人去体验、使用,对于SOFA的发展具备很大的意义。
“不管这个团队里谁走了,至少SOFA开源都不会停止。”
这也让场主想到,在AMD追赶英特尔的漫漫长途中,一句广为流传的话是这样说的:“AMD的存在,不仅深受AMD客户的拥护,也是英特尔用户的福气,因为它打压了英特尔的高价垄断。”
或许开源的意义就在于此,给技术发展按上轮子,而这,也是鲁直所企盼的。