基本信息

编辑推荐
腾讯高级运维工程师撰写,腾讯,百度,阿里巴巴,新浪等多家企业总监级运维专家高度认可并联袂推荐。
从基本功能,操作使用,高级功能,二次开发,工作原理、性能优化、疑难问题等多个角度系统、深入讲解了puppet运维的方法、技巧和最佳实践,包含多个企业级实战案例。
内容简介
计算机书籍
自动化运维领域的重磅之作,Puppet领域权威的、系统的、有深度的、极具企业实战价值的著作。腾讯高级运维工程师撰写,获得了来自腾讯、百度、阿里巴巴、新浪等多家世界级互联网企业的总监级运维专家的高度认可和联袂推荐。
工欲善其事,必先利其器,在操作层面,《Puppet权威指南》从Puppet的基本功能到高级功能,再到二次开发均有详细分析,内容详尽而系统,能帮助读者全面掌握Puppet的使用;知其然,更要知其所以然,在原理层面,本书从多个层面和角度分析了Puppet的工作原理,能让读者更深入理解和使用Puppet;好的经验是无价的,在应用层面,作者将自己几年来学习和应用Puppet积累的方法、技巧、最佳实践以及解决疑难问题的秘诀都毫无保留地奉献了出来,能让读者少走弯路,事半功倍;实践出真知,在实战层面,本书给出了几个对企业很重要的、常见的综合性案例,不仅能帮助读者提高实战能力,还能给予他们解决这些问题的良好解决方案。
作译者
目录
序 一
序 二
前 言
第一部分 基 础 篇
第1章 运维工程师的利器——自动化运维工具 2
1.1 浅谈运维工程师 2
1.1.1 运维工程师定位和职责 2
1.1.2 优秀运维工程师vs普通运维工程师 3
1.1.3 自动化运维工具 5
1.2 自动化运维工具箱 5
1.2.1 Cfengine 5
1.2.2 Chef 7
1.2.3 Puppet 7
1.3 自动化运维工具对比 10
第2章 Puppet介绍 12
2.1 DevOps介绍 12
2.2 Puppet版本介绍 13
2.2.1 Puppet开源社区版本号介绍 13
2.2.2 Puppet版本混用可行性 14
前言
早在2009年的时候,笔者就梦想能出版一本属于自己的书,虽然那时用业余时间写过一本,但并不专业也没有正式发行。时隔5年,随着工作经验的积累和知识的增长,经过了2年多的构思,编写的这本书终于面市了,这算是圆了笔者一个小小的梦想。笔者从事互联网行业已有7年左右的时间了,与传统行业相比,7年的时间仅能算是初出茅庐,但对于年轻的互联网行业来说不算短了,因为互联网在1995年才正式进入中国,目前还处于“花样年华”阶段。
2008年~2011年5月,笔者就职于新浪网技术中国有限公司。当时笔者所在的团队主要负责登录系统的开发与运维,同时还负责包括好友系统、在线系统和消息系统的维护,所有服务器加在一起有100多台。除了不用到机房上线服务器与安装系统外,其他的所有工作都由笔者当时所在的团队共同完成。那时都是由开发工程师兼运维工程师来完成这100多台机器的维护、软件安装、程序部署、架构部署、系统调优与监控等工作。这样的工作方式有优点也有缺点。优点是一名初出茅庐的职场新人(笔者)就可以自己建立运维工具,构建系统架构和部署系统的监控,并且从中获取更多的知识,迅速成长;缺点是团队中的同事都有自己的一套独立的小工具,团队中的工具与工具之间不能继承与复用,每次系统增加新功能都需要重新开发工具,浪费了很多人力成本。而且工具本身不够自动化,很多环节需要人为参与。那时笔者就在思考,是否能有一种工具来帮我们串联贯通业务,在节约人力成本的同时提供个性定制操作呢?
2011年6月至今,笔者就职于腾讯。在腾讯工作的这几年中,笔者专职从事运维与运维工具的开发等工作。笔者将目前在腾讯的运维经历划分为以下4个阶段。
第一阶段,统一化:即操作系统发行版本都是统一的,服务器硬件也采用的是相同型号、相同配置,从根本上规避了差异化给运维工作带来的麻烦。
第二阶段,基础化:从系统安装、上线、服务部署、测试、监控到后续维护均由统一的系统完成。
第三阶段,自动化运维:服务器软件安装和更新,程序发布版本都由相应工具完成,不需要人为参与。通过Web化与图形化的展示规避了服务器误操作的风险,提高了系统可用性与工作效率。
第四阶段,大数据挖掘:新产品上线需要多少台服务器、带宽和流量仍处于不好估算的阶段。当系统上线后,要想通过海量数据发现产品潜在的问题、获悉用户爱好与习惯、预测未来产品走势,就需要我们了解与掌握相关信息,所以需要通过大数据的分析,从产品海量日志中找到有价值的信息,助力产品更好地发展。
当很多公司的运维还处于第二与第三阶段时,腾讯已经逐渐从第三阶段步入第四阶段。但在这4个阶段中,笔者觉得第三阶段是一个非常重要的阶段,只有解放了人力才能将更多的精力投到大数据挖掘上,以助力产品发展。2011年下半年,笔者偶然听说了Puppet配置管理工具很不错,并从官方文档上了解到,Puppet配置管理工具正是笔者一直在找寻的工具。它安装简单,使用方便,并且有着丰富的文档与活跃的社区,这无疑降低了初学者学习门槛。所以在对Puppet进行了系统的了解与学习之后,恰好赶上一次新业务上线,部分功能需要运营系统再次开发支持,笔者觉得这是一次测试、使用Puppet的好机会,于是在一周内搭建并使用了Puppet配置管理工具。测试表明,在无需人力参与开发的情况下,Puppet配置管理工具确实节约了很多人力成本,提高了效率。2013年6月,笔者决定把学习与使用Puppet配置管理工具的过程和心得整理成文字并发表出来,以让更多的计算机爱好者和工作者了解并使用这款软件。编写本书的过程也是再次学习Puppet的过程,Puppet并不只是配置管理工具,它的设计思想与软件架构,以及版本迁移历程都值得我们去学习与借鉴。笔者衷心希望本书能帮助读者更快地掌握Puppet管理配置工具,并将其应用到实际工作中,为大家带来方便。
本书主要内容
本书共分为18章,4个部分。
第一部分基础篇(第1~5章):第1章对比了目前常见的自动化运维工具,并介绍了目前应用Puppet的公司与Puppet发展前景,让读者了解为什么选择Puppet,Puppet与其他运维工具相对而言有哪些优势,使大家对Puppet有个基本的了解与认识。第2~5章主要介绍Puppet的版本分支状况及选择,Puppet安装过程、目录结构、各版本之间命令差异如何解决,Puppet配置文件的作用等。基础篇学完后,读者可以搭建Puppet环境并掌握基本使用方法。
第二部分进阶篇(第6~9章):主要介绍Puppet核心编程语言、资源、模板应用与Facter。让读者能够在搭建的基础上完全玩转Puppet。
第三部分高级篇(第10~15章):主要介绍Puppet的一些高级功能。当Puppet不能满足我们的工作需要时,如何做二次开发使其能够为我们工作所用?大规模使用Puppet时,性能瓶颈应该如何解决?如何管理与查询差异化服务器信息及上报的日志?海量的Agent服务器中部分Agent工作异常如何快速定位原因?这些都是在Puppet实际使用中常常会遇到的问题,读者们可以在本篇中找到答案。
第四部分应用篇(第16~18章):这几章会以案例形式介绍Puppet在企业环境中如何应用,在方便读者记忆的同时,拓展读者的思路。对Puppet的了解和使用达到一定程度后如果读者想偷懒,还可以使用热心网友分享的、已经写好的Puppet配置语言,这样可以将更多的时间放在系统优化与数据挖掘上。
本书特色
在读本书前并不要求读者对Puppet配置管理工具有一定使用经验或者编程语言的背景。本书从零基础开始介绍Puppet配置管理工具以及其管理配置语言,通过由浅入深的案例让读者更好地掌握Puppet。
本书在写作过程中主要参考Puppet两个稳定的版本分支文档,即Puppet 2.7(https://docs.puppetlabs.com/puppet/2.7/reference/)和Puppet 3.6(https://docs.puppetlabs.com/puppet/ 3.6/reference/)。
笔者将Puppet引入工作环境,不仅是为了解与学习Puppet,更是要解决工作中遇到的实际问题。书中案例贴近实际工作环境,同时在不同的工作场景下给出了不同的使用建议供读者选择。
本书不仅系统地介绍了Puppet配置管理工具,还介绍了一些Puppet辅助工具,如PuppetDB、Marionette Collective、DNS和版本配置工具。
序言
如何成为一名优秀的运维工程师?利用哪些工具和手段去协助自己?这些问题的解答不仅适用于专业人士,也适用于初学者,而本书就是一本技术人员必备的良书。本书面向的读者是那些对技术有着执著热情的运维和开发人员,书中对如何成为一名优秀的运维工程师,如何使用自动化工具Puppet,以及Puppet原理、部署等方面都做了详细介绍。我相信这本书能给所有初入技术领域的人一个整体框架,也能给专业的技术人员一些思路和细节上的
指引。
我们周围有很多的运维人员都在踌躇:该如何成为一名优秀的运维工程师?放在七八年前,在那个互联网并未发展到如今这般庞大的时代,在一切仅仅靠人脑就能实现运维的机器规模下,在靠简单的自动化程序就能完成运维的状态下,运维工程师只要维护好Server,保障应用稳定、不出故障,也许就能达到一名出色的运维工程师的标准。但是现在,在这个大数据的时代,原有的标准已经无法满足需求。一名出色的运维工程师除了做到维护系统稳定和不出故障外,还要参与系统架构的设计,做到大规模机器下的自动化安装、部署,高并发、高压力下的性能调优,符合诸多因素,才能成为一名合格的运维工程师。
本书不仅内容详尽,而且结构清晰,使用了大量实例进行详细的表述和分析,便于读者理解及查阅,具有很强的实用性和指导性,扩展了读者对运维概念的认知。
高国新阿里巴巴技术保障–云PE、技术专家
序二?Foreword
相传,在很久很久以前,遥远的西方国度中,一家叫雅虎的网站,在普天下的系统工程师心中埋下了一颗神奇的种子,从此变得一发不可收拾。围绕着这颗种子,总会有讲不完的传奇故事,令无数人想一窥究竟;而它,也承载了数不清的美好憧憬。这颗种子,就是自动化运维,一个永恒的话题。
回顾过去10年的互联网从业历程,我有幸亲眼见证了自动化运维在中国所发生的一系列深刻变化,但同时在这方面也深存遗憾。遗憾源于自己曾亲手规划过一套自动化运维的美好蓝图,但最终变为黄粱一梦。坦白地讲,在自动化运维方面,我的失败教训远大于成功经验,今天在这里写序,心中难免有一丝不安。尽管时隔多年,但对那段失败经历的复盘和自我反思,在我心中从未停止过。以今天的视角看,我认为自动化运维涉及 “期望管理、资源整合、冲突管理、工具选择、风险管控、思维理念的塑造”等很多方面,甚至还需要充分理解公司的战略规划。
就技术层面而言,我想结合本书要讲的Puppet,谈一下自己对“运维工具选择”的理解。自Puppet诞生之日起,它就如同夜空中最闪亮的那颗星星一样,一举超越了那个叫Cfengine的“老前辈”,引起了无数系统工程师的注目和追随。直到今天,它的影响力和全球部署量依然很大。但同时有关Puppet是否过时的讨论也悄然兴起。在我看来,一方面,世间万物都有各自的生命周期,Puppet当然也不例外。与其讨论它是否过时,它何时会过时,倒不如全面而深入地理解Puppet的思想精髓,深入思考它在未来可能会面临的挑战,以及Puppet本身在版本迭代过程中是如何应对这些挑战的。另一方面,与其纠结于目前是该用Puppet还是直接上线SaltStack,倒不如深入思考:我们的自动化运维框架如何能更快速而低风险地应对上层工具可能发生的变化。
而本书的价值恰恰在于,不仅用全景式的视角对Puppet的使用进行了翔实的介绍,更有对细节的深度解读。透过这些深度解读,读者朋友们可以逐步悟出Puppet的思想精髓,进而对自动化运维有更深的理解。书中所配的具体案例,都是作者多年来在多家大型互联网公司关键岗位工作所得精华之总结,具有非常强的权威性和实操性。
除对Puppet的讲解外,我本人也非常喜欢本书的第1章。这与我前文提到的自动化运维所涉及的“思维理念的塑造”不谋而合。相信大家读完这本书后,一定会觉得物有所值!
李晓栋新浪网研发中心高级技术经理
媒体评论
本书作者有长时间在大型互联网产品上使用Puppet的经验,本书结合了这些经验,系统而全面地介绍了Puppet强大的功能和原理,帮助读者快速掌握其使用方法和工作机制。本书亦可作为平时使用Puppet的一本专业参考书。
——赵建春腾讯社交网络运营部助理总经理
★如何高效地实现大规模服务器集群的运维管理,如何设计一套高可用的配置管理系统,是摆在每个互联网运维工程师面前的难题。Puppet正是为了解决大规模集群配置管理而诞生的一款优秀的系统。作者凭借多年在腾讯海量运维积累下的Puppet实践经验撰写的本书将Puppet从入门学习、灵活实践,到高阶应用的过程巧妙地融入各个篇章中,内容多为经验总结概括,实战性很强,值得每位运维工程师、运营开发工程师、系统架构师和广大Puppet爱好者捧读。
——梁定安腾讯社交平台业务运维负责人
★Puppet作为一款非常优秀的开源配置管理工具,应用非常广泛,从运维到DevOps均有不错的表现,多数大型互联公司都在使用它。本书作者在Puppet领域的研究非常深入,有大量的实战经验。本书从各种配置管理工具对比,到Puppet的语法详解,再到集群、数据仓库等高级技巧,结合大量实战的案例,从浅入深,信息量很大,表现出作者在Puppet领域很强的功底,值得运维工程师,及追求DevOps的开发者拥有。
——王炜煜百度运维架构师
★互联网时代来了,每天产生与存储的信息量相当于人类几百年所产生的信息量。海量的数据与海量的存储对于快速发展的互联网来说,单凭一个人或几个人是难以支撑的,需要通过自动化工具来更好地管理系统。而本书作者将自动化运维工具Puppet引入工作中,解决工作中问题的同时又将学习与实践的过程总结成书,这是非常难得的。Puppet在国内的资料并不多,本书系统地介绍了Puppet这款自动化运维工具,是一本非常不错的参考书,值得推荐。
——于杰英Netapp高级程师