大部分开发人员对操作系统,内核或计算机硬件都不感兴趣。同样,大部分系统管理员,即使是 Linux 的系统管理员,也都不愿意学习编写代码,他们在大学期间学过一些 C 语言,然后就痛恨它,并且永远都不想再碰 IDE。所以,开发人员把运行环境的问题甩给围墙外的系统管理员,系统管理员把这些问题和甩过来的其它上百个问题放在一起安排优先级。每个人都忙于怨恨对方。DevOps 的目的就是解决这种矛盾。
Gene Kim 写的 《 凤凰项目 (The Phoenix Project)》。这是一本很不错的书,内容涵盖了我上文解释过的历史(写的更生动形象),描述了一个运行在敏捷和 DevOps 之上的公司向精益前进的过程。Terrance Ryan 写的 《 布道之道 (Driving Technical Change)》。非常好的一小本书,讲了大多数技术型组织内的常见性格特点以及如何和他们打交道。这本书对我的帮助比我想象的更多。Tom DeMarco 和 Tim Lister 合著的 《 人件 (Peopleware)》。管理工程师团队的经典图书,有一点过时,但依旧很有价值。Tom Limoncelli 写的 《 时间管理:给系统管理员 (Time Management for System Administrators)》。这本书主要面向系统管理员,它对很多大型组织内的系统管理员生活做了深入的展示。如果你想了解更多系统管理员和开发人员之间的冲突,这本书可能解释了更多。Eric Ries 写的 《 精益创业 (The Lean Startup)》。描述了 Eric 自己的 3D 虚拟形象公司,IMVU,发现了如何精益工作,快速失败和更快盈利。Jez Humble 和他的朋友写的 《 精益企业 (Lean Enterprise)》。这本书是对精益创业做的改编,以更适应企业,两本书都很棒,都很好地解释了 DevOps 背后的商业动机。Kief Morris 写的 《 基础设施即代码 (Infrastructure As Code)》。关于“基础设施即代码”的非常好的入门读物!很好的解释了为什么所有公司都有必要采纳这种做法。Betsy Beyer、Chris Jones、Jennifer Petoff 和 Niall Richard Murphy 合著的 《 站点可靠性工程师 (Site Reliability Engineering)》。一本解释谷歌 SRE 实践的书,也因为是“DevOps 诞生之前的 DevOps”被人熟知。在如何处理运行时间、时延和保持工程师愉快方面提供了有意思的看法。
技术书籍
如果你想找的是让你直接跟代码打交道的书,看这里就对了。
W. Richard Stevens 的 《 TCP/IP 详解 (TCP/IP Illustrated)》。这是一套经典的(也可以说是最全面的)讲解网络协议基础的巨著,重点介绍了 TCP/IP 协议族。如果你听说过 1、2、3、4 层网络,而且对深入学习它们感兴趣,那么你需要这本书。Evi Nemeth、Trent Hein 和 Ben Whaley 合著的 《 UNIX/Linux 系统管理员手册 (UNIX and Linux System Administration Handbook)》。一本很好的入门书,介绍 Linux/Unix 如何工作以及如何使用。Don Jones 和 Jeffrey Hicks 合著的 《 Windows PowerShell 实战指南 (Learn Windows Powershell In A Month of Lunches)》。如果你在 Windows 系统下做自动化任务,你需要学习怎么使用 Powershell。这本书能够帮助你。Don Jones 是这方面著名的 MVP。几乎所有 James Turnbull 写的东西,针对流行的 DevOps 工具,他发表了很好的技术入门读物。