首页>参考读物>计算机科学与技术>软件与程序设计

Linux集群和自动化运维
作者 : 余洪春 著
出版日期 : 2016-08-12
ISBN : 978-7-111-54438-8
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 369
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

全书分为7章:第1章主要是讲解的是进行网架架构设计的软硬件环境,包括机房的选型、CDN类型的选择,到底是用机房租赁的方式还是采用云主机的方式以及系统的优化等等;第2章,生产环境下的shell脚本,这里面的Shell脚本和Python脚本都是取自于线上环境,这章内容是以Shell为主,Python为辅,而且Shell部分讲得比较详细,Python部分重点和关注的地方也有提及;第3章讲解的是自动化运维工具Farbic,这也是作者的公司大家喜欢用的自动化运维工具之一,基于python开发的轻量级自动化维工具,作者也在公司推广,在开发团队也在应用;第4章,是关于分布式自动化运维工具Puppet详解,现在自动化运维是运维的流行趋势,而Puppet正是这方面的翘楚,熟悉掌握Puppet的使用能增加职业技能点;第5章讲解的是Linux防火墙在企业中的部署,所有的iptables脚本都是用于作者的线上服务器,大家可根据需求对照学习,在此章节中作者也重点介绍了iptables语法的学习重难点及在AWS EC2主机安全组的应用;第6章,高可用Linux集群案例分享,这个也是本书的精华之一,作者在此章中用自己的证券及电子商务项目为实践,详细说明了Nginx+Keepalived的部署安装过程及DRBD+Hearbeat+NFS高可用文件服务器,后面的章节作者还附带了项目施工图;第7章,网站系统架构设计详解,分别以百万PV、千万PV及亿级PV的网站为例说明网站架构设,也分层说明了网站架构设计,并且说明了我们设计网站的压力及注意点所在。

图书特色

《Linux集群和自动化运维》封面文案
一、 封面宣传语
英文书名:Linux Cluster and Automation Operations
(1)高级运维架构师、资深系统运维工程师十余年工作经验总结,基于一线运维工作提炼,从Linux集群、Python自动化运维和亿级PV网站架构设计等多角度讲解,以实践案例指导读者掌握到Linux系统集群和自动化运维技巧。
(2)姊妹篇《构建高可用Linux服务器》被《程序员》杂志和51CTO等权威媒体评为“10大最具技术影响力的图书”和“最受读者喜爱的原创图书”。

二、 前勒口文案
  云计算是一种流行趋势,云计算中众多成熟产品的流行对于传统的运维知识体系也是一种冲击和挑战,笔者从事Linux系统运维、运维架构师的工作已有10多年,之前大都从事传统Web相关工作,现在也随着趋势转到了云计算平台方向。对于运维人员来说,海量主机的运行维护、海量数据的分析和汇总,都是非常具有技术含量和挑战性的。笔者的许多读者朋友经常在交流中谈到从事系统运维工作3~5年以后就不知道如何继续学习和规划自己的职业生涯了。笔者希望通过此书,跟大家分享下笔者的工作经验和心得,通过此书的项目实践和线上环境案例,帮助大家迅速了解Linux运维人员的工作职责和方向,迅速进入工作状态及成长,并且能够掌握到Linux系统集群和自动运维及高流量高并发网站架构设计的精髓,提升自己的职业技能,进而轻松而且愉快的工作,提升自己的职业技能点和明确。
三、 后勒口
作者简介
余洪春(抚琴煮酒),高级运维架构师、资深系统管理员,在电子商务领域及云计算领域工作10多年,在Linux集群、自动化运维、DevOPS及高并发高流量网站架构设计等方面进行了深入的研究;在大量一线实践中积累了丰富的经验。精通负载均衡高可用和Python自动化运维技术,擅长高流量高性能网站架构设计。51CTO和ChinaUnix等知名社区特邀专家,ChinuaUnix论坛“集群和高可用”及“监控及自动化运维技术”版版主,在社区内发表了大量技术文章,深受社区网友好评。
四、 封底文案
随着云计算平台的流行和普及,用户的规模和访问量越来越多,传统型运维所面临的挑战也越来越大。一般传统型运维多集中于门户网站、游戏及电商网站等领域,它们的PV、并发及QPS的量级都是比较有限的,重要业务都可以采用集群的方式处理,通常维护好集群就可以了。但是云计算平台所涉及的都是平台型业务,即向大家提供服务的Web服务跟传统网站完全不在一个量级上,而且机器的数量也会随着业务量的增大而增多,这个时候,自动化运维的作用就体现出来了,它能在很大程度上提高运维效率,减轻大家平时的工作量。笔者希望大家能通过此书,掌握到自动化运维的精髓,并且能熟练运用书中提到的Linux集群技术,设计真正适合自己公司或业务系统的网站系统架构,提升自己的职业技能。

本书的主要内容和特色:
? 本书所有Python和Shell脚本,都是根据实际工作需求和业务需求而来,大家可以直接去笔者的GitHub下载,然后根据自己的工作需要,选择使用。
? 所有的Linux集群案均自来自工作实践和项目总结,笔者在保证实际操作的前提下,尽可能详细解释了负载均衡高可用的理论体系,做到真正意义上的理论与实际相结合。
? 书中穿插了大量关于AWS云计算的知识点,有海外业务需求、弹性业务扩展需求或对AWS云计算感兴趣的读者可以多关注下这方面的内容。
? Python自动化运维是本书的亮点之一,笔者目前也将Fabric及Ansible用于自己公司的AWS云计算业务平台,分享出来的实际案例均源于工作中的需求,希望大家能够熟悉掌握,提升自己的职业技能。
? 对网站架构设计感兴趣的可以重点关注最后一章的内容,尤其是高性能高并发量的网站架构设计,这章涵盖的知识点和运维技能也比较多,仔细阅读及学习此章内容,肯定会有所收获。

作者联系方式
作者邮件:yuhongchun027@gmail.com
作者博客:http://yuhongchun.blog.51cto.com
作者GitHub:https://github.com/yuhongchun

内容简介
本书是Linux运维领域公认的经典畅销书《构建高可用Linux服务器》的姊妹篇,是积笔者多年的经验结晶和最佳实践,也是笔者多年以来的一线运维工作的总结和心血。
本书最大的特点就是与实践紧密结合,所有理论知识、方法、技巧和案例都来自实际环境,涵盖了生产环境下的Shell和Python脚本、Pupet自动化运维及Python自动化运维(Fabric及Ansible)、高可用Linux集群构建及亿级PV网站架构设计等主题。笔者在传统运维的基础上,结合了现阶段最流行的云计算运维技术,跟大家分享了流行的Linux集群和自动化运维知识体系,方便大家结合自己的实际工作场景来设计自己网站的系统架构。

图书前言

为什么要写这本书
笔者从事系统运维和网站架构设计的工作已有10多年,现在在一家外企担任云平台架构师。云计算是现在的主流技术,未来也有很好的发展趋势,云计算的流行对于传统的运维知识体系来说,其实也造成了冲击,有很多读者经常向笔者咨询工作中的困惑,比如从事系统运维工作3~5年后就不知道该如何继续学习和规划自己的职业生涯了。因此笔者想通过此书,跟大家分享一下自己的工作经验和心得(包括传统运维和云平台运维工作的区别与对比),以期解决大家在工作中的困惑。本书提供了大量项目实践和线上案例,希望能让大家迅速了解Linux运维人员的工作职责,快速进入工作状态并找到成长方向。希望大家通过阅读此书,能够掌握Linux系统集群和自动化运维及网站架构设计的精髓,从而能够轻松愉快地工作,并提升自己的职业技能,这就是笔者写作此书的初衷。
运维架构师之路
在成为运维架构师之前,笔者从事过很长一段时间的系统集成、运维和管理工作,在CDN门户网站、电子广告、电子商务领域也有不少的沉淀和积累,在之前的《构建高可用Linux服务器》一书中已经跟大家分享了很多跟Linux集群有关的知识。笔者目前的主要工作职责是维护和优化公司的DSP电子广告业务平台,主要方向是云计算和大数据方面。需要维护的数据中心和机器数量非常之多,所以自动化运维和DevOps是目前的主要工作方向,此外,也会涉及网站架构设计及调优工作,因此在此书中特意将这部分工作经验分享出来,希望大家能从中学到新的知识体系,借以提升自己的职业技能。
读者对象
本书适合以下读者阅读。
中高级系统管理员
系统架构设计师
高级程序开发人员
运维开发工程师
如何阅读本书
本书是笔者对实际工作中积累的技术和经验所做的总结,涉及大量的知识点和专业术语。全书总共分为三大部分,第一部分包含第1章和第2章,主要讲解进行系统架构设计的软硬件环境,以及生产环境下的Shell脚本和Python脚本。其中,第2章的内容是以Shell为主,Python为辅,Shell部分讲得比较详细,Python部分需要重点关注的地方也有所提及。之所以这样安排,主要是考虑到大多数搞开发的读者或DevOps工程师都是Java程序员出身,对Shell脚本语言不是很熟悉。第二部分包含第3章、第4章和第5章,主要讲自动化运维,包括Fabric、Ansibel和Puppet三大工具,大家可以结合自己的实际环境来选择对应的工具。第三部分包含第6章、第7章和第8章,主要讲的是Linux集群和网站架构设计,特别是第8章,分别以百万PV、千万PV及亿级PV的网站为例来详细说明网站系统架构设计的相关技术,然后细分五层来解说网站的架构,并指出了设计网站的压力及关注点所在。
大家可以根据自己的职业发展和工作需求来选择不同的章节进行阅读或学习。
关于本书中的配置文件、Shell脚本和Python脚本的编号,这里也略作说明,比如1.5.3节中有1.sh,表示这是1.5.3节的第一个Shell脚本;如果是2.py,则表示是1.5.3节的第二个Python脚本;其他依此类推,在哪个章节中出现的配置文件或脚本就在哪个章节中寻找,这样对照起来阅读理解会比较方便。此外,书中多次出现的Nginx配置文件nginx.conf也在对应的章节里。本书相关的GitHub地址为http://github.com/yuhongchun/automation。
勘误
尽管笔者花费了大量的时间和精力来核对文件和语法,但书中难免还会存在一些错误和纰漏,如果大家发现有任何问题,都请及时反馈给我,相关信息可以发到个人邮箱yuhongchun027@gmail.com。尽管无法保证对于每一个问题都会有一个正确答案,但我肯定会努力回答并且指出一个正确的方向。
致谢
感谢爱女媛媛的出生,你的降临是上天赐给我的最好礼物,是我进行写作的源泉和动力。
感谢我的家人,他们在生活上对我的照顾无微不至,让我有更多的精力和动力去工作和创作。
感谢好友三宝这么多年来对我的信任和支持,从始至终一直都在支持和信任我。
感谢机械工业出版社华章分社的编辑杨福川和杨绣国,在你们的信任、支持和帮助下,我才能如此顺利地完成全部书稿。
感谢好友老男孩和刘天斯,闲暇之余和你们一起交流开源技术和发展趋势,也是一种享受。
感谢Linux之父—Linus Torvalds,他不仅创造了Linux系统,而且还创造了Git这么神奇的版本管理软件。

余洪春(抚琴煮酒)
中国,武汉

上架指导

计算机\程序设计

封底文字

随着云计算平台的流行和普及,用户的规模和访问量越来越多,传统型运维所面临的挑战也越来越大。一般传统型运维多集中于门户网站、游戏及电商网站等领域,它们的PV、并发及QPS的量级都是比较有限的,重要业务都可以采用集群的方式处理,通常维护好集群就可以了。但是云计算平台所涉及的都是平台型业务,即向大家提供服务的Web服务跟传统网站完全不在一个量级上,而且机器的数量也会随着业务量的增大而增多,这个时候,自动化运维的作用就体现出来了,它能在很大程度上提高运维效率,减轻大家平时的工作量。笔者希望大家能通过此书,掌握到自动化运维的精髓,并且能熟练运用书中提到的Linux集群技术,设计真正适合自己公司或业务系统的网站系统架构,提升自己的职业技能。

本书的主要内容和特色:
? 本书所有Python和Shell脚本,都是根据实际工作需求和业务需求而来,大家可以直接去笔者的GitHub下载,然后根据自己的工作需要,选择使用。
? 所有的Linux集群案均自来自工作实践和项目总结,笔者在保证实际操作的前提下,尽可能详细解释了负载均衡高可用的理论体系,做到真正意义上的理论与实际相结合。
? 书中穿插了大量关于AWS云计算的知识点,有海外业务需求、弹性业务扩展需求或对AWS云计算感兴趣的读者可以多关注下这方面的内容。
? Python自动化运维是本书的亮点之一,笔者目前也将Fabric及Ansible用于自己公司的AWS云计算业务平台,分享出来的实际案例均源于工作中的需求,希望大家能够熟悉掌握,提升自己的职业技能。
? 对网站架构设计感兴趣的可以重点关注最后一章的内容,尤其是高性能高并发量的网站架构设计,这章涵盖的知识点和运维技能也比较多,仔细阅读及学习此章内容,肯定会有所收获。

作者联系方式
作者邮件:yuhongchun027@gmail.com
作者博客:http://yuhongchun.blog.51cto.com
作者GitHub:https://github.com/yuhongchun

作者简介

余洪春 著:暂无简介

推荐序

Foreword 推荐序一
在全球“互联网+”的大背景下,互联网创业企业的数量如雨后春笋般大量产生并得到了快速发展!对“互联网+”最有力的支撑就是Linux运维架构师、云计算和大数据工程师,以及自动化开发工程师等!
但是,随着计算机技术的发展,企业对Linux运维人员的能力要求越来越高,这就使得很多想入门运维的新手不知所措,望而却步,甚至努力了很久却仍然徘徊在运维岗位的边缘;而有些已经工作了的运维人员也往往是疲于奔命,没有时间和精力去学习企业所需的新知识和新技能,从而使得个人的职业发展前景大大受限。
本书就是在这样的背景下诞生并致力于为上述问题提供解决方案的,本书是作者余洪春先生10多年来一线工作经验的“再”结晶,此前作者已经出版过Linux集群方向的图书(《构建高可用Linux服务器》),本次出版的书是作者对运维行业的再回馈。
书中不仅涵盖了入门运维人员必须了解的IDC和CDN服务的选型、Linux系统及常见服务的优化实践内容,还有对于企业运维人员需要的大规模集群场景下必备的运维自动化Shell和Python企业开发应用实践案例、热门的自动化运维工具的企业应用实践、大规模集群及高可用的企业案例分享与安全防护等。
本书能够帮助运维人员掌握业内运维实战专家的网站集群的企业级应用经验的精髓,从而以较高的标准胜任各类企业运维的工作岗位,并提升自己的运维职业发展竞争力,值得一读!

—老男孩 老男孩Linux实战运维培训中心总裁
《跟老男孩学Linux运维:Web集群实战》作者


推荐序二 Foreword
本书作者余洪春先生和我相识于ChinaUnix举办的一次技术交流活动——“千万级PV高性能高并发网站架构与设计交流”,当时他已经在宣传自己的第一本著作——《构建高可用Linux服务器》,该书凝聚并整合了他多年来在一线工作的经验结晶,以至时至今日,该书仍是一本在国内非常经典的运维原创著作,现在已经更新到第三版,这种对技术不断进行完善的坚持及工匠精神让我深深折服。这次能受邀为他的新书《Linux集群和自动化运维》写推荐序,让我倍感荣幸。
本书覆盖了Linux集群服务的核心技术,同时还介绍了基于Python语言构建的主流自动化运维工具,包括Python脚本、Fabric、Ansible等,这些都是DevOps工具元素周期表中最闪亮的内容,也是运维人员必备的技能。本书中分享的案例是余洪春多年实战经验的精华,具有非常高的参考价值及借鉴意义。
书中内容从互联网业务平台构建及自动运维的场景出发,以常见的业务服务为基础,给出了大量的实战案例,这些都是作者在十余年的互联网运维工作中总结出来的宝贵经验,相信会给读者带来不少启发及思考。
更难能可贵的是,作者能从通俗易懂的角度出发,由浅入深地剖析自动运维管理之道。对于不同水平层次的读者来说,都能有效地阅读和吸收,也能根据实际需要各取所需。
最后,感谢余洪春给中国互联网从业者带来这么好的图书,我相信阅读本书的每一位读者都能从中获取提升的能量,为企业及行业做出自己的贡献。

腾讯高级工程师 刘天斯

图书目录

推荐序一
推荐序二
前  言
第1章 系统架构设计的构建基础1
1.1 网站架构设计相关术语1
1.1.1 什么是HTTP 1.11
1.1.2 什么是Web 2.02
1.1.3 软件开发C/S结构与B/S结构的区别3
1.1.4 评估网站性能的专业术语5
1.2 IDC机房的选择及CDN的选型6
1.3 如何根据服务器应用选购服务器7
1.4 CentOS 6.4 x86_64最小化安装后的优化13
1.4.1 系统的基础优化13
1.4.2 优化Linux下的内核TCP参数以提高系统性能19
1.4.3 CentOS 6.4 x86_64系统最小化优化脚本22
1.4.4 Linux下CPU使用率与机器负载的关系与区别23
1.5 MySQL数据库的优化25
1.5.1 服务器物理硬件的优化25
1.5.2 利用tuning-primer脚本来调优MySQL数据库25
1.6 小结28
第2章 生产环境下的Shell和Python脚本29
2.1 Shell和Python语言的简单介绍29
2.2 Shell编程基础30
2.2.1 Shell脚本的基本元素30
2.2.2 Shell特殊字符31
2.2.3 变量和运算符31
2.3 Shell中的控制流结构42
2.4 sed的基础用法及实用示例45
2.4.1 sed的基础语法格式46
2.4.2 sed的用法示例51
2.5 awk的基础用法及实用示例56
2.6 生产环境下的Shell和Python脚本分类61
2.6.1 备份类脚本62
2.6.2 统计类脚本66
2.6.3 监控类脚本69
2.6.4 开发类脚本72
2.6.5 自动化类脚本78
2.7 小结80
第3章 轻量级自动化运维工具Fabric详解81
3.1 Python语言的应用领域81
3.2 选择Python的原因83
3.3 Python的版本说明83
3.4 增强的交互式环境IPython84
3.5 Python(x,y)介绍85
3.6 轻量级自动化运维工具Fabric介绍86
3.6.1 Fabric的安装87
3.6.2 命令行入口fab命令详解88
3.6.3 Fabric的核心API88
3.7 Fabric应用实例92
3.7.1 开发环境中的Fabric应用实例92
3.7.2 线上环境中的Fabric应用实例93
3.8 小结96
第4章 自动化部署管理工具Ansible简介97
4.1 YAML语言介绍99
4.2 Ansible的安装步骤 101
4.3 利用ssh-keygen设置SSH无密码登录105
4.4 Ansible常用模块介绍107
4.5 playbook介绍121
4.6 角色126
4.7 Jinja2过滤器132
4.8 小结136
第5章 自动化配置管理工具Puppet137
5.1 Puppet的基本概念及介绍137
5.1.1 Puppet简介137
5.1.2 学习Puppet应该掌握Ruby基础138
5.1.3 Puppet的基本概念及工作流程介绍138
5.2 安装Puppet前的准备工作140
5.3 Puppet的详细安装步骤141
5.4 Puppet的简单文件应用 145
5.5 Puppet的进阶操作152
5.5.1 如何同步Puppet-Client端上的常用服务152
5.5.2 如何在Puppet-Client端自动安装常用的软件包153
5.5.3 如何自动同步Puppet-Client端的yum源153
5.5.4 如何根据不同名字的节点机器推送不同的文件155
5.5.5 如何根据节点机器名选择性地执行Shell程序158
5.5.6 如何快速同步Puppet-Server端的www目录文件160
5.5.7 如何利用ERB模板来自动配置Apache虚拟主机165
5.5.8 如何利用ERB模板来自动配置Nginx虚拟主机168
5.6 Puppet的负载均衡方式172
5.7 用GitHub来管理Puppet配置文件173
5.8 小结176
第6章 Linux防火墙及系统安全篇177
6.1基础网络知识177
6.1.1OSI网络参考模型177
6.1.2TCP/IP三次握手的过程详解178
6.1.3Socket应用及其他基础网络知识181
6.2Linux防火墙的概念182
6.3Linux防火墙在企业中的应用183
6.4Linux防火墙的语法184
6.5iptables的基础知识188
6.5.1iptables的状态state188
6.5.2iptables的conntrack记录190
6.5.3关于iptables模块的说明191
6.5.4iptables防火墙初始化的注意事项192
6.5.5如何保存运行中的iptables规则192
6.6如何流程化编写iptables脚本193
6.7学习iptables应该掌握的工具 196
6.7.1 命令行的抓包工具TCPDump196
6.7.2图形化抓包工具Wireshark197
6.7.3强大的命令行扫描工具Nmap200
6.8iptables简单脚本:Web主机防护脚本203
6.9线上生产服务器的iptables脚本204
6.9.1安全的主机iptables防火墙脚本205
6.9.2自动分析黑名单及白名单的iptables脚本207
6.9.3利用recent模块限制同一IP的连接数210
6.9.4利用DenyHosts工具和脚本来防止SSH暴力破解214
6.10TCP_Wrappers应用级防火墙的介绍和应用218
6.11工作中的Linux防火墙总结220
6.12Linux服务器基础防护知识221
6.13Linux服务器高级防护知识222
6.14如何防止入侵222
6.15小结223
第7章 Linux集群及项目案例分享224
7.1负载均衡高可用核心概念及常用软件224
7.1.1什么是负载均衡高可用224
7.1.2以F5 BIG-IP作为负载均衡器225
7.1.3以LVS作为负载均衡器226
7.1.4以Nginx作为负载均衡器230
7.1.5以HAProxy作为负载均衡器231
7.1.6高可用软件Keepalived232
7.1.7高可用软件Heartbeat233
7.1.8高可用块设备DRBD233
7.1.9四、七层负载均衡工作流程对比235
7.2负载均衡关键技术237
7.2.1什么是Session237
7.2.2什么是Session共享237
7.2.3什么是会话保持238
7.3负载均衡器的会话保持机制239
7.3.1LVS的会话保持机制239
7.3.2Nginx负载均衡器中的ip_hash算法244
7.3.3HAProxy负载均衡器的source算法244
7.3.4服务器健康检测技术249
7.4Linux集群的项目案例分享250
7.4.1案例分享一:用Nginx+Keepalived实现在线票务系统250
7.4.2案例分享二:企业级Web负载均衡高可用之Nginx+Keepalived253
7.4.3案例分享三:Nginx主主负载均衡架构265
7.4.4案例分享四:生产环境下的高可用NFS文件服务器270
7.4.5案例分享五:生产环境下的MySQL DRBD双机高可用280
7.4.6案例分享六:生产环境下的MySQL数据库主从同步293
7.4.7案例分享七:HAProxy双机高可用方案之HAProxy+Keepalived303
7.4.8案例分享八:巧用DNS轮询做负载均衡308
7.5软件级负载均衡器的特点介绍与对比313
7.6网站系统架构设计图315
7.7小结316
第8章 浅谈网站系统架构设计318
8.1网站架构设计规划预案318
8.1.1利用经验,合理设计318
8.1.2规划好网站未来的发展319
8.1.3合理选用开源软件方案319
8.1.4机房及CDN选型319
8.1.5节约成本320
8.1.6安全备份320
8.2百万级PV高可用网站架构设计321
8.3千万级PV高性能高并发网站架构设计323
8.4亿级PV高性能高并发网站架构设计327
8.5细分五层解说网站架构333
8.6小结335
附录A HAProxy 1.4的配置文档336
附录B rsync及inotify在工作中的应用343
附录C 用Supervisor批量管理进程355

教学资源推荐
作者: [美] 罗伯特·塞奇威克(Robert Sedgewick), 凯文·韦恩(Kevin Wayne), 罗伯特·唐德罗(Robert Dondero)著
作者: 施霞萍 张欢欢 王瑾德 马可幸 编著
作者: 马玉春 李壮 张鲲 黄应红 编著
参考读物推荐
作者: Michael Morrison
作者: Steve Cook; Gareth Jones; Stuart Kent Alan Cameron Wills
作者: (美)Alex Bradbury  Ben Everard 著