后端计算机Infrastructure Engineer的职业前景如何?

拿到一个做搜索相关性的Infrastructure Engineer的职位(Search relevance Infrasturcture engineer),本人应届毕业生,问了下Manager,这个组基本是给其他组做数据平台的,让别的组的模型和代码能够快速运行和访问数据。有人说做Infrasturcture 的只有大公司要,做产品有出路容易跳start-up,而且湾区的Infrasturcture 都是三哥扎堆的地方,想问下在这条path上有没有前途?

infra 就是搭台子,搭好台子让别人唱戏,欢呼和掌声都是献给台上唱戏的演员,要是台子搭垮了挨骂的就是 infra 了。

infra 现在面临就是三个问题:

  1. 很多开源的infra产品本身的质量可维护性现在已经达到一种阶段性的高位,倒逼很多大公司减少infra基础研发岗位,增加解决方案岗位,很多infra团队变成了把许多开源组件倒腾到可以干活程度,以及维护高可用率的解决方案团队。
  2. 出活周期比较长,公司的基础部件,肯定不好像分析层的加个算法模块那样很容易加,加上去很容易分析出区别来,基础部件很多的替换是以5年为基本单位的。
  3. 还有就是oncall了,毕竟很多infra做的东西,也就是infra团队自己能运维,越是大公司,越是大的infra团队体会肯定是越深。

还有一个感觉就是大量小公司都没有兴趣去做infra这样的团队了,这也导致了在IT圈子里说起infra,响应者寥寥

先说结论:以下两种情况适合毕业生去Infra组

  1. 对Infra本身就特别感兴趣,即使老板没有把好的活分配给你,你依然能够干地孜孜不倦
  2. 组里有资深工程师愿意带你做项目

个人背景

我在一个大公司的Infra组待了一年半,也是做和search相关的,从一开始的满心期待,到后来不断碰壁,失望,自省打算离开这个环境。

先来列一下大公司Infra组的优势

  1. 相对产品而言,资深工程师占的比例会高很多,组里的tech lead大部分都有十年以上工作经验,和他们讨论交流会很有收获,他们会考虑到一些工业界新手很难意识到的问题。
  2. 大公司的scale很大,可以看到大公司是如何设计一个系统能使得它99.99%的时间能够available,同时还要能够满足接收高QPS的需求。
  3. 你会看到各种系统的failure mode。一台机器的硬盘空间满了,网络接口挂了,Java程序Out of memory的情况等等,很多在学校里单机作业上无法体会到的实战经验。

劣势

  1. 大部分大公司的infra已经成熟,能从头搭一个infra的机会很少,甚至重写一个小部件的机会都不一定有。另外,大公司即使要重写新的系统,首先优先考虑招资深工程师来做,重要的部件通常轮不到刚毕业的新手写。
  2. 那么你要问了,大公司infra已经成熟了,那么还招人进去干嘛?infra的系统一般而言比较复杂, 其中各个小部件或多或少会有一些无关痛痒的小bug或者improvement没人去做。还有,就是infra的工具,比如做search的话,如何让做search relevance的人debug更容易?他们关心的是relevance metrics,比如为什么搜某一个东西的时候,没有返回正确的结果?infra需要写tooling去帮他们发现为什么。然而,通常这种tooling和你们组做的infra没什么太大关系,到后来你会发现做这个tooling都是在写javascript和python web backend。当然多招人也可以分担组里oncall的压力。
  3. 就像前面说的,infra组一般有不少资深工程师,同时每个人都想要有自己的职业成长,希望自己做的东西有impact,做到好项目方便升职加薪,那么组里分配项目的时候,作为新手,接到你想要的,比较有趣的活的可能性就比较随机。在这种情况下,有资深工程师愿意带你,老板愿意把你想做的东西分给你就变得至关重要,尤其是在你还不确定是不是真的对infra感兴趣的情况下。

综上所述,组里有人愿意带你做项目,或者自己有兴趣都是非常重要的。不然很可能作为毕业生一进大公司infra组,光在处理一些边边角角的所谓“脏活累活”了。干好了别人不会觉得你厉害,credit很少,干得不好别人会感觉这么简单的东西你都做不好。长此以往很容易产生挫败感。

当然,不管去infra组也好,产品组也好,最重要的还是要有一个好老板愿意帮助你成长,项目要感兴趣这样你每天干活才有动力,组里人大家和睦相处这样不至于陷入莫名其妙的政治斗争。要同时满足这三点的组,其实很少。

湾区的Infrasturcture 都是三哥扎堆的地方

这是真的么

湾区tech公司不都是三哥扎堆吗?我感觉比例并不比其他部门高,但infra组的小兵impact的确不行,可能干两三年别的组几乎没人认识你,但tech lead往上又很有impact,因为几乎所有部门的director都会来找你。另外我觉得infra成长空间确实比不上其他组,就如帖子里面说的,一套infra可能支持很多产品,但风光都给了产品,没人会在意infra,毕竟资本逐利。