序
三年前,我在VMware负责Cloud Foundry这一款开源PaaS产品在中国的开发者社区和生态系统建设工作。当时关于Cloud Foundry的中文文档非常少,更不用说有深度的技术干货了,所以当CSDN上出现了一个专门从底层模块和源码的角度,对Cloud Foundry做深度剖析的系列博客文章时,一下子就引起了我的注意。
经过一番“人肉搜索”,我非常惊奇的发现,这一系列干货的作者孙宏亮,竟然是浙江大学计算系的一年级研究生。当时,VMware跟浙江大学在Cloud Foundry方面有比较深入的合作,浙大计算机系的SEL实验室,投入了精锐的师资力量,从事分布式系统和新一代PaaS的研究工作。宏亮初入浙江大学,就在这样的氛围下开始了他的研究生求学生涯,应当说是非常幸运的。
宏亮在CSDN上的系列文章,主打“源码分析”,这正是当时开源社区内比较缺少的内容。提笔写“源码分析”,需要一定的勇气,阅读源码需要耗费大量的精力,需要从数十万行代码中整理出清晰的逻辑,从中抽丝拨茧、概括精华,这是一份非常辛苦的工作。而且,分析源码也需要一些“挑战权威”的精神,不仅仅是简单的代码解析,更需要提炼出自己的观点,甚至敢于发现和纠正一些已有的问题。
在源码分析方面,宏亮充分体现了“初生牛犊不怕虎”的精神,非常详细地剖析了当时Cloud Foundry的几个主要模块,条理清晰,技术分析准确到位。宏亮这一系列文章帮助了包括一线互联网公司在内的许多企业了解、认识和最终使用Cloud Foundry,宏亮也借此奠定了他在PaaS社区的“江湖地位”。
从去年开始,Docker的热潮开始波及中国开发者社区。我有幸跟宏亮一起在CSDN主办的第一届Container技术大会上发表联合主题演讲,向来宾介绍Cloud Foundry内部的容器技术实现,以及对Docker的一些展望。那次大会是一个很重要的里程碑,在那之后,宏亮开始深入研究Docker的底层实现,并在InfoQ连载“Docker源码分析”系列文章。
对PaaS平台的研究越深入,越能够发现和体会Docker对开发和运维的价值。如果说当初的Cloud Foundry模块和源码分析文章,是读研期间的学习笔记,那这次宏亮的《Docker源码分析》,则是一个经过了深思熟虑、系统性、结构化的工作。Docker开源项目发展速度非常快,这次在文章连载内容的基础上出书,为了保证内容的准确性和时效性,宏亮补充了大量Docker最新项目的内容,特别是对Swarm、Machine和Compose这三个模块的开发进展做了紧密的追踪。
这是一本从架构和代码角度讲解Docker底层实现的技术图书,我从连载第一篇开始就对这个系列的文章保持了紧密的关注,也目睹了宏亮在后期整理加工成书过程中的辛勤努力。在《Docker源码分析》成书付梓出版之际,非常幸运,能够为宏亮写着一篇推荐序。这本书非常适合以下三类读者学习和阅读。
□ 希望以Docker容器交付软件的程序员。
Docker是未来互联网软件的交付件,这件事随着OCP标准的制定,正在逐渐成为事实。程序员和运维工程师都需要了解Docker的工作方式,尤其是Docker镜像的结构,软件通过Dockerfile打包时的优化方式等,这些内容在本书中都有非常详细的阐述。
□ Docker化云计算平台的建设者和维护者。
Docker公司在今年的全球开发者大会上提出了“Production Ready”的口号,有越来越多的互联网公司和传统企业采用Docker来构建开发、测试和运维平台。Docker在网络、存储、安全等领域的细节,是平台建设者和维护者必须深入了解的部分,这些领域还在不断变化,新的项目也层出不穷,但本书对网络、存储和安全的基本知识和概念,做了非常清晰的介绍,也深入到了底层实现的代码。
□ Go语言程序员。
即使不在项目中使用Docker,本书也能够为Go语言程序员带来帮助。Docker项目中大量采用了Go语言,尤其是在处理并发场景时,Docker对Go语言的运用可谓出神入化。本书可以帮助Go语言程序员亲身体验特大型项目中Go语言的威力,以及实战场景中Golang模式和功能的用法。
最后,预祝宏亮在Docker的学习和工作中再创佳绩,也希望读者可以从本书收获知识,开阔眼界。
喻勇
2015年7月13日