You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
10 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 35 | 职业发展:从“锦上添花”到“不可或缺”
你好,我是庄振运。
到今天,我们已经基本讲完了所有的技术方面的内容。通过这些内容,希望你对性能和容量工程这一领域有了更多的认识和收获。
从今天开始,我想和你介绍一下,性能优化和容量工程这个职业在公司里面的定位、工作的形式特点,以及职业的发展前景。
## 在公司里面的定位
性能优化和容量工程这个工作在公司各种业务中的定位是什么样的呢?
其实性能和容量工程这样的职位几乎每个互联网公司都有只是具体的职位名称和工作内容不同。甚至很多非互联网公司也会有这样的职位毕竟现代社会每个公司都有IT部门而IT的性能对每个公司都是很重要的。
根据我这些年的从业经验和观察结果来看,由于性能优化这个领域覆盖面变广、复杂度变高,性能工程师的重要性越发提高,相关职位也越来越多。
其实这种情况的出现非常合理。从广义上来讲,性能工程和容量工程涵盖了很多方面,比如软件测试、软件部署、互联网服务监测、性能的优化、性能问题的根因及处理、容量的管理和分配、容量效率的提升等等。这些领域的工作,都是公司里面必不可少的。
最近几年,互联网正在发生巨大的变化。
第一个变化,是**数据量增大**了。你也知道,今天已经是大数据横行的时代,现在要是说自己不懂大数据,估计都不好意思出门。
第二个变化,是**互联网服务更加多样化**了。层出不穷的新业务(比如共享经济),提出了新的互联网服务需求,这些需求最终都需要部署到公司的基础设施上,需要相应的容量支持。
第三个变化,是**提高了对性能质量要求**。伴随着这些新业务、新需求,互联网服务越来越需要提高效率,降低延迟,增加可靠性。
所以,如果说前几年性能工程在公司里面的定位,还是“锦上添花”“没有无所谓,有了也挺好”的话,那么现在的定位就是“不可或缺”的、“一个也不能少”的工作之一了。
## 工作的形式和性质
你或许对“性能工程师”Performance Engineer这一工作有些了解可能已经发现这一工作的具体形式在不同的公司里面很不一样。有的公司里QAQuality assurance ,质量控制或者测试)的工作,就称为性能工程;有的公司里负责整个软件服务架构的工作叫性能工程。
“性能工程”这一角色的具体工作内容,的确是取决于公司业务和职位定位,大体上有这么七种:
**软件性能测试**是最普遍的就是我们常说的QA。虽然它的工作内容相对简单但对于性能工程领域的新人来说这其实是一个不错的开始。通过软件测试你可以学到很多相关的知识。
**性能问题诊断**这个工作经常和运维工作捆绑在一起。比如系统和平台出了各种性能问题,就需要做诊断和根因分析。
**系统性能优化**就是在性能测试和性能诊断的基础上,做到提升系统性能和效率。这样的工作经常要和很多模块打交道,比如硬件、软件、网络等等,就需要你拥有比较全面的知识。
**网站平台性能监测和优化**也是性能工程的一种。现代互联网业务,对性能要求越来越高,比如端到端低延迟、网站高可靠性等。这就需要实时监测各种指标,并且不断地进行提升。
**互联网服务架构的优化**很容易理解。互联网业务复杂了,公司内部的各种支撑服务和架构,也就需要不断优化。要做好这种工作,需要你对公司的各种服务性质和功能足够了解才行。
同时,不要小看了**性能相关的工具开发**多数的性能工作包括监控、检测、分析等总是需要一些相关的工具和UI界面面板的。这些工具和面板也需要去开发和维护。
最后一种,是**混合型**,就是综合了一部分前面说的六种工作。我举个例子,比如下面这个微软的性能工程师招聘广告,就是一个典型的混合型的例子。
![](https://static001.geekbang.org/resource/image/67/a0/670b4a043925fd17125c43c23969cfa0.jpg)
这个职位需要做性能测试,也需要做性能优化、性能诊断,并且开发相关的工具。
## 职业的发展前景:越老越吃香
了解过性能优化相关的工作后,你最关心的可能是——这种工作的发展前景如何?
说实话,在互联网行业工作,很多人担心的就是**年龄问题**。比如你经常看到的程序员招聘要求说必须多少岁以下比如35岁以下。在网上你是不是也常常看到各种消息说某某公司要清退多少岁以上的员工。对于互联网行业收入方面是风光无限但年龄是一个不能忍受的痛。
对于这种“年龄的痛”,很多人会说,年龄大了可以转岗,比如做管理。但是管理层毕竟人数更少,对多数人来讲,并不可行。而少数不容易遇到这类问题的互联网岗位中,就包括性能和容量工程。这个工作的特点我们也讨论了,它需要多方面的知识、各角度的技能和实际的经验积累,这需要相当长的时间,不太可能一蹴而就。因此,“年龄”并不会成为一个性能和容量工程师的短板。
我在很多硅谷公司工作过都是性能和容量工程的岗位。我的很多同事都是年龄比较大的常有超过40甚至50岁的。这些大龄同事往往是技术的牛人是挑大梁的角色。可以不夸张地说这一行业是“越老越吃香”的。
也许你会怀疑硅谷公司重用大龄的员工是出于怜悯之心,但事实并不是这样。事实上,这些“大龄员工”给公司带来了更大的收益。性能和容量工程师的工作,很大一部分内容,是帮助公司提升业务性能和容量效率,降低运营成本。随着公司业务规模的扩大,他们给公司降低的成本也越来越大,公司也越来越离不开他们。
还记得我开篇词中提到的电机专家斯坦门茨的故事吗?他的一个简单建议就帮助福特公司解决了一个超级大问题。在第一讲里面,我也举了一个同事的真实经历,一个架构师用几行代码优化系统,帮助公司节省了数百万美元。
这些年我自己也做了很多的性能优化和容量效率提升的工作我经常开玩笑说我给公司节省的成本早已经远远超过了公司付给我的工资没有100倍几十倍也是有的。
## 性能和容量工程师的工作:怎么去找?
说了这么多你可能会问怎么进入这一职业呢也就是如何去找这样的工作呢现在是互联网时代我们都知道要去招聘网站。无论你是否打算寻找海外工作我个人都比较建议你用LinkedIn。你也知道我曾经在LinkedIn工作过四年不过我可不是在帮LinkedIn做广告。虽然我对LinkedIn这个老东家印象非常好很喜欢它的文化但是我推荐LinkedIn是有别的原因。
我推荐LinkedIn的原因有三
1. LinkedIn在国外的工作人才市场中拥有垄断地位。不管是员工找工作还是公司找人一般都会用这个网站。
2. LinkedIn的定位就是针对比较专业和高端的人才市场。你找工作当然是想找一份好的工作所以用LinkedIn比较合适。
3. LinkedIn上的猎头多。如果你创建一个账号放上足够的信息很快就会不断地收到猎头的信件希望你去某某公司面试。我经常开玩笑说这种感觉不是“你在找工作”而是“工作在找你”。
当然你也可以主动用LinkedIn去搜寻合适的工作机会也可以适当的过滤比如根据工作地点和公司。比如下面这个截图就是我用“Performance Engineer”搜索出来的工作机会。
![](https://static001.geekbang.org/resource/image/ca/26/cab43bf65ec45b6d29df23161e71a026.jpg)
还有个建议,建好账号后,你一定要放上足够的和你相关的信息,尤其是专业的信息,否则就和没有建账号一样。
为什么呢这是因为猎头们都是用关键词和关键领域来搜索员工的。比如你要找性能工程的工作你就需要把你的相关工作经验和技能列上因为猎头可能会用如CPU Profiling、Performance Optimization等相关的词语去搜索候选人。
## 总结
我今天讲了性能和容量工程工作的特点、重要性,以及如何找这样的工作。
根据多年国内国外的观察和工作经验,我总体的感觉是,对这一方面的工作,真正了解的人非常少。甚至很多业界人员,都不知道有这样的工作。
我记得唐代诗人杨巨源的佳作《城东早春》中说:“诗家清景在新春,绿柳才黄半未匀。若待上林花似锦,出门俱是看花人。”说的是早春的时候,花开的还很少,这样的清新景色,正是诗人的最爱,适合出门赏花。若是等到晚春之际,虽然到处是花团锦簇,但满城也都是赏花的人,会拥挤不堪。 这一点,我们都有体会,国庆中秋出游过的人,对塞车拥挤都有很深的记忆。
一个行业和领域,如果处于发展期,内行不多,知名度不高,这自然是严峻的挑战,但也是巨大的机遇。对我们每个人而言,一个还没有很多人涉足的领域,恰恰是充满各种机会的沃土。我觉得性能工程和容量效率就是这样的一个领域,还有待我们去持续开拓。
## 思考题
你们公司里面有没有从事性能和容量工程相关的部门和人员呢?比如性能测试、性能优化、互联网服务效率提升、数据中心容量管理等。他们是在同一个部门还是分成不同的部门?他们的工作内容有没有明显的区分或者重合?
你觉得做这些工作的哪个部门和哪个工程师比较牛?牛在哪里?你可以向他们学习一下吗?
欢迎你在留言区分享自己的思考,与我和其他同学一起讨论,也欢迎你把文章分享给自己的朋友。