本书作为系统介绍DevOps的教材,内容包括了DevOps这种互联网时代新型开发模式的多个方面。全书第一部分首先从时代背景出发,介绍DevOps模式的渊源;结合云时代运维的特征,进一步阐明DevOps模式是适应当前软件系统开发、部署和维护的必然选择。尽管DevOps从很多方面来看是一个新生事物,但是其内在的软件开发方法和过程并没有太大的调整,因此,本书第二部分介绍了主流软件开发方法及其流程;当然,作为DevOps的基础理论,精益生产和看板方法是这部分的重点。本书第三部分则重点阐述了DevOps模式下的典型实践,例如:微服务架构、持续集成、持续交付(部署)、虚拟化、Docker容器、自动化等。
深度解析互联网时代开发运维模式DevOps。每一个想学习DevOps理论与实践的人都应该研读的*一本书。工业界和学术界的一次思想碰撞——实用具体和严谨全面的有机融合。
李兵刘超王青汪浩洪绯王润郭峰徐峰郭蕾吴超英沈海峰黄丽果祝立明联名推荐。
近年来DevOps开发模式对软件产业产生了深远影响,相当多的软件企业开始采用这种新的模式。来自权威机构的预测报告甚至认为,未来全球排名前2000的软件企业中,超过80%都将转向DevOps模式。事实上,DevOps发展速度之快和影响范围之广都大大超出了人们的预期。
DevOps之所以会产生如此巨大的影响,我们认为这不是偶然的。这种方法本身具有的特性非常适合在需求很难确定、快速响应变更、快速提供价值和高可靠性要求这样的所谓互联网时代软件环境中得到应用。由此,作为软件工程教育者,我们不得不思考DevOps给现代软件工程教育所带来的影响。一方面,我们的教育本身就需要教会学生把经过实践检验的优秀管理方法和适用的具体开发技术相结合,应用过程化思想和系统化的方法去开发和维护各类软件系统。从这个意义上说,DevOps是满足上述目标的极好载体。因此,忽视DevOps,不仅仅会错过一个实现软件工程教育目的的好机会,更为糟糕的是,可能会由此扩大学校教育和业界实际实践之间的差距。另一方面,将DevOps引入大学课堂,也面临着诸多挑战。首要的就是目前尚缺一本专门以DevOps为主题,全面系统地涵盖DevOps各个方面的教材。有鉴于此,我们编著了这样一本教材,试图弥补这一缺憾。
考虑到本书主要面向DevOps的初学者,因此,在内容的选择和组织上,我们并没有一味罗列DevOps的流行词汇和工具,而是尽可能把DevOps方法背后的理论基础解释清楚。对于具有典型DevOps特征的软件工程技术和实践,例如微服务架构演进、精益管理、容器技术等,我们则不吝笔墨地大篇幅介绍。由此,我们试图传递出一个概念,即DevOps作为一种方法学,不能简单等同于某类实践或者工具,而是涵盖管理的基础理论、技术以及工具的有机整体。综合起来,本书具有如下特点:
全面系统地覆盖DevOps的各个方面,便于读者以此书作为DevOps的基础(尽管内容并不基础!)入门书籍。
保持客观、中立和审慎的态度。尽管我们推崇DevOps,但绝不盲从。在材料的组织和内容表述方面,我们以解决实际问题为导向来介绍DevOps。同时,我们也清晰表达观点—DevOps并不抗拒其他方法学。
部分知识点和相应的案例直接来源于一线业界专家的工作经历,可以增强读者的代入感,同时,也有助于读者更好地理解DevOps。
本书具体分工如下:第1章由王天青、邵栋、张贺以及任群合作编写;第2章由腾灵灵和宋骏合作编写;第3章由蒋孟杰编写;第4章由荣国平编写;第5章由何勉编写;第6~8章由王天青编写;第9章由吴昊编写。此外,荣国平、张贺和邵栋对全书进行统稿和润色。由于时间仓促,再加上编者的水平所限,书中难免有错误与不妥之处,恳请读者指正和赐教。
荣国平
2017年7月于南大北园
荣国平,南京大学软件学院教师,长期从事软件过程改进相关的工作。从2006年开始,多次赴美参加SEI的相关培训,并在当年成为国内唯*的SEI授权PSP培训师和TSP团队教练。在JSS、软件学报等期刊以及包括ICSE、ESEM、ICSSP、EASE、CSEE&T、APSEC等在内的一流国际会议上发表论文40余篇。DevOps中国技术社区发起人之一。
张贺,南京大学软件工程教授、博士生导师,入选登峰人才计划(A-层次),澳大利亚联邦科学院(CSIRO)主任科学家。在欧洲和澳洲从事软件工程研究与实践十余年,2013年起就职于南京大学。长期从事软件过程、软件体系结构、服务计算、经验软件工程领域的科研和实践。负责主持爱尔兰(欧盟)、澳大利亚、中国等多个国家*科研基金项目。著有英文专著两部,并在国际重要软件工程学术期刊和会议上发表论文百余篇,其中10篇会议长文获*佳论文奖。
邵栋,南京大学软件学院副教授,嵌入式技术系主任,软件学院院长助理。主要从事软件工程教学研究工作,研究方向为软件过程、高科技市场理论、敏捷软件开发、软件工程教育等。2005、2009、2014年三次获得教育部颁发的“国家*教学成果奖二等奖”,是国家*教学团队“软件工程主干课程教学团队”骨干成员,编写教材一部,担任国家精品课程“计算与软件工程”主讲教师,两次获得“南京大学我*喜爱的老师”称号。
赞誉
序
前言
第1章DevOps概述
互联网时代的转型挑战 l
独角兽公司 4
1.2.1 Netflix公司 4
1.2.2 Instagram 8
1.2.3成功秘诀 9
什么是DevOps 10
1.3.1发展渊源 10
1.3.2价值观 l2
1.3.3原则 l3
1.3.4方法 l5
1.3.5实践 l6
1.3.6工具 l6
DevOps应用与研究现状 17
1.4.1微服务 17
1.4.2持续集成和持续交付 l9
1.4.3工具研究和开发 2l
本章小结 23
思考题 23
参考文献 23
第2章云时代的运维26
第3章软件架构演进44
第4章软件开发过程和方法68
第5章精益思想和看板方法124
第6章微服务软件架构144
第7章容器技术基础163
第8章基于容器技术DevOps的实践188
第9章DevOps工具表214