新書推薦:
《
白夜追凶(上下)
》
售價:NT$
500.0
《
财富、战争与智慧——二战股市风云录
》
售價:NT$
602.0
《
纳特·特纳的自白
》
售價:NT$
383.0
《
低空经济:中国经济发展新引擎
》
售價:NT$
403.0
《
汉字学理与小学汉字教学
》
售價:NT$
408.0
《
即将到来的能源战争
》
售價:NT$
407.0
《
时刻人文·臆造南洋:马来半岛的神鬼人兽
》
售價:NT$
296.0
《
心智、现代性与疯癫:文化对人类经验的影响
》
售價:NT$
857.0
|
內容簡介: |
全书共9章,主要是以作者的项目实践为基础,以CentOS 7.5 x86_64为主操作系统、AWS云为平台,介绍Linux传统集群技术、云原生下的负载均衡技术、MySQL的高可用方案及Python自动化运维工具的使用。
|
關於作者: |
余洪春(抚琴煮酒)
高级DevOps、系统架构师 ,从事电子商务网站和大型CDN系统运维、架构设计工作十余年,在Linux集群、自动化运维、KubernetesMesos云原生平台及高并发高流量网站架构设计等方面有深入研究,通过大量一线实践积累了丰富的经验,精通负载均衡高可用技术、DevOps及容器技术等。51CTO和ChinaUnix等知名社区的特邀专家,51CTO系统网络频道的专栏作家,ChinaUnix论坛“集群和高可用”及“监控及自动化运维”版版主,在社区内发表了大量技术文章,深受网友好评。
|
目錄:
|
推荐序前言第1章 Linux集群基础概念11.1 Linux集群涉及的核心概念及常用软件21.1.1 什么是负载均衡高可用21.1.2 什么是服务发现31.1.3 以LVS作为负载均衡器41.1.4 以Nginx作为负载均衡器91.1.5 以HAProxy作为负载均衡器101.1.6 高可用软件Keepalived101.1.7 高可用软件Heartbeat111.1.8 高可用块设备DRBD111.2 负载均衡关键技术131.2.1 负载均衡算法131.2.2 Session共享和会话保持171.3 负载均衡器的会话保持机制191.3.1 负载均衡器的会话保持处理机制191.3.2 LVS的持久连接机制201.3.3 Nginx负载均衡器的ip_hash算法241.3.4 HAProxy负载均衡器的source算法251.3.5 基于cookie的会话保持处理机制291.4 服务器健康检测331.5 L4和L7负载均衡器对比341.6 集群内(外)负载均衡341.7 软件级负载均衡器的特点介绍与对比351.8 小结36第2章 Python的基础概念及进阶知识372.1 Python语言的应用领域372.2 选择Python的原因392.3 Python的版本说明402.4 如何高效地进行Python开发工作402.4.1 IPython的功能介绍402.4.2 利用virtualenv隔离项目462.4.3 PyCharm简介472.5 Python基础知识介绍512.5.1 正则表达式的应用512.5.2 Python程序的构成582.5.3 Python的编码问题602.5.4 使用Python解析JSON632.5.5 Python异常处理与程序调试异常642.5.6 Python函数672.5.7 Python的面向对象792.5.8 Python的多进程和多线程912.5.9 Python协程1052.6 小结109第3章 Python在Linux集群中的实践应用1103.1 Python经常用到的第三方类库1103.2 工作中常用的Python脚本1113.2.1 利用Python比较应用1113.2.2 利用Python获取数据库证书并替换成文件字符串1123.2.3 利用Python处理JSON式文件1133.3 利用Flask Web框架设计RESTful API1143.3.1 后端开发工作中为什么要使用RESTful API 1143.3.2 项目实战1173.4 利用Nginx+Gunicorn+Flask部署Python项目1193.5 利用Flask+ Gevent搭建webssh1283.6 小结137第4章 轻量级自动化运维工具Fabric介绍1384.1 Vagrant简介1394.1.1 Vagrant的安装1394.1.2 使用Vagrant配置本地开发环境1414.1.3 使用Vagrant搭建本地开发环境1484.1.4 使用Vagrant搭建分布式环境1534.2 轻量级自动化运维工具Fabric1624.2.1 Paramiko版本库简介1624.2.2 Fabric的安装1644.2.3 Fabric的命令行入口fab命令详解1654.2.4 Fabric的环境变量设置1664.2.5 Fabric的核心API1674.2.6 Fabric的执行逻辑1714.3 Fabric在工作中的应用实例1734.3.1 开发环境中的Fabric应用实例1734.3.2 工作场景中常见的Fabric应用实例1744.4 Fabric在性能方面的不足1804.5 小结180第5章 Linux集群项目案例1815.1 Linux集群的项目案例详解1815.1.1 项目案例一:LVS在项目中的优化设计思路1815.1.2 项目案例二:用Nginx+Keepalived实现在线票务系统1845.1.3 项目案例三:企业级Web负载均衡高可用之Nginx+Keepalived1885.1.4 项目案例四:HAProxy双机高可用方案HAProxy+Keepalived1985.2 利用HAProxy代理WebSocket集群2035.3 巧用DNS轮询进行负载均衡2065.4 利用ZooKeeper集群来搭建分布式系统2115.5 小结218第6章 云原生环境下的负载均衡实现2196.1 私有化部署Kubernetes集群2206.1.1 部署Kubernetes集群环境的准备工作2206.1.2 Nexus3私有仓库在集群内的暴露使用2216.1.3 部署Kubernetes集群2226.1.4 Kubernetes集群数据如何持久化2286.2 负载均衡的具体实现2326.2.1 以iptables作为集群的负载均衡2326.2.2 以IPVS作为集群的负载均衡2416.2.3 服务发现2436.2.4 Ingress-Controller的介绍2456.3 小结264第7章 MySQL高可用集群项目案例2657.1 MySQL数据库的安装2657.2 服务器物理硬件的选择2677.3 MySQL数据库的优化2677.4 MySQL主从复制流程与原理2707.5 MySQL主从复制的搭建2717.5.1 MySQL主从复制环境介绍2717.5.2 影响MySQL主从复制的配置选项2727.5.3 MySQL主从复制的实现过程2737.6 MySQL MHA集群案例2747.6.1 MHA安装前的准备工作2757.6.2 源码安装MHA程序2767.6.3 MHA的实际安装和部署流程2777.6.4 MHA
|
內容試閱:
|
系统架构师之路自2006年接触Linux系统以来,我从Linux系统工程师一步步晋升为项目实施工程师、高级Linux系统工程师、运维架构师,直至今日的高级运维开发工程师、系统架构师,这一路走来,深感开源技术和Linux集群的强大。其中印象最为深刻的还是担任项目实施工程师、高级Linux系统工程师期间,因为要设计和实施网站(尤其是电子商务网站)架构,负责开发语言和开发框架的选型,感觉能力提升特别快,成长十分迅速。在担任运维架构师的这段工作时间里,我主要负责维护公司的电子商务网站。有些平台核心网站的并发量并不是太大,但比较重要,所以公司都要求部署Linux集群,有时指定要部署LVS或HAProxy负载均衡器。在实际设计和安装的过程中,我发现LVSHAProxy的负载均衡确实非常强大,可以与硬件级的F5负载均衡器相媲美。很快我就被Linux集群这门艺术迷住了,工作之余自己也研究了NginxHAProxy+Keepalived(动静分离)这种负载均衡高可用架构,并且在许多项目中成功实施,客户反映效果不错,所以我也在很多开源社区推广Linux集群技术。现阶段我的职务是高级运维开发工程师、系统架构师,主要负责设计、实施及维护公司的电子商务网站以及产品核心功能的代码开发。相对于CDN分布式系统而言,网站应用没有节点冗余,所以对Linux集群技术的要求更高。前期我将所有网站应用都做了双机高可用,即LVSHAProxy+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集群技术相关内容提出了许多宝贵的意见。感谢现公司的领导给予我足够的信任和支持,让我在工
|
|