运维工程师技能

Linux

文化

有一些文章并不涉及具体的技术细节, 但是对于新人快速进入Linux/Unix世界很有帮助:

  1. 提问的智慧
  2. <<大教堂与市集>>
  3. <<操作系统革命>>, 这是一部记录片, 讲述了GNU, Linux, Richard stallman相关的很多故事.

shell

运维工程师的工作大部分时间是在和shell打交道, 所以掌握好shell相关的知识是非常重要的.
shell基础二十篇
shell 脚本学习指南
sed&awk
Awk简明教程 from coolshell
Sed简明教程 from coolshell
无插件Vim编程技巧 from coolshell

尽量不要写超过1屏的 shell 脚本. 如果超过1屏, 说明逻辑已经非常复杂了, 又或者你的shell太过冗余, 需要优化. shell超过一定规模后非常难以维护, 极易出错, 所以这个时候就应该考虑使用 python/perl 等真正可以称得上语言的东西.

kernel

Linux内核设计与实现
Linux/Unix设计思想
上面两本书相对来讲比较容易, 适合非科班背景的同学阅读.

Ops

在掌握了基本的 shell 知识后, 其实已经可以完成基本的运维工作, 但是还远远不够. 一个典型的运维工程师至少需要管理上百台设备, 包括服务器, 网络设备等. 规模和差异化永远是运维工程师最大的敌人.

比如, 面对一台服务器你可以很轻松的完成安装系统或者修改某个配置文件的工作. 但是相同的任务, 如果需要在100台, 或者1000台服务器上完成, 那就....不那么简单了, 尤其是面对不同的服务器, 多种不同的操作系统版本的情况下, 就.....基本没法干了. 当然, 你可以一台一台的人肉去搞, 但是我相信, 你还没做完就被公司fire掉了. 所以, 我们还需要借助一些更为给力的工具, 完成一些复杂的任务.

系统安装

想想你可能一天要给上百台设备安装操作系统的场景.

每个Linux的发行版都有自己的自动应答机制, redhat系列的是Kickstart, debian系的是FAI. 可以实现无人值守安装(安装过程不需要鼠标点击或者键盘输入), 这是批量化安装系统的前提. 自动应答机制只能解决单机的自动安装, 批量化得操作还需要用到另外几个东西.

  • PXE, 可以让服务器通过网卡加载系统安装程序.
  • ipmitool, 服务器远程管理卡(ilo)的命令行管理程序, 可以远程关机/开机, 指定boot order.

安装系统相关的工具/系统非常多, 比如: Cobbler, 这是一个建立在PXE基础之上的, 对系统安装过程提供了更高级抽象的系统.

监控

运维工程师的另一项重要工作就是监控系统的运行状态, 这里的"系统"指的不是"操作系统", 而是你管理的整个服务器集群, 里面可能有DB, 有Web Server, 有Cache等等. 需要监控的指标也不仅仅是cpu, 内存, 硬盘这些常规指标, 还会包括一些应用上的指标, 比如: 并发数量, QPS. 甚至还会有一些业务指标需要监控.

要建立完善的监控系统, 单靠监控软件本身是不够的, 还需要被监控的软件/系统配合才行. 被监控方需要将需要监控的数据暴露出来, 方便监控系统获取才行. 比如, 你想监控操作系统相关的指标, 那你可能要学一些shell知识----知道如何获取自己想要的数据.

以下是几个常见的监控系统软件:

  • nagios
  • ganglia
  • zabbix

配置管理

想想你可能一天要更新成百上千台设备的配置.

cfengine是最早的, 得到大规模使用的配置管理工具. 类似的工具还有: puppet, saltstack, ansible...

这些工具的功能不尽相同, 但是一些基本的功能是差不多的:

  • 管理服务器进程
  • 管理配置文件
  • 管理软件包
  • 管理进程, 配置文件, 软件包之间的依赖
  • 远程批量命令执行

比如你有一批机器需要安装Apache, 然后更新Apache的配置, 然后重启Apache使配置生效. 类似的任务, 你可能每天都会遇到, 而且不止一次. 而这正是配置管理工具应用的典型场景. 理想的情况下, 工程师只需要编写一些简单的规则, 并且指定应用这些规则的服务器, 然后配置管理系统会帮你完成软件安装, 配置下发, 服务重启等一些列的工作. 工程师不在需要关心自己面对的是10台服务器, 还是100台服务器.

配置管理工具, 帮助工程师实现了对硬件, 对软件环境的抽象, 实现了基础设施可编程, 这很重要. 基础设施可编程的概念之所以重要, 是因为这一概念是所有云服务的基石.

Dev

对于运维工程师而言, 除了 shell 还必须掌握一门真正语言, 个人建议以 python 入门, 原因有几个:

  1. "自带电池", 通常你只需要python 的标准库就能完成大部分的工作.
  2. python的哲学是"一个问题只需要一种解决办法". 如果你遇到过一些你不敢碰的, 充满Magic的perl脚本, 你就会了解这一点有多重要了.

当然工作中具体用什么语言应当视公司环境而定, 有可能是 python, 也有可能是perl/ruby/ 甚至是lua.

但是我要强调的是, 语言是相通的, 只要你掌握了一门语言, 学新语言将会很快, 所以刚开始学习编程时, 不要过多纠结于选什么语言好. Just do it!

python

对于 python 而言最好的教程我认为是官方文档,
但因为是英文的, 所以看起来可能会比较吃力.

python 相关的书籍还是比较丰富的. 这里随便推荐几本.
Python语言入门
Python基础教程
Python核心编程

做一个"懒惰"的工程师

这里的懒惰是加引号的, 不是让工程师真的变得懒惰, 而是需要工程师通过工具, 通过代码将工作变得自动化, 从而解放自己.

可以说, "懒惰"应该是工程师毕生的追求. 这里推荐两篇文章:
“懒惰”Linux:“懒惰”集群管理员的 11 个秘诀
“懒惰” Linux 管理员的 10 个关键技巧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,825评论 25 707
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,215评论 9 467
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,454评论 6 428
  • 今天是我第一次给儿子去开家长会.也是第一次重新拾起放下多年的日记.以前看着家长们都写日记,自己也动过心想写.可是一...
    跟孩子一起成长阅读 116评论 0 1
  • 我就在这儿,什么地方都不去。我喜欢你,像生活在以你命名的朝代里。像你遗失的子民,每夜修补一个盛世。人们山南水北,人...
    我我我我_阅读 244评论 0 0