运维工程师必须掌握的基础技能有哪些?
偶尔在知乎上刷到的一个问题,浏览量和回答量都非常巨大,看来很多人都关注。我也写一篇文章,分享一下个人的看法。我会尽量言简意赅。
整体技能分类
首先,我们可以将运维工程师的技能分为以下几个大类:
个人素养 职业素养 基础技术 业务技术 横向技术 体系思考
各个类别具体含义以及如何提升,我们将在下面详细介绍。
个人素养
即个人软素质,所有岗位都需要,并不局限在运维工程师。比如:
沟通能力:逻辑清晰的表达能力至关重要,说了半天对方也 get 不到你的重点,就比较尴尬了,推荐书籍《金字塔原理》;沟通时容易带上个人好恶、个人情绪,不就事论事、容易评价别人,别人会非常反感跟你沟通,导致合作出问题,推荐书籍《非暴力沟通》等。(我也在努力改进中...) 学习能力:快速学习一门新知识的能力,问问题获取别人帮助的能力,推荐阅读著名黑客 Raymond 编写的短文《提问的智慧》,这个能力极为关键。 抗压能力:其实就是逆商。不抱怨,面向未来面向解法思考问题,时刻检视自己的情绪,保持积极的心态。
有一本书叫《商业至简》,副标题是:60天在早餐桌旁读完商学院。非常非常非常建议大家读一读。个人素养看起来挺虚的对吗?其实这才是决定一个人最终高度的东西。
职业素养
在父母面前你要做一个好孩子,在老婆面前你要做一个好丈夫,在儿女面前你要做一个好父亲,在不同的角色上是有不同的素养要求的。想象一下,公司、同事希望看到一个什么样的你?这个就是职业素养。
个人素养中提到的关键能力,是职业素养的基础。在此基础上,我们还需要:
有章法有条理:交代给你的事情你要搞清楚轻重缓急,搞清楚步骤逻辑,运维工程师可能经常面对很多杂项,这个能力非常重要。 主动汇报:要有主动汇报的意识,周报是一个典型的手段,要认真写,让别的同事和上级了解你的工作,呈现你的工作成果,有时还要考虑主动当面找上级沟通进展,提出一些方案让上级决策,给上级一些存在感。 管理预期:管理上级、下级、客户、伙伴的预期,实际执行时要尽量符合预期,甚至超越预期,尤其不要有过度承诺,这样会让别人对你失去信任。 主观能动性:或称为 ownership,即主人翁精神,别推一推动一动,不推不动,老板同事都会很反感这类人。
这里我只是罗列了我个人即时能想到的比较关键的点,当然,还有很多其他的点,不经一番寒彻骨,很难认可别人给你的大道理,这个是需要自己去持续体会和总结的。
基础技术
网络基础技术、Linux 基础技术、数据库基础技术、性能问题排查工具,是运维工程师必备技能。高级工程师和新手工程师在这些能力上差异明显,来,看看这张图:
常见的性能问题排查工具,就有如此之多,而且要能看懂这些工具的输出,必然是要懂得相关原理的,这个知识储备就相当大了。这些知识的学习,没有尽头,怎么学习?
对于入门而言,从 B 站找几个培训机构的视频来看基本就够了。 对于进阶,可以持续阅读一些经典书籍,比如《TCP/IP 详解》、《Linux 内核设计与实现》等。 优先学习工作中可以实践的技术,工作中用不到的技术时间久了就忘了,浪费时间。
这里我也王婆卖瓜一下,我曾经录制过一一套视频:《面向研发工程师的 Linux 进阶知识》,对于研发人员、初级运维人员都会有很大的帮助,这些知识在我看来都是工作必备基础,大家可以对照这个目录查漏补缺学习:
第1个:课程介绍和讲师介绍 第2个:课程大纲介绍 第3个:学习方法和理念,道的层面,肺腑之言 第4个:查看发行版和内核版本,uname、hostnamectl等 第5个:查看CPU信息,socket、core、thread、cpu.steal 第6个:查看内存信息,total不够、free、available的关系等 第7个:查看硬盘分区信息,tmpfs、快速找到大文件等技巧 第8个:查看网络信息,hostname、ifconfig、ip a、route 第9个:查看机器时间并校准,ntpdate和chronyd 第10个:yum配置,yum源 第11个:安装数据库并调优 第12个:安装redis,配置认证 第13个:wget 和 curl 命令的小技巧 第14个:环境变量配置,自动执行.bash_profile的原理 第15个:vim 使用技巧和前后台进程切换的方法 第16个:simplehttpd的讲解 第17个:nohup 的详细解释,stdout、stderr、stdin 详细解 第18个:使用systemd在生产环境运行进程 第19个:ulimit基本介绍,演示句柄超限的报错 第20个:配置ulimit的方法,两个地方都要注意 第21个:进程查看类的操作:ps、pgrep、ss等 第22个:端口探测的几种方式以及nc的使用技巧 第23个:lsof的介绍,查看进程的日志路径的技巧 第24个:杀死进程,kill的注意点 第25个:进程的 proc 目录,这是一个宝藏目录 第26个:查看某个进程的资源占用情况 第27个:top命令使用技巧 第28个:vmstat需要关注的点 第29个:容易被误解的iostat,有哪些字段会坑人 第30个:查看单个进程的io情况 第31个:ifstat命令介绍,配合watch命令使用 第32个:iftop的使用讲解 第33个:iptraf统计网络流量情况 第34个:dstat资源性能数据查看的集大成者 第35个:机器免密登录 第36个:利用pssh批量执行命令 第37个:利用pscp批量分发文件 第38个:使用Python工具的几个小场景 第39个:crontab入门,如何解决找不到命令的问题 第40个:crontab定义方式,给出一些生产样例 第41个:crontab第一天条,自行检查上次调度是否退出