在这里,每一行代码都需要被认真对待

2021/03/22 15:23
阅读数 112
在蚂蚁工作是一种什么体验?要满足什么条件才能入职互联网大厂?有没有前辈亲身分享面试经验?又到一年校招季,我们找到了加入蚂蚁不久的“新同学”,来为心怀期待的学弟学妹们答疑解惑啦~


我叫黄磊,花名葛努,2019 年从北京大学毕业后加入蚂蚁,目前就职于蚂蚁集团可信原生技术部(Trust Native Technology, TNT)的中间件团队。

“葛努” 这个花名来自 Richard Stallman 发起的 GNU 自由软件项目。取花名之前,我正好读了 Richard Stallman 发表在 gnu.org 上的寓言故事,因此就取了 GNU 的音译“葛努”作为花名。阿里取花名倡导武侠文化,我觉得 GNU 项目所倡导的理念“自由分享技术”,就是计算机领域的武侠意气。


2018 年 3 月,蚂蚁的实习生招聘开启。当时我还在念研二,因为一系列机缘巧合,来到了蚂蚁的中间件部门实习。虽然之前也在其他互联网公司实习过,但是在蚂蚁的这段经历有很多独特之处。其中最重要的一点是:实习生并不是干一些“打杂”的活,而是真正独立地负责一个项目,从前端、后端、测试到发布、部署、运维,都需要去亲自做一遍。这种对实习生的信任与关注是很难得的。

实习期间,让我印象最深刻的是:我的师兄第一次帮我做 code review 的时候,提了一大堆问题,从变量命名、缩进长度到日志打印的上下文信息,都被挑出了不少毛病。这让我第一次意识到,在蚂蚁做技术,每一行代码都是需要认真对待的。


两个月的实习很快就结束了,我也如愿通过了实习生转正的考核。拿到毕业证书的第二天,我就飞到了杭州,正式以校招生的身份加入了蚂蚁集团。


蚂蚁对校招新人有一套完整的培训体系,内部称之为“青年近卫军”。这个名字一下子让人联想到前苏联卫国战争中的近卫集团军,“近卫”这个称号只授予战斗中最英勇的部队,我相信这也是“青年近卫军”项目的初衷。


近卫军培训中,新人会全面学习蚂蚁的技术体系,并且通过完成一个 Mini Alipay 的项目进行考核。这个过程中,新人收获的不仅有技术知识,还包括蚂蚁的技术架构沿革、组织文化,当然还有最重要的——一群志同道合的小伙伴。


结束培训,正式开始日常工作后,我发现,蚂蚁的可信原生部门是一个非常特殊的部门,不仅仅因为它是整个蚂蚁集团最底层的团队,更因为我们是在基础设施之上、在业务之下的中间层。从这里向下看,在蚂蚁的体量下,基础设施是不可靠的:磁盘一定会损坏、网络一定会丢包、内存里面的比特一定会翻转、物理机每天都会出故障;从这里向上看,蚂蚁的业务对我们提出了无比苛刻的金融级可靠性要求,比如 N 个 9 的可用性、分钟级容灾等等。我们需要屏蔽基础设施的 差异和不可靠,向上提供一个一致、可靠、稳定的技术平台,以帮助业务快速地成长。

 

我们都听说过“墨菲定律”:如果事情有变坏的可能,不管这种可能性有多小,它一定会发生。在蚂蚁 10 亿用户的体量下,如果一段代码有一定概率会导致故障,那么无论概率多小,这个故障都一定会出现。在蚂蚁写代码,最重要的是绝对不能存有侥幸心理,“这段代码看上去没问题”——从加入蚂蚁的第一天起,就应该摒弃这种想法。首先假设“我的代码有问题”,然后向自己和 review 代码的同学证明“我的代码没问题”,这才是每一个蚂蚁工程师的基本素养。

愿望总是美好的,但现实是,无论开发时如何小心谨慎,总会有疏漏之处,因此我们日常工作中另一项重要内容就是故障排查。这个过程就像破案一样:从故障发生时的现象开始,梳理所有可能导致这个现象的原因,借助各类工具去证实或证伪猜想,找到原因之后构造场景、复现故障,从而得出一个经得起推敲的结论。


说起来简单,但是这个过程往往非常曲折,故障的原因可能隐藏在应用代码、runtime、内核乃至硬件等任何地方,需要充分利用所学过的所有关于计算机的知识,无数次重复“假设-检验” 的流程,不停地推翻自己的结论。


这个排查过程会持续数周甚至数月,大部分时候,努力了很久也一无所获,但是我仍然觉得排查问题是我最热爱的工作内容之一。一方面,排查问题需要充分利用所有的知识储备——垃圾回收、JVM、系统内核、网络协议,它们不再是为了应对面试而背诵的知识点,而是一个个潜在的解,需要快速地检索、学习和验证它们。另一方面,一头扎进问题排查中很容易进入“心流”的工作状态,非常锻炼人的心态和韧性。


当然,最重要的还是找到故障根因时的“gotcha”——当你真的查出了一个困扰大家多年的陈年bug的时候,内心真的比发年终奖开心多了。

2020 年 6 月份我参加晋升答辩时,有位评委说:希望年轻人能够做出一些有“锐度”的工作。在那之后,我一直在思考“锐度”是什么。直到看见了上面这张描述 PhD 的图片,我才明白:“锐度”就是别人没想到而我想到的、别人不敢做而我敢做的、别人做不到而我做到的。做学术是这样,在蚂蚁做技术也是这样。

以我所在的可信原生技术部来说,做出有“锐度”的工作机会遍地都是——我们覆盖的领域涵盖芯片、操作系统、中间件、微服务、安全容器、机密计算、小程序运行时等,开发运维着东半球最大的 Service Mesh 集群,我们的消息系统每天承载着上万亿的消息流转。从我们所站的地方,随便向外跨出一步,就是无人涉足的深水区。我们迫切地希望有更多勇于打破边界、敢于挑战未知的年轻人来加入我们,共同把最外面的大圆再向外推开一点。


本文分享自微信公众号 - 金融级分布式架构(Antfin_SOFA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部