海量运维、运营规划之道 - 读书笔记
2017-04-22 本文已影响95人
黏着Leon的小尾巴
架构规划
产品、架构、成本的生命周期
- 引入期,通常采用灰度放量,例如发放邀请码。
- 成长期,用户基数增长、产品逐渐丰富、系统模块化,宽带成本开始成为主成本。
- 成熟期,增长放缓,活跃度达到顶峰。架构优化调整:多IDC部署,逻辑层服务分布式和集群部署,P级分布式存储,分布式DB与Cache,数十G到数百G带宽成本。
- 衰退期,新产品或替代品出先,用户开始流失,架构沉淀完成,架构开始平台化,升级到部门甚至公司级别。
负载均衡、架构、速度、容灾、与成本的把控,既要满足阶段性需要,保持可扩展性,又不能超出计划。
产品第一,运营制胜。
海量运维、运营规划之道 - 读书笔记- 质量、速度、成本
- 专业化、平台化、持续化
- 可伸缩、可调度、可扩展
- 标准化、规范化、模块化
- 全网调度,速度与容灾
分布
- 多ISP分布,BGP或多线IDC
- 多IDC
策略
- 静态资源,中心IDC与CDN,一线城市IDC重点覆盖,CDN做省内覆盖。
- 动态内容,主要依靠多IDC之间专线做Qos或透明代理。
- 就近接入,按IDC所在区域覆盖。
调度
- GSLB分POOL调度,每个POOL对应就近各省及ISP解析。
-
灾备,通过GSLB进行区域或某同ISP的IDC所负责的用户覆盖的调度。
海量运维、运营规划之道 - 读书笔记
架构概览
- 动静分离
- 静态、动态架构拆分再拆分。Web Server 定制,产品平台化,应用平台化,架构平台化,运维和运营平台化。
- 核心IDC+多家CDN分流,IDC容灾,区域容灾。
- 高速跨IDC、ISP分发能力。
- PB级存储,可伸缩,易扩容,逻辑转存,冷热分离。
IDC策略、分布制胜、速度第一
用户访问过程
- 浏览器输入域名
- 浏览器向本地DNS请求解析
- 本地DNS将请求发送到网站授权的DNS服务器(涉及根DNS)
- 授权DNS将服务器的IP地址发送给本地DNS
- 本地DNS将解析结果返回给用户,同时将结果缓存,直到TTL过期
- 用户得到IP,访问IP指向的服务器
影响速度的三个环节
- 第一公里,服务器出口宽带、服务器性能
- 中间一公里,互联网传输环节、运营商互联互通、骨干网络设备和链路
- 最后一公里,ADSL、有线电视宽带、小区Lan接入状况
IDC规划
- 将全国分为华北、华东、华南、西南、西北五大区域,分区域、分运营商、按用户比例精细化IDC覆盖。
- 针对电信、联通大省进行省内IDC覆盖,如:广东电信、山东联通
- 大区IDC以省为单位的CDN,缓解骨干网络和分流大区核心IDC压力,提升速度、降低带宽成本
速度
网站速度关键指标
- 首屏时间:浏览器完成第一屏渲染的时间
- 总下载时间:打开页面总消耗时间
- 首包时间:从浏览器发送HTTP请求结束到结束到Web服务器返回到第一个数据包
- 建立连接时间:建立TCP/IP连接消耗时间
- DNS时间:域名解析消耗的时间
- 总下载字节数:页面所有元素的大小之和
- 网页元素数量:元素数量越多,与服务器交互越多,网络传输及通讯越频繁(js、css、图片等)
- 基础页面下载时间:即服务器返回多纯文本HTML文件(网页第一个请求),含DNS解析、TCP/IP建立、SSL握手等时间总和,决定了首屏体验。
影响速度等因素
- 横向
- 用户端:地域性、ISP属性
- 网络端:中国网络基础环境复杂度(例如:长城?哈哈)、网络运营商(运营、通信、互联)、IDC和ISP分布
- 服务器端:服务器配置、性能优化、系统优化
- 纵向
- 产品形态(产品规划复杂度、产品功能数量)
- 设计、前端
- 架构规划
- 后端开发
网站速度监控
海量运维、运营规划之道 - 读书笔记网站速度优化
- 最少请求量
- tab页面异步加载或延迟加载
- 合并 js/css文件
- Css Sprites
- 统一公用 js/css
- 合并Ajax请求
- 避免重定向
- 减少iframe请求
- 滚屏延迟加载
- 多级缓存
- 最快请求速度
- 设置页面缓存
- 请求结果缓存
- Cookie隔离
- 动静分离
- 选择合适的服务器
- 适当使用多域名增加并行下载
- 设置Gzip压缩
- 多IDC部署,动态内部代理
- 使用CDN
- 提高IP库定位能力
- 图片压缩
- 图片预加载
- js/css混淆
- 页面代码压缩
- 减少cookie大小
- 逻辑层协议合并、并行处理
- 数据、索引内存、SSD并行写
- 最快可见可用
- 首屏优化原则
- 减少元素数量、size
- 前端代码减肥
- js性能优化 css+div布局
- js底部加载,按需加载,延迟加载,预加载
海量运维、运营规划之道 - 读书笔记
监控
- 第一阶段:以第三方质量监控和开源系统监控为核心。
- 第二阶段:自建运营平台,实现应用、质量、容量监测,对应用层、数据层监控。
- 第三阶段:以ITIL事件管理、问题管理、变更管理、配置管理、发布管理5大流程为核心,建立全流程电子流体系,平台化支撑规模化。
- 访问监控,过去用户访问速度
- URL监控,服务实时访问状态
- 劫持监控,了解全国劫持状态
- 内容监控,编写爬虫抓取页面
机器监控实践
通过Agent将服务器实时系统数据上报,实现系统秒级监控以及对服务器数据进行汇聚、建模、展现和警告。运营数据包括系统CPU、负载、磁盘、连接数、内存、带宽、IDC带宽等。
海量运维、运营规划之道 - 读书笔记
网络监控实践
- 第三方监控:IDC维度,ISP维度(自身业务上报)
- 自建监控:js上报
- 响应监控:IDC内服务响应
- 域名监控:DNS解析
应用监控实践
- 模块监控:动态应用模块监控
- 数据库监控:数据库运行可视化
安全
- web漏洞扫描
- xss
- csrf
- sql注入
- cgi漏洞
- 缓冲溢出
- 域名劫持扫描
- DDos攻击扫描
- 流量攻击
- 资源耗尽攻击
- 敏感信息扫描
- 网页篡改扫描