8 min read

我从3年的运维工作中学到了什么

我从3年的运维工作中学到了什么

1/100

2021年是作参加工作的第三年,也是作为运维工程师的第三年。这里我想记录一下这三年来自己的运维这个工作的理解,负责的工作,和如果你想要从事运维工作,应该具备哪些知识或技能,那我们开始吧!

运维有很多种

我想谈的第一个事情就是运维工程师是分很多种的,会有业务运维,运维开发,安全运维,IT基础运维等等。如果你关注这个行业,曾经也在招聘网站上搜索过"运维",那分类可能就更多了,SRE,DevOps,桌面运维...

业务运维,主要做的就是维护生产环境的产品。其他像运维开发,主要偏向开发,对编程要求会高一些,可能会负责自家的运维平台或者相关的程序的开发。安全运维我这里接触到的大多是对公司的产品做渗透测试,以及一些安全认证的工作。

我的主要工作是业务运维,所以就从这方面和大家分享一下这个方向的运维做的事情有哪些。

业务运维的活儿

我理解的业务运维核心在【业务】重点在【运维】。

我刚毕业那会儿,看见人家招聘的是运维,以为就是自己向往的那样:拿着平板电脑,在服务器机柜走道上巡回检查。遇到系统出问题了,可以像Mr.Robot里的Elite和Scorpion里的Walter一样会对着全是文本的终端,在键盘上敲着各式各样的命令,like a hacker。

工作的第一天,导师告诉我这个产品用的服务器是Windows。自己开始进行心理按摩:哦!Windows服务器应该也有很多好玩的!(事实证明,Windows Server确实有很多好玩的)

刚开始,每天的任务是关注客户的提单,开通新环境,更新补丁,处理客户的数据问题,环境性能问题,不可用问题等等。

另外作为业务运维和客户电话接触是完全避免不了的,为什么?想想微博炸了你们第一时间想到的接锅虾是谁?(尽管我一直都想成为那个The man in the chair的人。--蜘蛛侠-英雄远征)

如果自己以刚开始的态度,肯定会对这些工作嗤之以鼻,认为这都不是自己应该干的事情,但是用现在的观念来看,这些其实也并不是一件坏事,有大V说【工作永远都是公司的,而职业生涯永远是你自己的】大概就是同样的原因。

以前的自己(在学校的时候以及刚毕业1年)眼里只有"技术",认为只有掌握了高深的,晦涩的技术才能在职业生涯上有好的发展。这样的想法过于狭隘,换句话说,格局小了。

技术的重要性毋庸置疑,不过想要单靠技术把一家公司做到更大更好是很艰难的。我现在更愿意相信【技术更广泛的定位是为了解决现实生活中的问题而存在的】这一观点。

不论是打补丁,升级,还是和客户沟通答疑都是在让新入职的你"了解业务"。了解产品的架构,了解部署的模式,了解真实的生产环境的运作方式,足够了解之后,下一步就要进入真正的运维了。

排查问题通常情况下需要查询日志,但是会发现问题都分不在不同的服务器上,上千台服务器就要登陆上千次(格局打开)这是不能接受的,那怎么办?我们需要部署一个统一的日志查询工具,于是从打补丁就升级为构建日志平台。

问题出现在3天前,需要根据当时的服务器负载和日志同时比较看看问题的原因,发现历史的服务器情况无处可查。于是我们就需要一个监控平台,能够记录历史的服务器负载,同时还希望出现问题的时候能直接通知到自己,这也需要运维自己来做。

其实只要是和业务相关对减少人工有帮助的,提高工作效率的所有工作都可以由业务运维来做。

业务运维需要掌握什么?

最简单的办法:去看头部企业,大企业的招聘信息。

从我的角度出发我觉得有这几个技术/开源产品/语言是需要了解的:

  • TCP/HTTP(S)协议:用到用不到另说,面试肯定会问。
  • Nginx:大多数是用来做反向代理(4层TCP层代理,7层HTTP层代理)要知道怎么配置。(即使需要自己去配置,当其他人谈论的时候自己也可以听懂)
  • MySQL:主要是高可用架构的部署,面试也经常会问。(主从复制原理)其他数据库当然也会用到但是MySQL还是具普遍性的,需要重点了解。
  • ELK:是3个开源工具的简称,ElasticSearch是核心也是重点,需要多了解部署,高可用,群集部署来应对超大日志。LogStash做日志格式化的,要用到正则表达式。Kibana把ElasticSearch里的日志拿出来做友好界面展示的,有些数据统计聚合功能。(K也有可能不用Kibana改用Kafka)
  • Promethus:普罗米修斯,主要用来做监控用,想想用他做监控你要怎么做?配套的Grafana用来做可视化。
  • Docker&Kubernetes:Kubernetes是重点,要搞清楚众多名词的概念用途。
  • Python&Shell:脚本语言,完成工作只需要熟悉语言的语法和语言相关的数据结构,拿Python来说就是列表,字典之类的数据结构。高级用法可以在脚本能够完成任务后再进行学习,优化脚本执行效率。除此之外Golang也可以了解。

现在越来越多的企业选择SasS服务模式,对运维来就需要有云服务平台的一些操作经验,如果有机会接触就要把握好机会,如果没有也没关系,等接触到在学习就是了。

哦对了,技术是有失效性的,现在流行可能以后就失宠了,现在是2021年。

做运维有前途吗?

我不知道。但是正如前面所说的,职业生涯是你自己的,如果你热爱这个职业,当然可以一直干下去,到高级/资深级别薪水是很不错。我认识的一些人最初也是在做业务运维,但是后面也有去做管理,做产品经理。

如果你在一家不错的公司,能把格局打开,而不仅仅局限在"我只是一个运维",那么前途我相信会有的。这里推荐CaoZ的一篇Blog--坐守金山不自知

我会对3年前的自己说些什么

把握时间,想想别人的20岁。不要花费太多的时间在游戏消遣上。(虽然OB的直播很好看)

时间也许是最公平的事情了,4小时可以用来玩游戏,也可以看一部2小时的电影并且阅读2个小时,也可以去健身锻炼并学习做一顿美味的午餐(做饭真的很简单,需要的只是迈出第一步),我现在,用它来写这篇Blog。

佐罗-粥介绍他的逆袭说:他会花时间研究怎么把工作做到最好,达到最好的效果,即使下班也会思考这件事。

现在回想起小时候,妈妈们经常的说"不要让孩子输在起跑线上"现在也许真的适用了。因为:

早,就是优势。--strongzhang

10.24 2021

Luo.