「Operations Engineer」- 运维工程师,技能要求

解决方案

在当前环境下,多数以业务为核心,所以学习什么技术并不是我们能决定的,而是业务、市场决定的。基于此,如果想知道我们该学习什么技术,直接去招聘网站看招聘需求即可 —— 即「用什么学什么」;

我们需要关注的技术点(20191025)

作为一名运维工程师,我们有着大堆的技术要研究。除了需要熟练数据库、网络、虚拟化、监控、服务器、备份等等常见技术,还要略懂 PHP、JVM、AWS、JIRA 等等这些环境以及调优、问题排查。总之,各种技术一大堆,都需要我们研究;

可是我们的时间和精力是有限的。有些技术,对于运维工程师来说,并不是十分重要的。这些技术的 ROI(投入产出比)是非常低的。例如 PowerShell 脚本,对于运维工程师来说,花费时间研究 PowerShell 脚本,不如花费时间研究 Linux Shell 脚本。因此,我们应该把精力放在那些,对于运维工程师,更广、更常见、更经久不衰的技术上;

我们试图从技术的海洋中,找到运维工程师更应该关注的技术;

解决方案

为了找到“那些技术”,我们从招聘网站中爬…………哦,不…………整理了所有“运维工程师”职位数据;

我们尝试从所有企业的招聘信息中,找到那些出现频率最高的技术关键词。这些技术也一定是大多数企业所需要的;

这些技术的收入不一定是最高的,关于薪资我们也会进行分析。我们也会找到各个薪资段中,对技术方向的要求;

如何处理数据呢?

首先,我们只过滤了职位描述中的英文及数字。为什么?(1)大多数中文描述内容都类似于“掌握容器技术”、“监控服务器的运行状态、系统性能”、“熟悉各云平台产品”等等,太过于笼统,没有指出具体技术要求。(2)某些任职描述偏向于品质,比如“有较强的抗压能力、沟通能力”、“较好的服务意识”等等,这些内容会影响到我们数据分析,因为我们分析的重点是技术。(3)还有一些描述,形如“高可用”、“监控”、“日志”等等,没有涉及具体技术的,都可视为干扰。例如高可用,当我们谈论它的时候,一定是某个服务的高可用,而不会说“如何搭建高可用”;

其他,我们将英文转为小写,并去除单个技术术语中的空格。比如 SQL Server 则转化为 sqlserver 形式,防止它被分解成 SQL 与 Server 两个词;

技术关键词的词云

首先让我们来看看词云图:

借助上面的词云图,我们“大致”可以得到以下几点结论:

(1)经常会有术语拼写错误的情况。比如“Rsync”写成“Rync”,这是我亲眼所见;

(2)而 Linux 则是运维工程师永恒的话题,当然这就要提一下 CentOS 发行版了;

(3)最显眼的几个词:Linux Python Shell MySQL Zabbix Jenkins Redis Nginx ELK Docker Kubernetes 等等吧

(4)令人以外,但是情理之中的是 Ansible 居然比 SaltStack 的比重高,而 Puppet 是最少的;

当然这只是表面上,我们还要分析它们各自的比重;

技术关键词的饼图

下面是关键词的饼图,我们只取了前 20 名(这前 20 名足够我们喝一壶的了):

当然,要掌握的技术除了这 Top 20 外,还有与其周边技术(这一有一点小失误,图中 TCP、IP 部分,实际上是 TCP/IP,没有单独进行处理);

!!!明年三、四月份,我们还会进行一次统计,将结果与此次的饼图对比,找到这其中的技术变化趋势;