第1部分 质量
第1章 规划 /2
1.1 架构规划 /2
1.1.1 新趋势、新机遇、新挑战 /2
1.1.2 产品、架构、成本的生命周期 /3
1.1.3 质量、速度、成本 /5
1.1.4 专业化、平台化、持续化 /7
1.1.5 可伸缩、可调度、可扩展 /8
1.1.6 Set模型,集装箱改变世界 /10
1.1.7 全网调度,速度与容灾并进 /12
1.1.8 海量导致架构取向,适用是王道 /15
1.1.9 大系统简单做、小做 /17
系统架构不是越大越好,也不是越多越好,大系统要简单做,小做。
基本原则:
·高性能、高负载系统必须静态和动态部分分离
·系统分层设计,模块内高内聚,模块间低耦合
·CDN,定制WEB SERVER,ISP细分,LVS = 好的用户体验
·Cache能够多层、充分、灵活、正确使用 = 大流量,高并发
·绝大部分网站瓶颈会在数据库上
·尽可能考虑硬件层、系统层、数据库层、应用层、网络层单点
1.2 IDC规划 /19
1.2.1 全球最复杂的基础网络 /19
1.2.2 IDC属性、瓶颈分析及建议 /21
分析:
·必须做IDC、ISP的分布,单点好比赌博,ISP是不可抗因素
·必须地域分布IDC、ISP,用户具有地域性
·IDC具有范围局限性
·IDC具有不稳定性,并且具有周期性
·行业随3G软硬件平台的成熟,PC移动用户增长趋势明显
·IDC,ISP具有放大性,一个请求慢10ms,一个网页100个请求会慢 1000ms x 网络系数
建议:
·尽可能做到按ISP,分华东大区、华南大区、华北大区的数据中心布局。(质量、性能、容错与风险平衡,架构可分布,可拆分,DNS可调度)
·尽可能做静态化,建立五大区IDC+以省份为单位CDN的布局。
1.2.3 IDC策略,分布制胜、速度第一 /24
影响访问速度的三个环节
·第一公里:服务器出口宽带、服务器自身性能(可优化、可规避)
·中间一公里:互联网中的传输环节,运营商的互联互通,骨干网络设备和链路(可优化,可规避)
·最后一公里:ADSL,有线电视宽带,小区LAN接入状况
1.3 CDN规划 /27
1.3.1 CDN发展现状与趋势分析 /27
1.3.2 CDN厂商分析及外包细节 /28
蓝汛、网宿
1.3.3 CDN节点分布及解析策略 /32
1.3.4 CDN外包质量和风险控制 /34
1.4 预算规划 /37
1.4.1 预算的作用及预算推导 /37
1.4.2 服务器定制,切合应用与性价比 /39
1.4.3 服务器需求,用数据说话 /42
第2章 速度 /45
2.1 网站速度优化介绍 /45
2.1.1 什么是网站速度优化 /45
定义:网站的速度就是用户打开一个网页的快慢程度;加载完总的消耗时间。
质量:网页加载消耗的时间越少,代表网页速度越快。通常一个网页总的加载时间小于或等于5秒
2.1.2 网站速度优化的价值 /46
速度影响用户满意度和访问量
速度影响网站收益和SEO排名
2.1.3 网站速度关键指标 /47
核心指标衡量:
·首屏时间:浏览器完成页面第一屏的完成时间
·总下载时间:打开一个网页总的消耗时间
·首包时间:从浏览器发送HTTP请求结束开始,到收到WEB服务器返回的第一个数据包的消耗时间。
·建立连接时间:浏览器和WEB服务器建立TCP/IP连接消耗的时间
·DNS时间:域名解析服务器,所以DNS服务器的性能和效率也决定了网页速度
·总下载字节数:整个网页所有元素的大小之和
·网页元素数量:网页元素越多,消耗的时间越多
·基础页面下载时间:基础页面即WEB服务器返回的纯文本HTML文件
2.1.4 影响网站速度的因素 /50
用户端:
·用户地域网络有差异
·用户具有ISP属性,分电信、移动等,如果跨ISP,跨IDC肯定会影响速度
网络端:
·中国网络基础复杂
·IDC、ISP分布不合理
服务器端:
·服务器设置不合理,Last-Modified、Expires、Gizp未设置影响速度
·WEB服务器未优化
·操作系统未优化
产品形态:
·产品规划过于丰富
·内容过大,不合理的广告
·疏于架构和程序的稳定性
设计/前台开发:
·设计过于绚丽、丰富、图片过大等
·前台开发页面的制作是网页速度的关键,文件数过多,JS过大,代码不够精炼
·制作不精细
架构规划:
·对架构不够重视,业务发展超越架构支撑能力必将过载
·不合理,不适用的架构,如无Cache,数据库不拆分等
后台开发:
·开发经验不足,服务器性能差,不稳定
·开发不重视性能、架构
·数据库使用不合理,慢SQL,过多查询等
2.2 网站速度监测实践 /51
2.2.1 网站速度监测概述 /51
首先需要监测,其次才是优化
客户端主动监测
目前第三方商业公司做得较好的有Gomez、Keynote、基调网络等公司,最大的特点是可以监测竞争对手
JS被动监测
通过在网页中内嵌JS监测代码,缺点JS监测代码本身会拖慢页面加载速度
2.2.2 网站速度主动监测 /53
目前第三方主动监测的公司:
国外:Gomez(国外做得最专业)keymote
国内:基调(国内做得最专业的)、博睿、阿里度
2.2.3 网站速度被动监测 /54
2.3 网站速度分析实践 /57
2.3.1 网站速度分析概述 /57
分析
·元素分析:页面越大越慢,JS是性能杀手,JS越多速度越慢
·趋势分析:IDC分布
·总下载时间和运营商分析:
·区间分析:
·区域、省份分析:
问题及优化建议:
·网页元素:重点合并和优化JS,减少JS、图片数量和大小;连接数和内容最好小于
·CDN分布:静态内容实现自建CDN+第三方CDN全过省内覆盖
·IDC覆盖:动态内容实现华东、华南覆盖,互通
·内容拆分:对静态内容进行剥离,使用最优静态架构、服务器和OS配置;动态内容做域名数量收敛
·域名拆分:启用非baidu.com域名,启用多个二级域名专用于静态内容,隔离Cookie
·WEB服务器:自研或定制高负载、高并发下性能优越于Apache的WEB服务器
2.3.2 网站速度分析工具 /62
第三方质量监测工具
Gomez(www.gomez.com) 打不开了 跳转(https://www.dynatrace.com)
基调(www.networkbench.com)
现在已经换了名称和域名,叫 听云(http://www.tingyun.com/)详细见最底部
第三方即时监测工具
WebPagetest(www.webpagetest.org)
Page Speed Service:google的网页性能分析工具
浏览器插件分析工具
HttpWatch:IE插件
YSlow:Firefox工具插件
2.3.3 网站速度分析案例 /67
2.4 网站速度优化实践 /72
2.4.1 网站速度优化概述 /72
速度优化技术方向:
最少请求数 最快请求速度 最快可见可用
·TAB页异步加载或延迟加载
·合并JS/CSS文件
·CSS Sprites CSS图像地图
·统一公用JS/CSS文件
·合并AJAX请求
·避免重定向
·减少iframe请求
·头像、图片滚屏延迟加载
·不重要的页面模块异步加载
·多级Cache ·设置长时间缓存
·尽量使请求可缓存
·Cookie隔离
·动态、静态应用分离
·按类型选择合适的WEB服务器
·适当使用多域名增加并行下载
·设置Gzip压缩
·多IDC部署、动态内部代理
·使用CDN网络
·提高IP库定位能力
·图片质量压缩,使用PNG8
·图片预加载
·JS/CSS混淆
·压缩页面代码
·统一公用的JS库代码和应用代码
·减少Cookie大小
·逻辑层协议合并、并行处理
·数据、索引内存、SSD并行写 ·首屏优化原则
·减少元素数量、Size
·HTML,CSS,JS代码减肥
·JS性能优化DIV+CSS布局
·优化,避免使用CSS表达式
·CSS Sprites分屏合并CSS,JS
·位于页面底部的JS进行下载
·避免复杂的JS循环和计算
·统计JS放在页面最尾处
·按需加载、异步加载、延迟加载、预加载
·后来尽快输出HTML代码
2.4.2 网络速度优化及案例 /73
IDC,CDN,TDO优化
2.4.3 系统速度优化及案例 /80
·动、静态应用分离
·多级缓存策略
·选择合适的服务器
·选择合适的WEB服务器
·尽量使请求可缓存
·使用Gzip压缩文件内容
·内核优化
2.4.4 前端速度优化及案例 /83
·首屏优先优化:将拖延时间的内容放到首屏后执行或加载
·减少HTTP请求次数和页面大小,避免重定向和404错误
·适当使用多域名增加并行下载
·把节本置于页面底部
·延迟加载,预加载
·Cookie隔离
·文件合并
·图片优化
2.5 防止网站速度退化 /88
2.5.1 通过规范防止速度退化 /88
图片优化规范:
·页面图片必须经过质量压缩后才能使用
·重点页面要求DIV+CSS布局
CSS优化规范:
·一个页面原则上只允许有一个CSS文件,且CSS文件放在页面
内·页面内联的CSS代码,原则上放在页面
内·页面布局不能使用超过900像素高的表格
·素材合并
JS优化规范:
·页面首屏尽量不要出现JS文件请求
·页面通用功能要求使用统一素材域名下全站统一的JS文件
·任何JS功能要求的到延迟加载,避免阻塞页面
·超过10KB的JS代码不允许直接写入页面内,应该使用外联的JS文件
·不允许在页面中使用document.write直接输出页面代码
·禁止在首页、频道首页、底层页引用体积庞大的JS公共库,如jquery,使用精简过的JS库代码
·接口JS代码注意封装好自己的命名空间,避免代码命名冲突,且严格控制JS文件的大小和个数
广告代码优化规范:
·一屏完加载该屏广告
·页面全部加载完成后出现广告
Iframe优化规范
·尽量少使用它,原则不能使用
·必须经过优化组审核并优化通过后才能上线
统计代码使用规范
·一个页面只允许包含一次统计代码,Iframe页面内不允许包含统计代码
·统计代码只允许放到页面首屏之后,不允许放到首屏内,首屏高度定义为900PX
第三方代码优化规范:
·尽量直接使用第三方页面或代码
·简单页面可以直接通过发布系统抓取功能实现
·第三方页面必须遵守图片,CSS,JS优化规范
公共平台使用规范:
·页面服务器集群只能存放文本文件
·素材服务器集群上主要存放素材文件
·图片服务器集群上主要存放内容图片
2.5.2 通过工具防止速度退化 /90
第3章 监控 /94
3.1 监控概述 /94
3.1.1 监控定义和价值 /94
3.1.2 监控体系和实现途径 /95
3.2 用户监控实践 /97
3.2.1 访问监控,获取用户访问速度 /97
3.2.2 URL监控,服务实时访问状态 /103
3.2.3 劫持监控,了解全国劫持状态 /105
·跳转劫持
·篡改劫持
·弹窗劫持
3.2.4 内容监控,掌握网页元素变化 /108
3.3 机器监控实践 /109
开源监控系统:推荐Zabbix
3.4 网络监控实践 /113
3.4.1 网络监控,时刻掌控广域网变化 /113
3.4.2 响应监控,IDC内服务响应监控 /118
3.4.3 域名监控,做精准的DNS解析 /119
3.5 应用监控实践 /124
3.5.1 模块监控,动态应用模块监控 /124
3.5.2 数据库监控,数据库运行可视化 /126
第4章 告警 /129
4.1 告警概述 /129
4.1.1 告警定义和途径 /129
4.1.2 告警问题和规避方法 /130
4.2 告警模型 /131
4.2.1 告警分类,将告警分类区分对待 /131
4.2.2 告警模型,如何建立告警模型 /133
4.3 告警优化 /134
4.3.1 告警收敛,规避被告警淹没 /134
4.3.2 告警关联,让告警更具价值 /135
4.3.3 告警分析,用数据说话 /135
第5章 安全 /138
5.1 Web漏洞扫描 /138
WEB扫描工具:360网站安全检测
5.2 域名劫持扫描 /140
5.3 DDoS攻击扫描 /142
云盾
5.4 敏感信息扫描 /144
5.5 网页篡改扫描 /146
第2部分 效率
第6章 管理 /150
6.1 配置管理,标识所有的资源并记录在册 /150
6.2 事件管理,记录、分类、诊断、解决问题 /152
6.3 问题管理,消除引起问题的根本原因 /154
6.4 变更管理,串联变更原因、过程、结果 /157
6.5 容量管理,对运营指标未来的量化、预测 /159
第7章 流程 /163
7.1 业务运维管理规范 /163
7.2 系统用户管理规范 /165
7.3 设备使用管理规范 /168
7.4 应用安全管理规范 /169
WEB安全
·SQL注入
·任意文件读取
·目录浏览
·跨站脚本
·跨域跳转
客户端安全
·内存访问冲突
·除零操作
·栈溢出
信息安全
·产品信息安全
7.5 开发与编译环境安全规范 /171
开发环境安全规范
·开发机的安装和配置必须符合公司统一的办公电脑的安装与配置要求。开发机操作系统统一由公司统一的IT部门负责,安装统一规定的杀毒软件,加入公司统一的域管理,安装指定的安全套装
·禁止在开发机上进行病毒测试
·开发软件必须与编译机的一致
·开发机的编译选项必须与编译机上的一致
编译环境安全规范
·开发机与编译机要分开
·编译机不得用于编译、发布之外的用途,只允许安装必备的软件
·禁止编译机连接公网
·编译机必须安装系统补丁,关闭不需要的系统服务
·编译机必须开启病毒防火墙,不得共享任何文件夹
·编译机必须专人操作
·编译机的密码必须具有一定的复杂性并且定期更换
·编译机的编译程序建议使用最新版本
·对支持“/GS”选项的编译器,编译时必须打开“/G5”开关
·建议编译器使用尽量高的警告等级
7.6 故障分级和处罚规范 /172
第8章 预案 /175
8.1 预案,从容有序应对危机 /175
8.2 预演,提高故障执行力 /177
第9章 考核 /179
9.1 运维能力考核 /179
9.2 架构能力考核 /180
9.3 运营预算考核 /182
第3部分 成本
第10章 基础 /184
10.1 规模化导致运营成本凸显 /184
10.2 运营成本优化方向和策略 /185
10.3 工具协助成本可持续优化 /187
第11章 设备 /190
11.1 服务器分类、分级、分层定制 /190
11.2 业务分类平台化减少运营成本 /192
11.3 混布最大限度提高资源利用率 /192
第12章 带宽 /194
12.1 通过改变产品形态减少数百万成本 /194
12.2 通过降低带宽单价减少成本 /197
12.3 通过自动优化减少带宽成本 /199
(2017-12-7)