Linux集群之美-预付365_综合福利消费平台
0 购物车
商品详情
首页 > 图书> 计算机与互联网> 操作系统 > Linux集群之美
Linux集群之美
商品价格: ¥84.90 [定价  ¥99.00]
商品编号: 13056638
服      务: 图书 负责发货并提供售后服务
商品运费: 全站满99包邮,不满收10元,实际运费以支付页面金额为准。
温馨提示: 不支持7天无理由退货
购买数量: - +
365商城不参加品牌方的满减优惠及赠品活动
商品介绍
规格与包装
  • 商品名称:Linux集群之美
  • 商品编号:13056638
产品特色

【系统架构师之路】

自2006年接触Linux系统以来,我从Linux系统工程师一步步晋升为项目实施工程师、高级Linux系统工程师、运维架构师,直至今日的高级运维开发工程师、系统架构师,这一路走来,深感开源技术和Linux集群的强大。其中印象最为深刻的还是担任项目实施工程师、高级Linux系统工程师期间,因为要设计和实施网站(尤其是电子商务网站)架构,负责开发语言和开发框架的选型,感觉能力提升特别快,成长十分迅速。


在担任运维架构师的这段工作时间里,我主要负责维护公司的电子商务网站。有些平台核心网站的并发量并不是太大,但比较重要,所以公司都要求部署Linux集群,有时指定要部署LVS或HAProxy负载均衡器。在实际设计和安装的过程中,我发现LVS/HAProxy的负载均衡确实非常强大,可以与硬件级的F5负载均衡器相媲美。很快我就被Linux集群这门艺术迷住了,工作之余自己也研究了Nginx/HAProxy+Keepalived(动静分离)这种负载均衡高可用架构,并且在许多项目中成功实施,客户反映效果不错,所以我也在很多开源社区推广Linux集群技术。


现阶段我的职务是高级运维开发工程师、系统架构师,主要负责设计、实施及维护公司的电子商务网站以及产品核心功能的代码开发。相对于CDN分布式系统而言,网站应用没有节点冗余,所以对Linux集群技术的要求更高。前期我将所有网站应用都做了双机高可用,即LVS/HAProxy+Keepalived和Nginx+Keepalived,还有DRBD+Heartbeat+NFS文件高可用,MySQL数据库用的是MHA一主多从架构。其间,随着特殊业务的需求越来越多(比如定点抢红包活动),我也在网站的架构设计中引入了RabbitMQ消息队列集群。后期基于商业推广,网站流量、UV及并发日益增大,新机器上线也日益频繁,所以我采用了Fabric和Ansbile自动化运维来管理线上机器,帮助运维同事避免重复劳动。另外,由于电子商务网站会牵涉支付问题,所以对安全性的要求也非常高,我们平时都会从网络安全(包括硬件防火墙、Linux系统防火墙和WAF应用防火墙)、系统安全、代码安全和数据库安全等方面着手,尽力避免一切影响网站安全的行为。工作虽然辛苦,但看着自己设计的网站顺利运行,心里还是很有成就感的,这也是我目前工作的主要动力。


【撰写本书的目的】

从事系统集成、运维开发、架构设计方面的工作已经有十余年,我曾经有幸担任过RHCE讲师,到武汉各高校推广红帽Linux系统。在教学过程中我发现,很多学生在进入企业后都无法胜任自己的工作,更谈不上正确地规划自己的职业道路了。一方面是因为企业的生产环境具有一定的复杂性和危险性,另一方面市场上入门书居多,缺乏能真正指导读者解决实际问题的书籍。例如,很多书都只是给出了比较基础的操作及理论,而相对于线上环境,根本没有涉及安全操作以避免误操作的内容,更没有PV、UV和并发以及数据库压力和高并发环境下的消息队列或任务队列的设计等相关话题。


我写这本书,一方面是想对自己这些年的工作经验和心得进行一次系统的梳理和总结;另一方面是想将自己的经验分享给大家,希望帮助大家少走弯路,希望书中的项目实践(包括Linux传统集群技术及云原生下的负载均衡技术、MySQL的高可用方案及Python自动化运维工具的使用)和线上环境的Python脚本,有助于读者迅速进入工作状态。书中提供的Python程序均来自真实项目,可以直接借用。关于Linux集群的项目实践和MySQL的高可用方案,大家也可以根据实际项目的需求直接用于公司的网站架构。希望大家能通过本书掌握Linux集群的精髓,领会Linux集群的魅力,通过Python程序实现自动化运维和编程,从而轻松愉快地工作。


【读者对象】

本书的读者对象如下:

*系统工程师或运维工程师

*DevOps工程师

*网络管理员或企业网管

*系统开发工程师

*运维架构师


【如何阅读本书】

本书是对实际工作经验的总结,涉及大量的知识点和专业术语,建议经验还不是很丰富的读者先了解第1~2章的内容,如果大家在学习过程中根据这两章的讲解进行操作,定会达到事半功倍的效果。

系统工程师和运维工程师可以重点关注第4~7章的内容,这些都是与运维工作息息相关的,建议大家多花些精力和时间,从线上环境去考虑学习。

DevOps工程师可以重点关注第2~8章的内容,想在企业运维开发工作中开发高效的运维工具并不是一件很容易的事情,建议大家多学习,拓宽自己的知识面。

运维架构师可以重点关注第4~5章和第7~8章的内容,这些都跟系统/网站架构技术息息相关,而且基本上都出自真实项目经验,具备一定的参考意义。

对于开发人员来说,由于已具备很强的编程开发能力,可以重点关注第2章和第3章之外的章节,以提升自己的技术。


编辑推荐

高级运维架构师、资深系统运维工程师十余年工作经验总结。

基于实际生产环境,从云原生平台集群的高可用技术、传统技术的高可用Linux集群构建、MySQL高可用架构设计等角度展现Linux集群之美! 

 

【本书的主要内容和特色】

*基于真实的电子商务系统和CDN系统着重介绍了Nginx/HAProxy+Keepalived、LVS+Keepalived/DR及DNS轮询等常见的Web集群负载均衡高可用技术,除此之外,还介绍了ZooKeeper集群在分布式系统中的应用。


*MySQL高可用架构目前主要是以MySQL 5.7为主,书中针对DRBD+Heartbeat、MySQL MHA及基于GTID的MySQL主从复制工具mysql-utilities进行了详细说明。 


*基于笔者目前维护的容器云平台(包括Kubernetes和Mesos集群)介绍云原生环境下的负载均衡技术的具体实现,例如HAProxy、IPVS及Ingress-Controller等,重点介绍了Nginx/Traefik Ingress-Controller在Kubernetes集群系统中的部署和应用。


*以笔者维护过的千万级/亿级PV高并发高流量网站架构为例来说明网站的系统架构设计,并且分享了秒杀系统的架构设计思想。


内容简介

随着云原生技术的流行和普及,除了传统的Linux高可用集群技术,云原生的负载均衡技术在产品或系统中的比重也越来越大,因此本书基于这两方面讲解Linux集群的实现。

书中内容除了介绍传统的Linux集群和分布式系统以外,还介绍了微服务环境(包括Kubernetes和Mesos)下各组件(如Kong和Istio)的用法,以及如何在复杂的项目环境中保证Linux集群服务的高可用。

在实际工作中,系统架构设计绝不轻松,成熟的架构实现都是经过生产环境逐渐演变完善的。

本书也以笔者维护过的高并发、高流量网站架构与秒杀系统说明了网站的系统架构设计思想。书中内容都是基于项目实践或工作内容提炼而来的,相信对读者会有一定的启发!


作者简介

余洪春(抚琴煮酒) .高级DevOps、系统架构师 ,从事电子商务网站和大型CDN系统运维、架构设计工作十余年,在Linux集群、自动化运维、Kubernetes/Mesos云原生平台及高并发高流量网站架构设计等方面有深入研究,通过大量一线实践积累了丰富的经验,精通负载均衡高可用技术、DevOps及容器技术等。51CTO和ChinaUnix等知名社区的特邀专家,51CTO系统网络频道的专栏作家,ChinaUnix论坛“集群和高可用”及“监控及自动化运维”版版主,在社区内发表了大量技术文章,深受网友好评。

目录

第1章 Linux集群基础概念  1

1.1 Linux集群涉及的核心概念及常用软件  2

1.1.1 什么是负载均衡高可用  2

1.1.2 什么是服务发现  3

1.1.3 以LVS作为负载均衡器  4

1.1.4 以Nginx作为负载均衡器  9

1.1.5 以HAProxy作为负载均衡器  10

1.1.6 高可用软件Keepalived  10

1.1.7 高可用软件Heartbeat  11

1.1.8 高可用块设备DRBD  11

1.2 负载均衡关键技术  13

1.2.1 负载均衡算法  13

1.2.2 Session共享和会话保持  17

1.3 负载均衡器的会话保持机制  19

1.3.1 负载均衡器的会话保持处理机制  19

1.3.2 LVS的持久连接机制  20

1.3.3 Nginx负载均衡器的ip_hash算法  24

1.3.4 HAProxy负载均衡器的source算法  25

1.3.5 基于cookie的会话保持处理机制  29

1.4 服务器健康检测  33

1.5 L4和L7负载均衡器对比  34

1.6 集群内(外)负载均衡  34

1.7 软件级负载均衡器的特点介绍与对比  35

1.8 小结  36


第2章 Python的基础概念及进阶知识  37

2.1 Python语言的应用领域  37

2.2 选择Python的原因  39

2.3 Python的版本说明  40

2.4 如何高效地进行Python开发工作  40

2.4.1 IPython的功能介绍  40

2.4.2 利用virtualenv隔离项目  46

2.4.3 PyCharm简介  47

2.5 Python基础知识介绍  51

2.5.1 正则表达式的应用  51

2.5.2 Python程序的构成  58

2.5.3 Python的编码问题  60

2.5.4 使用Python解析JSON  63

2.5.5 Python异常处理与程序调试异常  64

2.5.6 Python函数  67

2.5.7 Python的面向对象  79

2.5.8 Python的多进程和多线程  91

2.5.9 Python协程  105

2.6 小结  109


第3章 Python在Linux集群中的实践应用  110

3.1 Python经常用到的第三方类库  110

3.2 工作中常用的Python脚本  111

3.2.1 利用Python比较应用  111

3.2.2 利用Python获取数据库证书并替换成文件字符串  112

3.2.3 利用Python处理JSON式文件  113

3.3 利用Flask Web框架设计RESTful API  114

3.3.1 后端开发工作中为什么要使用RESTful API   114

3.3.2 项目实战  117

3.4 利用Nginx+Gunicorn+Flask部署Python项目  119

3.5 利用Flask+ Gevent搭建webssh  128

3.6 小结  137


第4章 轻量级自动化运维工具Fabric介绍  138

4.1 Vagrant简介  139

4.1.1 Vagrant的安装  139

4.1.2 使用Vagrant配置本地开发环境  141

4.1.3 使用Vagrant搭建本地开发环境  148

4.1.4 使用Vagrant搭建分布式环境  153

4.2 轻量级自动化运维工具Fabric  162

4.2.1 Paramiko版本库简介  162

4.2.2 Fabric的安装  164

4.2.3 Fabric的命令行入口fab命令详解  165

4.2.4 Fabric的环境变量设置  166

4.2.5 Fabric的核心API  167

4.2.6 Fabric的执行逻辑  171

4.3 Fabric在工作中的应用实例  173

4.3.1 开发环境中的Fabric应用实例  173

4.3.2 工作场景中常见的Fabric应用实例  174

4.4 Fabric在性能方面的不足  180

4.5 小结  180


第5章 Linux集群项目案例  181

5.1 Linux集群的项目案例详解  181

5.1.1 项目案例一:LVS在项目中的优化设计思路  181

5.1.2 项目案例二:用Nginx+Keepalived实现在线票务系统  184

5.1.3 项目案例三:企业级Web负载均衡高可用之Nginx+Keepalived  188

5.1.4 项目案例四:HAProxy双机高可用方案HAProxy+Keepalived  198

5.2 利用HAProxy代理WebSocket集群  203

5.3 巧用DNS轮询进行负载均衡  206

5.4 利用ZooKeeper集群来搭建分布式系统  211

5.5 小结  218


第6章 云原生环境下的负载均衡实现  219

6.1 私有化部署Kubernetes集群  220

6.1.1 部署Kubernetes集群环境的准备工作  220

6.1.2 Nexus3私有仓库在集群内的暴露使用  221

6.1.3 部署Kubernetes集群  222

6.1.4 Kubernetes集群数据如何持久化  228

6.2 负载均衡的具体实现  232

6.2.1 以iptables作为集群的负载均衡  232

6.2.2 以IPVS作为集群的负载均衡  241

6.2.3 服务发现  243

6.2.4 Ingress-Controller的介绍  245

6.3 小结  264


第7章 MySQL高可用集群项目案例  265

7.1 MySQL数据库的安装  265

7.2 服务器物理硬件的选择  267

7.3 MySQL数据库的优化  267

7.4 MySQL主从复制流程与原理  270

7.5 MySQL主从复制的搭建  271

7.5.1 MySQL主从复制环境介绍  271

7.5.2 影响MySQL主从复制的配置选项  272

7.5.3 MySQL主从复制的实现过程  273

7.6 MySQL MHA集群案例  274

7.6.1 MHA安装前的准备工作  275

7.6.2 源码安装MHA程序  276

7.6.3 MHA的实际安装和部署流程  277

7.6.4 MHA manager的压测  284

7.6.5 设置MHA manager为守护进程  290

7.7 MySQL DRBD高可用案例  291

7.7.1 MySQL DRBD相关组件原理介绍  292

7.7.2 MySQL DRBD的具体搭建过程  293

7.7.3 MySQL SysBench的基准测试  308

7.8 利用mysql-utilities工具自动切换主从复制  308

7.8.1 基于GTID的主从复制  308

7.8.2 mysql-utilities工具的二次开发  318

7.9 用XtraBackup工具备份和恢复数据库  319

7.9.1 XtraBackup的安装过程  319

7.9.2 XtraBackup的运行原理  319

7.9.3 XtraBackup备份及恢复过程  321

7.10 小结  322


第8章 高可用高并发系统架构设计  323

8.1 系统性能评估指标  323

8.2 网站架构设计规划预案  324

8.2.1 合理设计与规划  324

8.2.2 核心系统的开发设计  325

8.2.3 规划好网站未来的发展  325

8.2.4 合理选用开源软件方案  326

8.2.5 机房及CDN选型  326

8.2.6 CI/CD及蓝绿部署发布  327

8.2.7 系统安全问题  327

8.3 千万级PV、高性能、高并发网站的架构设计  328

8.4 亿级PV、高性能、高并发网站的架构设计  332

8.5 秒杀系统的架构设计  339

8.6 小结  343


第9章 Linux集群的总结和思考  344

9.1 集群与分布式系统的区别  344

9.2 了解微服务及其组件  346

9.3 现阶段如何保证高可用  349

9.4 小结  351

附录A Docker进阶操作总结  352

附录B 利用Nexus3配置CI/CD的私有仓库  358

附录C XtraBackup备份工具的详细测试  365


精彩书评

余洪春是一位资深的Linux专家,也是我的多年好友,出版过多本畅销书籍,影响了国内不少Linux爱好者。在云原生大浪潮之下,他又奉献了这本《Linux集群之美》。本书从经典的企业级应用入手,结合Python运维自动化技术,总结提炼出多个非常实用的实践案例。无论你是一名Linux新手还是有一定经验的实践者,相信都可以从中受益。

——刘天斯 腾讯技术总监 


  • 著者余洪春
  • 出版社机械工业出版社
  • ISBN9787111669814
  • 版次1
  • 包装平装
  • 出版时间2020-12-01
  • 用纸胶版纸
  • 页数376

温馨提示

由于部分商品包装更换较为频繁,因此您收到的货品有可能与图片不完全一致,请您以收到的商品实物为准,同时我们会尽量做到及时更新,由此给您带来不便多多谅解,谢谢!