八年从校招到阿里P9:应届生如何摘取软件行业皇冠上的明珠

1,221 阅读10分钟
就现在!蚂蚁「校招季」重磅来袭!除了介绍蚂蚁的技术大咖,我们还邀请了一些通过校招来到蚂蚁的过来人分享他们的通关经验和心得,这里随时可能有行业技术大咖和你的直系学长学姐出没哦~ 「校招季」栏目会持续输出有关“蚂蚁校招”的丰富内容,敬请期待!

近两年,国内关于操作系统的话题逐渐多了起来,不过对于很多应届生来说,操作系统研发的门槛太高,令人望而生畏。即使知道行业急缺相关技术人才,岗位高薪,待遇优厚,大部分人还是不敢贸然尝试。

操作系统研发真的是不适合萌新应届生的领域吗?对于这个问题,在企业中进行相关研发的人又怎么看呢?我们找到了在蚂蚁金服进行系统软件研发的资深技术专家秦承刚,来看看他的看法。

从一篇论文说起

秦承刚研发的操作系统是应用在云计算上面的。随着蚂蚁金服全面转型云原生架构,为了在新的架构下保障应用性能和数据安全,应对云原生架构下的新挑战,必须在系统层面进行深入挖掘。

谈起应届生是否适合操作系统研发,他提到最近刚好有这样一件事。

在计算机界有一个编程语言和操作系统的顶级学术会议ASPLOS,原定于今年3月16-20日在欧洲举办,由于疫情,改成在线上举行。

去年,蚂蚁金服首次参与该大会,就有两篇论文入选,其中一篇正是秦承刚团队所操刀的。

这篇论文有两个共同第一作者,一名是团队的应届实习生余天依,另一名则是上海交通大学软件学院的研究生。

这篇论文的主题是近两年开始火热的Serverless技术的启动速度问题,这个问题一直困扰业界,是Serverless迟迟难以在生产环境大规模应用的原因之一,而团队成功将Serverless冷启动的时间降低到亚毫秒级别,其中的关键技术就是轻量级操作系统。

原来,这原本是秦承刚团队的一个技术预研项目,在18年的时候,云原生已经很火热,但Serverless出现没多久,不被人们广泛接受,承刚预判到这项技术未来会有很大的潜力,因此选择这个方向进行技术攻关。

由于涉及到一些前瞻性的技术,团队需要科研力量的加入,也就是与高校展开学术合作。余天依本身出自上海交大,通过她在当中作为技术沟通桥梁,团队顺利和上海交大并行与分布式系统研究所搭上线,双方展开合作。

论文中用到的操作系统是Google于2018年开源的gVisor,论文在操作系统层面优化了Serverless场景下的实例启动时延,能够在几毫秒内完成操作系统与应用的启动。

承刚团队所研发的轻量级操作系统也是基于gVisor,不过给它做了诸多改进与功能增强,在虚拟化技术网络协议栈上做了很多创新。其中很多改进会逐步回馈给开源社区,上述论文就是其中一个例子。

应届生如何参与系统研发

上面的论文只是承刚团队工作的冰山一角,他们所研发的系统软件是蚂蚁金服可信原生技术拼图的重要一块。

所谓可信原生技术,是在社区的云原生技术基础上,实现软硬件全链路的安全性,让整个系统无论从内部还是外部都无法被攻破,从而实现可信任。

过去人们讨论云原生时,安全问题并没有受到太多关注。而云原生里的容器,相比虚拟机,更容易引发安全问题。在云原生中,传统容器共享同一个CPU等资源,缺乏隔离性,一旦一个容器发生安全问题,很可能影响到其它容器,甚至入侵整个系统。承刚团队所研发的系统软件,在底层操作系统和容器应用之间添加了一层隔离,从而提升了安全性。

承刚团队的工作一方面是和操作系统打交道,所以对Linux内核的研究会很深入,团队里有专人参与Linux内核开源社区,以及跟进系统软件相关的学术研究进展;另一方面,团队需要让应用在云原生环境下运行得更好更安全,因此也会涉及到操作系统级别的工程效能、运维交付、安全可信等研发工作。

正因为最前沿的云原生架构,和最古老的操作系统产生碰撞,所以对研发带来了极大的挑战,而且,很多时候有些瓶颈单靠经验难以解决,需要借助学术界的力量,对难题进行攻关,上面的论文正是诞生于这样的背景。

所以应届生当然适合操作系统软件研发,承刚团队也一直希望有优秀的应届生加入。

承刚希望两类应届生的加入,一类就是上面所说的研究型实习生,钻研前沿技术,寻求技术突破。另一类则是普通的开发岗位,团队也需要新鲜血液的注入。

新人加入团队之后,除了常见的技术培训之外,还会为每个新人配备一个“师兄”,师兄不仅会负责传道授业解惑,还要像兄长一样,陪伴新人、保护新人,和他们一起共同成长进步。

在工作安排上,不会一上来就给新人安排很难的工作,而是像升级打怪一样,让新人从简单的工作做起,逐渐学习并融入团队,然后承担更大的任务。

给应届生的建议

在今天,系统软件研发并不是一个冷门的行业,很多公司都有负责开发维护系统内核,甚至是研发全新操作系统的岗位,但是市场上系统软件研发专家仍然非常稀缺,所以这是一个很有前景的方向。

从另一个角度看,系统软件研发的确是一个高门槛的技术领域,因此,对从业人员的素质也有一定的要求。

这里面第一个门槛是需要有热情,愿意从事系统软件研发工作。因为很多时候工程师需要与底层软硬件打交道,需要深入理解操作系统与处理器的运作原理,这个过程是很枯燥的,如果没有热情很难坚持下来。另外,系统软件和行业软件不一样,行业软件在入职一到两周后就可能会有产出,但系统软件可能需要更长的周期,这也需要坚持下来的定力。

其次,对应届生来说,想从事系统软件研发,需要学好计算机专业基础课程,把基本功打扎实,对于计算机硬件、处理器、操作系统、虚拟化等要熟悉它们的功能和原理。另外,需要持续学习,比如可以自学一些系统软件相关的论文和书籍,关注最新的学术进展,在这里,承刚也推荐了几本书籍,让同学们可以提前了解:

  1. 《Computer Architecture: A QuantitativeApproach》
  2. 《Systems Performance: Enterprise and theCloud》
  3. 《Understanding the Linux Kernel》
  4. 《奔跑吧 Linux内核》
  5. 《系统虚拟化 -- 原理与实现》

另外,如果从事这个领域,还需要关注的学术会议包括:OSDI、SOSP、ASPLOS、EuroSys等。

不过,系统软件研发并不是高不可攀,高校学生在校期间就可以参与,首先从熟悉Linux系统开始,了解系统原理后,开发一些小功能,甚至小工具和脚本,也可以提升自己对系统软件的理解。

这一项的进阶版本就是参与系统软件的开源社区,比如Linux内核、gVisor等等,从最基本的翻译编写文档,到参与某项功能模块的开发,通过这些行动,同学们可以快速的成长。

最后,如果对系统软件研发感兴趣,想了解如何面试,也可以看看前辈的面试经验,祝大家都能早日找到自己满意的工作~

加入我们

> 职位简介

部门:蚂蚁金服-CTO线-可信原生技术部

地点:杭州/上海

岗位:实习开发工程师

面向:2020.11 -2021.10 毕业的本科/研究生

面试形式:通常是电话面试,会提前预约合适的时间哦

投递邮箱:chenggang.qcg@antfin.com

> Who Are We?

我们团队承担了蚂蚁金服操作系统的研发与创新工作。我们致力于将先进的系统技术与蚂蚁的金融级业务场景相结合,不断在系统领域进行创新与落地。目前,我们的全新操作系统正在逐步服务于蚂蚁的核心业务。我们在协议栈,文件系统,虚拟化等组件上已经有了大量的自研产品。并在系统领域的顶会ASPLOS 2020上发表了论文。同时,我们在软硬件结合创新上也在持续深入。欢迎有志于从事系统技术的同学加入我们,共创辉煌。我们希望你了解操作系统,虚拟化技术,网络协议栈,文件系统等,最好有相关的项目经验。也希望你能够使用C,Go,Rust等语言熟练编程。更希望你有技术理想,对系统领域保持饥渴的好奇心,能够迅速学习新技术。

> 领域方向

1. 虚拟化方向:从事蚂蚁金服高安全轻量化的虚拟化技术研发。熟悉Intel X86,ARM等处理器的虚拟化技术,熟悉KVM等典型Hypervisor。有虚拟化领域的研发实践经验者优先。

2. 操作系统研发方向:从事蚂蚁金服安全操作系统内核研发。熟悉Linux内核或其他操作系统内核。熟悉内存管理,文件系统,网络协议栈,进程调度等操作系统核心组件。有操作系统研发经验者优先。

3. 系统安全技术方向:熟悉ARM TrustZone,AMD SEV技术,有系统安全技术的相关经验。

4. 系统技术研究:从事系统与安全领域研究的博士研究生,发表过高水平论文,有扎实的研究成果。

> 基础要求

1. 熟练掌握C、golang、Rust等编程语言,有系统技术研发经验者优先;

2. 扎实的算法及数据结构基础,对软件工程有良好的理解;

3. 参与过Linux内核、gVisor、DPDK等开源社区者优先。

4. 熟悉Intel X86、ARM等处理器技术与原理者优先。

5. 有技术热情、责任感,致力于系统软件研发与创新者优先。

3月26日,走进阿里云云栖号在线课堂,蚂蚁金服开设了【蚂蚁金服课堂】蚂蚁金服数字课堂直播间,蚂蚁金服高级算法专家温祖杰将分享蚂蚁智能客服系统的主站算法框架,包括推荐,对话,调度,体验相关的算法,重点介绍猜你想问,基于强化学习的序列推荐,知识蒸馏,机器阅读,强化学习调度等工作。

扫描二维码即可参与直播。