文章目录
  1. 1. 简介
  2. 2. 译者序
  3. 3. 致谢

从开始试译到现在经过了半年多,我和马博文的译作《DevOps实践》终于出版啦。这里简要地介绍一下本书,并放篇我为此书所作的译者序,安利一下。

简介

《DevOps实践》介绍了DevOps的起源和概览,并通过一个贯穿全书的例子,从架构开始,到代码的存储、构建、测试、部署、监控,直至流程的跟踪,推荐了许多可用的工具和可行的示范,是一本DevOps实践方面不可多得的参考书籍。

《DevOps实践》面向愿意承担更大责任的开发人员和系统管理员,也很适合愿意更好地支持开发人员的运维人员。无须任何DevOps知识即可快速上手!


译者序

什么是DevOps?我的前同事李光磊将其译为开发自运维,他还写了篇很有意思的博客来说明:http://liguanglei.name/blogs/2015/04/22/devops-chinese-name/。这个将开发和运维结合起来的词,代表了一种文化,那就是大家共同协作。狭义上的大家,指的是开发和运维,广义上,指的是所有软件生命周期里参与的角色。

“共同协作”是个富有正能量的词。感觉上,随便往哪儿一套都是政治正确的。那为什么要在DevOps里着重强调呢?DevOps到底解决了什么问题?归根结底,就是提高产品质量。爱思考的你,可能心里已经有千万个提高产品质量的方案从脑海里呼啸而过。代码审查、自动化测试、持续集成、代码质量管理工具、程序员鼓励师……对对对,这些方案都能在某种程度上解决一些层次的问题。但是,产品质量的根源在哪儿呢?在于人。如果开发者对自己要做的事情不负责甚至压根儿不知道后果,怎么能指望这样的人能够生产出来高质量的代码呢?举个例子:作为开发者,我知道自己写的代码会由测试部门来进一步测试,在有进度压力的时候,我就会更倾向于去想:“那就先这么凑合吧着,反正有问题的话QA们会说的”。如果我不知道部署和维护产品是怎么一回事,我就不会主动地在产品里写上日志的代码。对于运维人员来说,由于处于软件生命周期的下游,相信对类似的场景感触更甚。DevOps能够做到的事,就是让人有这个意识:需要对产品的质量负责。DevOps能够提供一个平台或机制,让我能够从中找到所需的资源。

“共同协作”也是个虚无缥缈的词。它应该如何落地呢?这就是本书想要给读者们带来的内容。在实践上,从架构开始,到代码的存储、构建、测试、部署、监控,直至流程的跟踪,本书推荐了许多可用的工具和练习,确实无愧于《DevOps实战》之名。细度全文可以有一个全局的概览并充实读者们的DevOps工具箱;而在实际场景中再查阅本书,将其当做一本各种技术的快速参考手册也不失为明智之举。本书的许多实例通过Docker启动,在紧随潮流技术的同时也简化了练习步骤,值得花些时间试试。在企业里,使用自动化和持续交付来提高代码部署频率,降低代码上线间隔。这样的指标是比较容易统计的,在让管理人员满意的同时,也能减少开发和运维的痛苦。只有让各角色都真切地感受到实惠,大家才会更加愿意从心底接受并积极参与到这一过程中。

“共同协作”还是个看上去很美的词。为什么大家还不赶紧拥抱它?因为它的成本可能还挺高的。大型企业在管理上,通常权责分明,从而导致某个角色的成员都不愿意轻易踏足其它领域。流程繁琐,导致一个小小的改进也需要漫长的批复。安全性要求高,引发各种违规,进一步导致没有和其他人分享的意愿。员工操作权限管理精密,上不了网、下不了包、开不了虚拟机……这些问题,虽然不至于疾在骨髓,但起码也在肠胃了。而且,自动化测试、部署流水线等都需要比较大的成本。在看见收益和认清自己之前,可能大多数人也会像蔡桓公那样默认拒绝吧:“医之好治不病以为功”。成本最低的时候,可能就是开始写第一行产品代码的时候。话虽如此,任何时候都是实现DevOps的最佳时机,因为它的成本随企业的扩大和代码库的膨胀,一定是越来越高的。另外,完全地追求技术上的卓越而忽视成本也不是DevOps的推荐做法。读者们在阅读时,也会看到DevOps在一些状况下采取的权衡方案。

你希望在一个大家敞开心胸,相互拥抱的环境里共同协作打造最好的产品,还是守着自己的一亩三分地,与人争辩这是谁的责任,抱怨人们冷漠的同时拒绝其他人的“与你无关”的要求?从本书开始,应用自己获得的知识,并尝试改造这个世界吧!

致谢

感谢作者Joakim Verona,本书涵盖了大量可以练习的实例,想必花了你很多的心血。
感谢ThoughtWorks,授人的不止是持续集成、持续交付,还有持续学习。
感谢林帆,没有你,我就不会有这样难忘的翻译经历。《CoreOS实践之路》只是你的开始,希望能看到更多的佳作问世。
感谢永恒的侠少,让我可以集中精力专注于翻译之上,你还为本书想了一个漂亮的副标题。
感谢马博文,你的经验与高效让本书的翻译可以提前完成。顺祝你的另一本译作《Scala编程实战》大卖。
感谢小伙伴张博,你给我的初稿指出了许多宝贵意见。
感谢文心、瑞民、光磊,这篇译者序里也流淌着你们的汗水。
感谢张骏,我从你的《微服务设计》的代码库里获取了许多宝贵的经验与灵感。
感谢家人和朋友们,我永远离不开你们的支持。

文章目录
  1. 1. 简介
  2. 2. 译者序
  3. 3. 致谢