本书包含DevOps理论的介绍,深入浅出地解析了DevOps体系所包括的Agile/Lean/ITSM/TPS各种方法的精粹和脉络,为DevOps爱好者提供了较为完整的知识体系梳理。同时,聚焦于DevOps企业的落地实施,从文化到组织变革的最佳实践、规范性指导和实践参考都有涉及。DevOps工具自动化是落地实施的保障,本书将提供详细的流水线搭建过程的步骤,搭建持续集成、持续部署流水线常见的思路和设计模式、开源及流行工具选型的原则和方式,同时介绍多种工具包括Jenkins、Sonarqube、Gitlab、Redmine、Docker、Kubernetes的使用方法和集成方式,并介绍了DevOps实践中容器化或者传统方式从设计到部署各阶段需要注意的事项,以指导企业全方位地进行DevOps实践。
系统介绍DevOps知识体系,结合工具与项目实践,聚焦企业DevOps落地实施,从常见认识误区的说明到具体实践经验的分享,从架构设计、测试方法、部署原则、流程改善等多方面进行阐述。
刘淼
资深架构师,PMP、OCP、CSM、HPE University讲师,EXIN DevOps Professional与DevOps Master认证讲师,曾担任HPE GD China DevOps & Agile Leader,帮助企业级客户提供DevOps咨询培训以及实施指导。熟悉通信和金融领域,有超过10年金融外汇行业的架构设计、开发、维护经验,在十几年的IT从业生涯中拥有了软件开发设计领域接近全生命周期的经验和知识积累。CSDN博客专家,博客地址为https://liumiaocn.blog.csdn.net/。
张笑梅
IT从业15年,其中含5年欧美外包经验,10多年国内行业咨询服务与解决方案经验,涉及电信、金融、航空等领域。先后服务于HPE、惠普、毕博等公司,曾负责过大中型项目实施开发与管理工作,担任过产品经理、咨询顾问、培训讲师及教练等职位。目前致力于项目和组织的敏捷与DevOps转型实施和培训。EXIN Agile Master、DevOps Professional、Lean IT、VeriSM、TSP、PSP模型认证讲师,凤凰沙盘/火星沙盘教练,CMMI 2.0 评估员,ISO 9K内审员,拥有CSM、SAFE、SAFE Advance Master、ITIL、SIGMA GB认证。
本书背景
研究人员在对全球各大公司的调研中发现,DevOps 几乎在各个行业都已经有了成功的实践案例,同时越来越多的理论体系和实践经验不断地被融入到DevOps 中,DevOps 因此受到越来越多的关注。在2018 年的DevOps 研究中,有29%的受访者声称正在从事与DevOps 相关的工作,然而DevOps 是什么,到目前为止仍然没有统一、标准的定义,但这并不会阻止企业DevOps实践的脚步。
自2015 年起,我一直在从事与DevOps 相关的咨询、培训、落地实施及其相关的研发工作。由于工作的关系,我认识了付睿编辑,于是产生了将相关内容整理、总结成书的想法。而张笑梅老师在敏捷和精益管理方面有着非常多的实践经验和知识积累,她可以弥补我在这些方面的不足,这也促成了我们共同完成这本书的想法。张笑梅老师将DevOps 基础理论中的很多知识进行了系统的整理与分析。比如,对传统制造业和IT 行业中的浪费比较等方面进行了分析,使我受到很大的启发,相信这也会给读者带来启发。
阅读方式
本书从DevOps 的基础理论、工具种类与集成方式、实践方法与经验、常见理解误区等方面进行组织和展开,对于不同的阶段,建议读者从不同的视角、用不同的方法去阅读本书,从而直入要点、满足所需。希望通过阅读本书,读者可以有以下三个方面的收获。
√ 对DevOps 基础理论的全面理解。
通过对DevOps 发展现状的介绍,读者可以了解当前DevOps 的发展状况。书中结合敏捷和精益管理方面的背景和基础知识,阐述了企业在DevOps 实践中需要注意的事项;还对企业如何构建DevOps 文化,结合相关实例,进行了说明。
√ 选择和构建合适的工具链。
工具及其使用方法介绍是本书的重点,针对软件生命周期的各个阶段,本书列举了常见工具并对其进行了功能特性的分析和介绍,同时选取较为典型的工具进行了更为深入的讲解。虽然与DevOps 相关的工具众多,本书未能一一列举和介绍,但是通过本书对这些常见工具的介绍,相信读者能够窥一斑而知全豹。
在DevOps 工具的实际使用过程中,自动化和集成化是其重要的工作方式,同时也是趋势,因为单个工具所能实现的功能毕竟有限,而将多个工具结合使用可以实现的功能将会极大地增强。本书主要使用自动化集成的方式对工具进行介绍,一般会通过REST API 方式介绍工具的使用方法。在对工具的分析和介绍中也会重点确认此工具是否采用了CLI 或者REST API 集成的方式,因为这样的集成方式是DevOps 实践的重要前提和特征,读者可以根据自己的实际需
要组合使用工具,而不必求全求多,建立合适的工具链才是最重要的。打通工具间的衔接,结合组织的实际状况进行流程的优化,这些才是建立工具链需要重点关注的内容。
√ 实践的原则与策略。
虽然在DevOps 中,工具非常重要,但是DevOps 并不是工具的简单集成,它还包含很多其他内容。比如,工具选型的原则和方法;企业的评估模型,用于对DevOps 的实践状况进行评估,并以此为基础不断改善;整体的安全机制;从设计到测试的各个阶段需要遵循的原则与方法,等等。本书尝试从多个方面来阐述这些内容。
关于示例
容器化在推动DevOps 实践中有着先天优势,在条件允许的情况下,最好以容器化方式对工具进行安装和设定。我们强调环境的一致性,而容器本身就可以保证这一点,这也避免了大部分工具在安装和设定时出现环境不一致的情况。对于没有学习过容器基础知识的读者来说,如果希望快速补充这方面的知识和基本技能,可以先从第19 章开始阅读。第19 章对Docker 和Kubernetes的使用方法进行了介绍,应该会对一些对此部分知识掌握不足而难以进行DevOps 相关工具集成的读者朋友有所帮助。第19 章结合实际的场景,对容器的使用方法进行了介绍,其中大部分相
关脚本和容器化会用到的Dockerfile 都放到了GitHub 的easypack 项目上,其目的是为使用者提供各种工具以使他们快速使用已经完成了安装和部署的脚本或镜像,避免在环境安装方面浪费时间,但是我个人精力有限,在此欢迎读者朋友也能够加入这个项目。
关于勘误
DevOps 在理论上和工具使用上非常复杂,因此,本书讨论的内容非常繁杂,仅工具就列出了13 类,每类工具中至少选择了一种进行重点介绍。因为我个人的精力和知识水平有限,所以书中难免有疏漏、错误的地方,还望发现问题的读者给予指正,大家可发送问题至邮箱liumiaocn@outlook.com。另外,我会在个人的CSDN 博客上发布长期置顶的内容勘误帖,欢迎读者朋友指正或参与讨论。
致谢
首先感谢我一生的挚爱——Lynn,她花费了很多时间来对本书中“索然无味”的文字进行校对并查验错别字。本书的大部分内容来源于我的博客,有读书笔记和感悟,也有对项目实践及工具使用技巧的总结,这些内容虽然获得了一定的阅读量,但是有实质性内容的评论不多,这使得我一度认为其中的错别字很少,现在看来完全是读者的“包容”而已。回想起来,对于一个专业的HRBP,Lynn 能够将晦涩难懂的技术文章读下去的唯一动力大概就是对我无私的爱吧。而像付睿和刘建山等多位专业编辑,他们的专业和认真程度也让我折服,在这里请允许我一并谢过,感谢他们的付出。
我和张笑梅老师因DevOps 而相识,我们之间的很多合作都与DevOps 有关,我们曾一起做过相关项目的研发,在2018 年也一起为《DevOps 最佳实践》中文版做过审读。回到本书,张笑梅老师的加入为本书的理论部分增色不少。从初涉DevOps 到现在,我也接触了很多领导和同事,在他们的支持下,我的很多想法才能得到验证和实践,感激之情难以言表。最后,虽然自己尚觉不足,但这本书里还是有很多值得学习的理论基础和实践经验,希望能够带给读者一些触动和启发。
参考文献说明
为了保证参考文献相关链接实时更新,特地将“参考文献”文档放于博文视点官方网站,读者可在http://www.broadview.com.cn/37246 页面下载或通过下面“读者服务”中提供的方式获取。