描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111545682丛书名: Linux/Unix技术丛书
盛大游戏拥有超过10年运维经验资深专家撰写,高效运维、云技术实践等有影响力社区,以及盛大、腾讯、金山多位运营专家联袂推荐
技术层面:4大运维方向、21种运维技术,105个*佳实践;
思想层面:构建运维服务体系,培养运维格局,掌握解决疑难运维问题的思想方法
本书是运维领域的璀璨明珠,是一本有思想的运维技术干货集!
技术层面,作者从高性能网站架构、服务器安全和监控、网络分析、自动化运维和游戏运维4个方向,梳理和总结了105个棘手的运维难题,结合自己 10余年的工作经验,对这些问题给出了经过实践检验的解决方案,可直接应用到生产环境中。除解决方案外,还详细讲解了每个问题背后涉及的技术原理(共涉及 21种技术)。
思想层面,本书不仅有作者对运维服务体系的深度思考,而且还有作者的主动运维思维和宏观的运维格局,更有作者解决具体运维问题的思维方法。
通过本书,不仅能解决具体的技术难题,提高工作效率,而且还能增强技术功底,提升工作能力。更重要的是,它能让我们明白,技术不是运维的终*追求,思想才是运维人员应该毕生修炼的目标!
具体内容方面,本书分为四大部分:
*篇(第1-9章),高性能网站构建。这部分对构建高性能网站所需要的各个技术方面做详尽说明,涵盖域名、CDN、负载均衡、网站部署和数据库技术等的*佳实践。
第二篇(第10-13章),服务器安全和监控。业务架构起来了,如何保证它的安全性和稳定性,成为我们需要关注的焦点。这部分解决2个问题,一是加固服务器,使其避免轻易成为黑客的肉鸡;二是监控,使故障在成为有重大影响的事件前就被预警和处理。
第三篇(第14-16章),网络分析技术。这部分给出在Linux运维领域中的网络分析方法论。通过这部分的学习,我们将在遇到未知的网络服务问题时,能够参照本书中的方法论实施分析,从而解决问题。
第四篇(第17-21章),运维自动化和游戏运维。随着服务器规模的剧增,再使用一台台登录服务器的方法来管理运维将成为效率的瓶颈。这一部分 给出我们的运维自动化实践方案,从开源实现到自主开发,互相补充,互相提升,真正实现适合自己的运维自动化体系。游戏运维部分将对端游和手游这两大目前* 热点的游戏运维主题进行说明。
前言
第1篇 高性能网站构建
第1章 深入理解DNS原理与部署
BIND2
实践1:禁用权威域名服务器递归
查询2
DNS的组成部分2
域名服务器的分类3
递归查询与迭代查询的区别5
禁用递归查询的原因与方法6
实践2:构建域名解析缓存6
域名解析缓存的必要性6
NSCD安装配置方法6
域名解析缓存验证7
实践3:配置chroot加固BIND8
实践4:利用BIND实现简单负载
均衡9
实践5:详解BIND视图技术及
优化10
BIND视图工作原理10
BIND视图优化技巧12
实践6:关注BIND的漏洞信息12
实践7:掌握BIND监控技巧13
本章小结13
第2章 全面解析CDN技术与实战14
实践8:架构典型CDN系统14
实践9:理解HTTP协议中的缓存
控制:服务器端缓存控制头部信息16
实践10:配置和优化Squid 18
推荐使用大内存服务器18
推荐每个磁盘独立使用18
禁用atime更新19
配置Squid多实例19
使用URL哈希方法对Squid多实例
进行调度19
禁用缓存间通信协议19
架构二级缓存19
使用Squid Manager获取运行状态20
优化HTTP Range 20
实践11:优化缓存防盗链21
Key的组成21
校验过程21
实施过程22
重定向器22
实践12:实践视频点播CDN23
系统模块分类23
用户访问流程23
同步源站服务器24
视频源站服务器25
视频转发服务器26
缓存服务器28
实践13:设计大规模下载调度
系统30
本章小结31
第3章 负载均衡和高可用技术32
实践14:数据链路层负载均衡33
链路层负载均衡的必要性33
Linux Bonding配置过程34
实践15:4层负载均衡38
4层负载均衡的数据格式38
4层负载均衡的时序图39
实践16:7层负载均衡40
7层负载均衡的数据格式40
7层负载均衡的时序图40
实践17:基于DNS的负载均衡41
实践18:基于重定向的负载均衡43
下载系统HTTP 302重定向43
上传系统的重定向方法44
实践19:基于客户端的负载均衡45
哈希方法45
数据库读写分离46
实践20:高可用技术推荐47
本章小结47
第4章 配置及调优LVS48
实践21:模式选择49
LVS-NAT49
LVS-DR49
LVS-Tun53
3种模式对比与推荐53
实践22:LVS Keepalived实战
精讲53
LVS Keepalived配置过程详解53
LVS重要参数56
LVS-DR模式的核心提示与优化57
实践23:多组LVS设定注意事项58
实践24:注意网卡参数与MTU
问题58
MTU的原理58
案例解析59
实践25:LVS监控要点64
性能采集64
可用性监控64
实践26:LVS排错步骤推荐64
本章小结66
第5章 使用HAProxy实现4层和
7层代理67
实践27:安装与优化67
HAProxy TCP负载均衡68
HAProxy HTTP负载均衡69
HAProxy的核心配置参数71
HAProxy的会话保持机制72
HAProxy中ip_local_port_range问题73
HAProxy后端服务器获取客户端IP73
TCP负载均衡和HTTP负载均衡的
对比74
实践28:HAProxy Keepalived
实战75
实践29:HAProxy监控76
性能采集76
可用性监控76
实践30:HAProxy排错步骤推荐77
本章小结77
第6章 实践Nginx的反向代理和
负载均衡78
实践31:安装与优化79
Nginx的核心配置参数81
Nginx负载均衡算法81
Nginx Proxy协议的选择81
Nginx中ip_local_port_range问题86
Nginx被代理的后端服务器获取客户
端IP86
实践32:Nginx监控86
性能采集86
可用性监控87
实践33:Nginx排错步骤推荐88
实践34:Nginx常见问题的处理
方法88
本章小结89
第7章 部署商业负载均衡设备
NetScaler90
实践35:NetScaler的初始化设置90
NetScaler中各种用途的IP概念90
NetScaler初始化的步骤91
实践36:NetScaler基本负载均衡
核心参数配置94
实践37:NetScaler内容交换核心
参数配置96
NetScaler被代理的后端服务器获取
客户端IP98
实践38:NetScaler的Weblog配置
与解析98
实践39:NetScaler高级运维指南99
实践40:NetScaler监控104
ns.log监控104
性能采集106
实践41:NetScaler排错步骤
推荐106
实践42:NetScaler Surge Protection
引起的问题案例107
实践43:LVS、HAProxy、Nginx、
NetScaler的大对比108
实践44:中小型网站负载均衡方案
推荐109
本章小结109
第8章 配置高性能网站110
实践45:深入理解HTTP协议110
HTTP协议通信的网络模型111
一次HTTP请求的详细分析112
实践46:配置高性能静态网站114
缓存配置方法115
压缩配置方法115
防盗链的配置方法116
图片剪裁的方法116
减少Cookie携带117
实现静态文件的安全下载117
使用ngx_http_secure_link_module模块
的配置方法117
使用Nginx中的X-Accel-Redirect控制
头部118
使用CDN加速用户访问119
实践47:配置高性能动态网站119
PHP-FPM优化119
Tomcat优化120
实践48:配置多维度网站监控121
日志监控122
可用性监控124
性能监控124
本章小结125
第9章 优化MySQL数据库126
实践49:MySQL配置项优化126
实践50:使用主从复制扩展读写
能力127
主从复制监控的方法128
主从复制失败的原因分析128
实践51:使用MHA构建高可用
MySQL131
本章小结132
第2篇 服务器安全和监控
第10章 构建企业级虚拟专用网络134
实践52:常见的VPN构建技术134
PPTP VPN的原理135
IPSec VPN的原理135
SSL/TLS VPN的原理135
3种VPN构建技术的对比136
实践53:深入理解OpenVPN的
特性136
实践54:使用OpenVPN创建Peer-
to-Peer的VPN136
Linux tun设备精讲139
实践55:使用OpenVPN创建Remote
Access的VPN141
实践56:使用OpenVPN创建Site-
to-Site的VPN148
实践57:回收客户端的证书149
实践58:使用OpenVPN提供的
各种script功能150
实践59:OpenVPN的排错步骤151
本章小结154
第11章 实施Linux系统安全策略与
入侵检测156
实践60:物理层安全措施156
实践61:网络层安全措施157
使用Linux的iptables限制网络访问158
使用Windows Server 2003 Enterprise的
ipsecpol限制网络访问159
使用Windows Server 2008 Enterprise的
netsh advfirewall限制网络访问159
使用FreeBSD的IPFW限制网络访问161
使用Cisco IOS的ACL限制网络访问162
端口扫描的重要性162
分布式DDOS的防护163
实践62:应用层安全措施165
密码安全策略165
SSHD安全配置166
Web服务器安全168
数据库安全策略171
BIND安全配置171
实践63:入侵检测系统配置171
实践64:Linux备份与安全180
备份与安全的关系180
数据备份的注意事项180
数据恢复测试180
本章小结180
第12章 实践Zabbix自定义模板
技术181
实践65:4步完成Zabbix Server
搭建181
实践66:Zabbix利器Zatree184
实践67:Zabbix Agent自动注册185
实践68:基于自动发现的KVM
虚拟机性能监控188
本章小结195
第13章 服务器硬件监控196
实践69:服务器硬盘监控196
实践70:SSD定制监控198
SSD优势与内部结构198
SSD选型198
SSD应用场景及定制监控199
实践71:服务器带外监控:带外
邮件警告202
本章小结205
第3篇 网络分析技术
第14章 使用tcpdump与Wireshark
解决疑难问题208
实践72:理解tcpdump的工作
原理209
tcpdump的实现机制209
tcpdump与iptables的关系210
tcpdump数据包长度超过网卡MTU的
问题210
tcpdump的简要安装步骤210
实践73:学习tcpdump的5个参数
和过滤器211
学习tcpdump的5个参数211
学习tcpdump的过滤器211
实践74:在Android系统上抓包的
方法212
实践75:使用RawCap抓取回环
端口的数据214
实践76:熟悉Wireshark的
配置项215
Wireshark安装过程的注意事项215
Wireshark的关键配置项216
使用追踪数据流功能218
实践77:使用Wireshark分析问题
的案例219
案例一 定位时间戳问题219
解决方法220
案例二 定位非正常发包问题220
抓包方法221
分析方法222
解决方法223
实践78:使用libpcap进行自动化
分析223
本章小结224
第15章 分析与解决运营商劫持
问题225
实践79:深度分析运营商劫持的
技术手段225
中小运营商的网络现状225
基于下载文件的缓存劫持226
基于页面的iframe广告嵌入劫持229
基于伪造DNS响应的劫持230
网卡混杂模式与raw socket技术230
实践80:在关键文件系统部署
HTTPS的实战233
HTTPS证书的获取方法233
Nginx支持HTTPS的按照方式235
Nginx配置文件示例235
本章小结235
第16章 深度实践iptables237
实践81:禁用连接追踪237
排查连接追踪导致的故障237
分析连接追踪的原理239
禁用连接追踪的方法240
确认禁用连接追踪的效果243
实践82:慎重禁用ICMP协议243
禁用ICMP协议导致的故障案例一则243
MTU发现的原理245
解决问题的方法247
实践83:网络地址转换在实践中的
案例247
源地址NAT247
目的地址NAT248
实践84:深入理解iptables各种表
和各种链248
本章小结250
第4篇 运维自动化和游戏运维
第17章 使用Kickstart完成批量
系统安装252
实践85:Kickstart精要252
PXE启动过程及原理252
Kickstart创建及结构组成253
pre-installation与post-installation应用
实践256
实践86:系统配置参数优化258
Web服务器中的参数优化259
DB服务器中的参数优化261
NUMA263
KVM宿主机中的参数优化265
本章小结266
第18章 利用Perl编程实施高效
运维267
实践87:多进程编程技巧268
实践88:调整Socket编程的超时
时间270
为什么设置Socket超时270
设置Socket超时的方法271
实践89:批量管理带外配置271
带内管理与带外管理271
HP iLO的批量管理方法272
Dell iDRAC的批量管理方法273
实践90:推广邮件的推送优化274
推送优化的思路与代码分析274
推广邮件的效果分析275
实践91:使用PerlTidy美化
代码276
本章小结278
第19章 精通Ansible实现运维
自动化279
实践92:理解Ansible280
Ansible安装及原理280
Ansible原理与架构281
Ansible配置项说明283
Inventory定义格式284
实践93:学习Ansible Playbook
使用要点285
Playbook基本语法和格式285
使用Include、Roles组织Playbook287
Ansible多样的变量定义与使用法则290
实践94:Ansible模块介绍及开发293
Ansible常用模块介绍293
如何开发Ansible模块294
实践95:理解Ansible插件296
实践96:Ansible自动化运维实例:
Ansible自动安装配置zabbix客户端298
本章小结299
第20章 掌握端游运维的技术要点300
实践97:了解大型端游的技术
架构301
服务器架构设计301
服务器角色说明及通信原理303
实践98:理解游戏运维体系发展
历程304
实践99:自动化管理技术305
平台架构与设计原则305
平台功能划分307
实践100:自动化监控技术311
实践101:运维安全体系312
实践102:运维服务管理体系314
实践103:运维体系框架建设315
本章小结316
第21章 精通手游运维的架构体系317
实践104:推荐的手游架构318
手游和端游运维的异同点318
使用HTTP协议的优点318
推荐的网络架构319
实践105:手游容量规划320
机房选择320
网络带宽容量规划321
Web服务器承载能力规划321
Memcached承载能力规划322
数据库承载能力规划324前言
第1篇 高性能网站构建
第1章 深入理解DNS原理与部署
BIND2
实践1:禁用权威域名服务器递归
查询2
DNS的组成部分2
域名服务器的分类3
递归查询与迭代查询的区别5
禁用递归查询的原因与方法6
实践2:构建域名解析缓存6
域名解析缓存的必要性6
NSCD安装配置方法6
域名解析缓存验证7
实践3:配置chroot加固BIND8
实践4:利用BIND实现简单负载
均衡9
实践5:详解BIND视图技术及
优化10
BIND视图工作原理10
BIND视图优化技巧12
实践6:关注BIND的漏洞信息12
实践7:掌握BIND监控技巧13
本章小结13
第2章 全面解析CDN技术与实战14
实践8:架构典型CDN系统14
实践9:理解HTTP协议中的缓存
控制:服务器端缓存控制头部信息16
实践10:配置和优化Squid 18
推荐使用大内存服务器18
推荐每个磁盘独立使用18
禁用atime更新19
配置Squid多实例19
使用URL哈希方法对Squid多实例
进行调度19
禁用缓存间通信协议19
架构二级缓存19
使用Squid Manager获取运行状态20
优化HTTP Range 20
实践11:优化缓存防盗链21
Key的组成21
校验过程21
实施过程22
重定向器22
实践12:实践视频点播CDN23
系统模块分类23
用户访问流程23
同步源站服务器24
视频源站服务器25
视频转发服务器26
缓存服务器28
实践13:设计大规模下载调度
系统30
本章小结31
第3章 负载均衡和高可用技术32
实践14:数据链路层负载均衡33
链路层负载均衡的必要性33
Linux Bonding配置过程34
实践15:4层负载均衡38
4层负载均衡的数据格式38
4层负载均衡的时序图39
实践16:7层负载均衡40
7层负载均衡的数据格式40
7层负载均衡的时序图40
实践17:基于DNS的负载均衡41
实践18:基于重定向的负载均衡43
下载系统HTTP 302重定向43
上传系统的重定向方法44
实践19:基于客户端的负载均衡45
哈希方法45
数据库读写分离46
实践20:高可用技术推荐47
本章小结47
第4章 配置及调优LVS48
实践21:模式选择49
LVS-NAT49
LVS-DR49
LVS-Tun53
3种模式对比与推荐53
实践22:LVS Keepalived实战
精讲53
LVS Keepalived配置过程详解53
LVS重要参数56
LVS-DR模式的核心提示与优化57
实践23:多组LVS设定注意事项58
实践24:注意网卡参数与MTU
问题58
MTU的原理58
案例解析59
实践25:LVS监控要点64
性能采集64
可用性监控64
实践26:LVS排错步骤推荐64
本章小结66
第5章 使用HAProxy实现4层和
7层代理67
实践27:安装与优化67
HAProxy TCP负载均衡68
HAProxy HTTP负载均衡69
HAProxy的核心配置参数71
HAProxy的会话保持机制72
HAProxy中ip_local_port_range问题73
HAProxy后端服务器获取客户端IP73
TCP负载均衡和HTTP负载均衡的
对比74
实践28:HAProxy Keepalived
实战75
实践29:HAProxy监控76
性能采集76
可用性监控76
实践30:HAProxy排错步骤推荐77
本章小结77
第6章 实践Nginx的反向代理和
负载均衡78
实践31:安装与优化79
Nginx的核心配置参数81
Nginx负载均衡算法81
Nginx Proxy协议的选择81
Nginx中ip_local_port_range问题86
Nginx被代理的后端服务器获取客户
端IP86
实践32:Nginx监控86
性能采集86
可用性监控87
实践33:Nginx排错步骤推荐88
实践34:Nginx常见问题的处理
方法88
本章小结89
第7章 部署商业负载均衡设备
NetScaler90
实践35:NetScaler的初始化设置90
NetScaler中各种用途的IP概念90
NetScaler初始化的步骤91
实践36:NetScaler基本负载均衡
核心参数配置94
实践37:NetScaler内容交换核心
参数配置96
NetScaler被代理的后端服务器获取
客户端IP98
实践38:NetScaler的Weblog配置
与解析98
实践39:NetScaler高级运维指南99
实践40:NetScaler监控104
ns.log监控104
性能采集106
实践41:NetScaler排错步骤
推荐106
实践42:NetScaler Surge Protection
引起的问题案例107
实践43:LVS、HAProxy、Nginx、
NetScaler的大对比108
实践44:中小型网站负载均衡方案
推荐109
本章小结109
第8章 配置高性能网站110
实践45:深入理解HTTP协议110
HTTP协议通信的网络模型111
一次HTTP请求的详细分析112
实践46:配置高性能静态网站114
缓存配置方法115
压缩配置方法115
防盗链的配置方法116
图片剪裁的方法116
减少Cookie携带117
实现静态文件的安全下载117
使用ngx_http_secure_link_module模块
的配置方法117
使用Nginx中的X-Accel-Redirect控制
头部118
使用CDN加速用户访问119
实践47:配置高性能动态网站119
PHP-FPM优化119
Tomcat优化120
实践48:配置多维度网站监控121
日志监控122
可用性监控124
性能监控124
本章小结125
第9章 优化MySQL数据库126
实践49:MySQL配置项优化126
实践50:使用主从复制扩展读写
能力127
主从复制监控的方法128
主从复制失败的原因分析128
实践51:使用MHA构建高可用
MySQL131
本章小结132
第2篇 服务器安全和监控
第10章 构建企业级虚拟专用网络134
实践52:常见的VPN构建技术134
PPTP VPN的原理135
IPSec VPN的原理135
SSL/TLS VPN的原理135
3种VPN构建技术的对比136
实践53:深入理解OpenVPN的
特性136
实践54:使用OpenVPN创建Peer-
to-Peer的VPN136
Linux tun设备精讲139
实践55:使用OpenVPN创建Remote
Access的VPN141
实践56:使用OpenVPN创建Site-
to-Site的VPN148
实践57:回收客户端的证书149
实践58:使用OpenVPN提供的
各种script功能150
实践59:OpenVPN的排错步骤151
本章小结154
第11章 实施Linux系统安全策略与
入侵检测156
实践60:物理层安全措施156
实践61:网络层安全措施157
使用Linux的iptables限制网络访问158
使用Windows Server 2003 Enterprise的
ipsecpol限制网络访问159
使用Windows Server 2008 Enterprise的
netsh advfirewall限制网络访问159
使用FreeBSD的IPFW限制网络访问161
使用Cisco IOS的ACL限制网络访问162
端口扫描的重要性162
分布式DDOS的防护163
实践62:应用层安全措施165
密码安全策略165
SSHD安全配置166
Web服务器安全168
数据库安全策略171
BIND安全配置171
实践63:入侵检测系统配置171
实践64:Linux备份与安全180
备份与安全的关系180
数据备份的注意事项180
数据恢复测试180
本章小结180
第12章 实践Zabbix自定义模板
技术181
实践65:4步完成Zabbix Server
搭建181
实践66:Zabbix利器Zatree184
实践67:Zabbix Agent自动注册185
实践68:基于自动发现的KVM
虚拟机性能监控188
本章小结195
第13章 服务器硬件监控196
实践69:服务器硬盘监控196
实践70:SSD定制监控198
SSD优势与内部结构198
SSD选型198
SSD应用场景及定制监控199
实践71:服务器带外监控:带外
邮件警告202
本章小结205
第3篇 网络分析技术
第14章 使用tcpdump与Wireshark
解决疑难问题208
实践72:理解tcpdump的工作
原理209
tcpdump的实现机制209
tcpdump与iptables的关系210
tcpdump数据包长度超过网卡MTU的
问题210
tcpdump的简要安装步骤210
实践73:学习tcpdump的5个参数
和过滤器211
学习tcpdump的5个参数211
学习tcpdump的过滤器211
实践74:在Android系统上抓包的
方法212
实践75:使用RawCap抓取回环
端口的数据214
实践76:熟悉Wireshark的
配置项215
Wireshark安装过程的注意事项215
Wireshark的关键配置项216
使用追踪数据流功能218
实践77:使用Wireshark分析问题
的案例219
案例一 定位时间戳问题219
解决方法220
案例二 定位非正常发包问题220
抓包方法221
分析方法222
解决方法223
实践78:使用libpcap进行自动化
分析223
本章小结224
第15章 分析与解决运营商劫持
问题225
实践79:深度分析运营商劫持的
技术手段225
中小运营商的网络现状225
基于下载文件的缓存劫持226
基于页面的iframe广告嵌入劫持229
基于伪造DNS响应的劫持230
网卡混杂模式与raw socket技术230
实践80:在关键文件系统部署
HTTPS的实战233
HTTPS证书的获取方法233
Nginx支持HTTPS的按照方式235
Nginx配置文件示例235
本章小结235
第16章 深度实践iptables237
实践81:禁用连接追踪237
排查连接追踪导致的故障237
分析连接追踪的原理239
禁用连接追踪的方法240
确认禁用连接追踪的效果243
实践82:慎重禁用ICMP协议243
禁用ICMP协议导致的故障案例一则243
MTU发现的原理245
解决问题的方法247
实践83:网络地址转换在实践中的
案例247
源地址NAT247
目的地址NAT248
实践84:深入理解iptables各种表
和各种链248
本章小结250
第4篇 运维自动化和游戏运维
第17章 使用Kickstart完成批量
系统安装252
实践85:Kickstart精要252
PXE启动过程及原理252
Kickstart创建及结构组成253
pre-installation与post-installation应用
实践256
实践86:系统配置参数优化258
Web服务器中的参数优化259
DB服务器中的参数优化261
NUMA263
KVM宿主机中的参数优化265
本章小结266
第18章 利用Perl编程实施高效
运维267
实践87:多进程编程技巧268
实践88:调整Socket编程的超时
时间270
为什么设置Socket超时270
设置Socket超时的方法271
实践89:批量管理带外配置271
带内管理与带外管理271
HP iLO的批量管理方法272
Dell iDRAC的批量管理方法273
实践90:推广邮件的推送优化274
推送优化的思路与代码分析274
推广邮件的效果分析275
实践91:使用PerlTidy美化
代码276
本章小结278
第19章 精通Ansible实现运维
自动化279
实践92:理解Ansible280
Ansible安装及原理280
Ansible原理与架构281
Ansible配置项说明283
Inventory定义格式284
实践93:学习Ansible Playbook
使用要点285
Playbook基本语法和格式285
使用Include、Roles组织Playbook287
Ansible多样的变量定义与使用法则290
实践94:Ansible模块介绍及开发293
Ansible常用模块介绍293
如何开发Ansible模块294
实践95:理解Ansible插件296
实践96:Ansible自动化运维实例:
Ansible自动安装配置zabbix客户端298
本章小结299
第20章 掌握端游运维的技术要点300
实践97:了解大型端游的技术
架构301
服务器架构设计301
服务器角色说明及通信原理303
实践98:理解游戏运维体系发展
历程304
实践99:自动化管理技术305
平台架构与设计原则305
平台功能划分307
实践100:自动化监控技术311
实践101:运维安全体系312
实践102:运维服务管理体系314
实践103:运维体系框架建设315
本章小结316
第21章 精通手游运维的架构体系317
实践104:推荐的手游架构318
手游和端游运维的异同点318
使用HTTP协议的优点318
推荐的网络架构319
实践105:手游容量规划320
机房选择320
网络带宽容量规划321
Web服务器承载能力规划321
Memcached承载能力规划322
数据库承载能力规划324
官网论坛访问能力规划325
人数曲线接入325
本章小结325
官网论坛访问能力规划325
人数曲线接入325
本章小结325
为什么要写这本书
《论语·卫灵公》有言:“工欲善其事,必先利其器”。
在Linux运维领域中,什么是广大系统管理员们的“利器”呢?在笔者看来,系统管理员的“利器”有3个,一个是方法论,一个是经验,后一个是积极饱满的学习精神。
我们面对的是一个不断变化的世界,业务需求在变,技术架构在变,开源工具与商业系统异构部署,新工具和技术概念层出不穷,唯有一套科学的技术方 法论才能应对这些变化。很多时候,我们在面对新的问题时,会束手无措,这恰恰也是方法论缺失导致的结果。从事运维工作10余年来,笔者逐渐体会到在运维领 域中总结一套问题排除方法论是一件至关重要和有意义的事情。在笔者的工作环境中,经常听到有工程师问:“网站访问不了了,是什么问题?”此时,笔者会把我 的故障定位方法告诉他,依次实施这些方法,基本都能够有效定位并及时解决问题。笔者想,若能把这些方法论分享给初入这个行业的新手或者在这个领域中工作了 多年但仍未打通“任督二脉”的人,将会是一件极有意义的事。
经验是另一个有意思的话题。很多时候,我们对一个问题的判断,是基于以前的思考和处理方法的。有时候经验并不完全正确,但对经验的总结和归纳, 却可以给我们提供新的思考方向,因为从经验中获取的知识和技能在未来也是通用的。自2006年毕业后,笔者一直从事与运维相关的工作。在笔者开始从事的 局域网内网管理工作中,笔者看到了使用ARP欺骗竟然可以让一台计算机失去网络连接,笔者看到了Andrew.S.Tanenbaum先生所著的 《Computer Networks》中所讲的每个知识都活了起来。到后来,笔者加入了一家创业型的公司,全面负责公司的网站和业务运维,从每天上千次网站访问量到日PV超 过千万,笔者经历了高性能网站构建、监控、安全和运维自动化等各个方面的实践,使得自己在各个层面都有了丰富的经验积累。再后来,进入盛大游戏,笔者接触 到了大型端游的上线运维运营、现象级手游的发布运维,使自己又对游戏运维体系有了很多积累和总结。笔者想把这些经验都积累下来,分享给大家,让大家在考虑 架构和运维体系时,既能注意宏观的层面,也能把握技术细节。通过学习书中每一个技术和体系的实践,所有工程师都能得到提升。通过笔者的分享,我曾踩过 的那些“坑”在大家前进的路上将被填平,并成为大家前进的基础。本书中总结的每一个实践,都将是对系统稳定性和性能的一个优化。
积极饱满的学习精神是系统管理员的特质,这也决定了大家的职业之路能走多远。有了方法论和经验,可以让一个人在某个时间成为某个领域的专 家,但是只有不断学习,才能保持在这个领域的优势。就像驾驶一辆汽车在高速上疾驶,也许开始时一路领先,但如果没有持续加油提供动力,还是会被后面的车辆 不断超越。在运维工作中,不断学习就是不断给自己的职业能力加油。在面对新概念、新技术时,仅考虑如何使用它是不够的,更多的是思考这些技术的底层原理、 实现方法、技术前景预估和判断,这样才能成为不断引领这个领域进步的人。
读者对象
本书适合以下几类读者阅读:
中高级运维工程师;
Linux运维爱好者;
计算机相关专业的学生。
如何阅读本书
本书分为4大部分,具体介绍如下。
部分,高性能网站构建。这部分对构建高性能网站所需要的各项技术都做了详尽说明,涵盖域名、CDN、负载均衡、网站部署和数据库的相关知识和技术实践。
第二部分,服务器安全和监控。业务架构起来后,如何保证它的安全和稳定性,是大家需要关注的焦点。这部分解决两个问题:一个是加固服务器,使其避免轻易成为黑客的“肉鸡”;一个是监控,使故障在成为有重大事故前就被预警和处理。
第三部分,网络分析技术。这部分给出Linux运维领域中的网络分析方法论。通过对这部分的学习,大家将在遇到未知的运维网络服务问题时,能够自信地按方法论实施分析,从而解决问题。
第四部分,运维自动化和游戏运维。随着服务器规模的剧增,使用一台台登录服务器来管理、运维的方式将成为效率的瓶颈。这部分给出运维自动化实践 方案,从开源实现到自主开发,互相补充,互相提升,真正实现适合自己的运维自动化体系。游戏运维,将对端游和手游这两大目前火的游戏运维主题进行说明。
勘误和支持
虽然笔者试图努力保证本书不出现错误,但鉴于笔者的知识和视角,本书难免会出现用词不当、技术适用性的问题。在此,作者恳请读者不吝指教。您若 发现本书存在不足之处,请发送邮件到[email protected]或者添加QQ群434242482 (Linux运维实践)帮助笔者修正。另外,您还可以通过以上两种方式获得技术支持。本书的勘误将列在http://xufeng.info /errata.html中。
致谢
感谢盛大游戏高级总监桂总和我的领导老冯的大力支持。
感谢力哥(《深度实践KVM》作者、西山居运维经理肖力)的引荐,使本书得以从想法到落实出版。
感谢机械工业出版社的杨福川。福川兄出版了一系列IT技术领域的畅销书、精品书,本书能够得到福川兄的指正和帮助,是我的荣幸。
感谢我的妻子和可爱的女儿Cary,你们的理解和支持是我工作的动力,你们的笑容是我幸福的源泉。
胥 峰
胥峰是盛大游戏技术保障中心运维方面的“镇海之宝”,每年的游戏大节点上线,一些疑难杂症,都是由他解决的。由他坐镇的大项目,我会淡定很多,这与他扎实的技术底蕴、丰富的实操能力以及宏观的格局是分不开的。
现在他把这几年沉淀下来的经验无私分享出来,结合他多年的实践和思考的积累,可以说干货满满,诚意多多。作为技保中心运维部门第三位出书人(前 两位分别是《深度实践KVM》的作者肖力和杨俊俊),我希望技保中心以后有更多牛人出书,分享更多经验,和G云一起,为业内同行提供更好的服务和知识传 递。
—— 陈桂新 盛大游戏技术保障中心总监
本书是一本不可多得的运维宝典。它囊括高性能网站构建、服务器安全与监控、网络分析、运维自动化、游戏运维等丰富且实用的内容。本书内容源自作 者多年运维工作实践,以及带领团队攻克多个重点运维难题的经验,凝聚了作者对运维服务体系的深度思考与技术应用的精妙心得。我十分有幸曾与胥峰一起合作共 事,深知胥峰雄厚的运维技术能力、杰出的解决问题的思路与方法,以及在运维领域所取得卓越成果。阅读本书,除将收获饱含实战性的运维干货外,更为重要的 是,将领悟到极具价值的、由点及面的主动运维思维。强烈推荐从事运维工作的同学珍藏。
—— 熊普江 腾讯公司架构师
运维是门手艺活,既需要多年磨砺,也讲究学习技巧。通过吸收别人磨砺出的精华知识,转为自身的技术能力,是一个非常好的学习技巧。
运维体系是承载业务的大船,运维团队既要修建这艘船,也要驾驶航行这艘船。作为运维人员,面对运维体系建设和日常业务支撑的要求,既需要非常全 面和体系化的知识储备,也需要非常深入和灵活快速的实践能力。胥峰同学经过多年的学习和实践,成了Linux运维的卖油翁。文以载道,无论是理论知识,还 是实践经验,通过本书进行记录和传播,是一件非常有价值的事情。
十几年前,我也曾出版过一本Linux教程类的书籍,深知编著书籍的不易。感谢胥峰同学的努力和毫不藏私,奉献出这么好的一部书。
—— 马凯 微鲸科技副总裁
和胥峰在盛大游戏共事多年,跟胥峰学到许多系统方面的知识,更佩服的是胥峰解决问题时思路之开阔、方法之简洁。从盛大游戏离职之后,一直为失去 和胥峰当面学习的机会而遗憾。《Linux运维*佳实践》这本书修补了我这方面的遗憾。本书是胥峰多年运维经验的总结,涉及Web、数据库、网络、监控、 运维自动化等多个运维层面,每个层面都是干货满满,足见作者兴趣广泛、功力深厚。相信许多运维工程师以后会和我一样,将这本书当作案头书,经常阅读,不断 汲取精华。
—— 肖力 《深度实践KVM》作者
评论
还没有评论。