海量运维、运营规划之道 - 读书笔记

架构规划

产品、架构、成本的生命周期

  • 引入期,通常采用灰度放量,例如发放邀请码。
  • 成长期,用户基数增长、产品逐渐丰富、系统模块化,宽带成本开始成为主成本。
  • 成熟期,增长放缓,活跃度达到顶峰。架构优化调整:多IDC部署,逻辑层服务分布式和集群部署,P级分布式存储,分布式DB与Cache,数十G到数百G带宽成本。
  • 衰退期,新产品或替代品出先,用户开始流失,架构沉淀完成,架构开始平台化,升级到部门甚至公司级别。

负载均衡、架构、速度、容灾、与成本的把控,既要满足阶段性需要,保持可扩展性,又不能超出计划。

产品第一,运营制胜。

图片发自简书App
  • 质量、速度、成本
  • 专业化、平台化、持续化
  • 可伸缩、可调度、可扩展
  • 标准化、规范化、模块化
  • 全网调度,速度与容灾

分布

  • 多ISP分布,BGP或多线IDC
  • 多IDC

策略

  • 静态资源,中心IDC与CDN,一线城市IDC重点覆盖,CDN做省内覆盖。
  • 动态内容,主要依靠多IDC之间专线做Qos或透明代理。
  • 就近接入,按IDC所在区域覆盖。

调度

  • GSLB分POOL调度,每个POOL对应就近各省及ISP解析。
  • 灾备,通过GSLB进行区域或某同ISP的IDC所负责的用户覆盖的调度。


    图片发自简书App

架构概览

  • 动静分离
  • 静态、动态架构拆分再拆分。Web Server 定制,产品平台化,应用平台化,架构平台化,运维和运营平台化。
  • 核心IDC+多家CDN分流,IDC容灾,区域容灾。
  • 高速跨IDC、ISP分发能力。
  • PB级存储,可伸缩,易扩容,逻辑转存,冷热分离。
图片发自简书App

IDC策略、分布制胜、速度第一

用户访问过程

  • 浏览器输入域名
  • 浏览器向本地DNS请求解析
  • 本地DNS将请求发送到网站授权的DNS服务器(涉及根DNS)
  • 授权DNS将服务器的IP地址发送给本地DNS
  • 本地DNS将解析结果返回给用户,同时将结果缓存,直到TTL过期
  • 用户得到IP,访问IP指向的服务器

影响速度的三个环节

  • 第一公里,服务器出口宽带、服务器性能
  • 中间一公里,互联网传输环节、运营商互联互通、骨干网络设备和链路
  • 最后一公里,ADSL、有线电视宽带、小区Lan接入状况

IDC规划

  1. 将全国分为华北、华东、华南、西南、西北五大区域,分区域、分运营商、按用户比例精细化IDC覆盖。
  2. 针对电信、联通大省进行省内IDC覆盖,如:广东电信、山东联通
  3. 大区IDC以省为单位的CDN,缓解骨干网络和分流大区核心IDC压力,提升速度、降低带宽成本

速度

网站速度关键指标

  • 首屏时间:浏览器完成第一屏渲染的时间
  • 总下载时间:打开页面总消耗时间
  • 首包时间:从浏览器发送HTTP请求结束到结束到Web服务器返回到第一个数据包
  • 建立连接时间:建立TCP/IP连接消耗时间
  • DNS时间:域名解析消耗的时间
  • 总下载字节数:页面所有元素的大小之和
  • 网页元素数量:元素数量越多,与服务器交互越多,网络传输及通讯越频繁(js、css、图片等)
  • 基础页面下载时间:即服务器返回多纯文本HTML文件(网页第一个请求),含DNS解析、TCP/IP建立、SSL握手等时间总和,决定了首屏体验。

影响速度等因素

  • 横向
    • 用户端:地域性、ISP属性
    • 网络端:中国网络基础环境复杂度(例如:长城?哈哈)、网络运营商(运营、通信、互联)、IDC和ISP分布
    • 服务器端:服务器配置、性能优化、系统优化
  • 纵向
    • 产品形态(产品规划复杂度、产品功能数量)
    • 设计、前端
    • 架构规划
    • 后端开发
图片发自简书App

网站速度监控

图片发自简书App

网站速度优化

  • 最少请求量
  • tab页面异步加载或延迟加载
  • 合并 js/css文件
  • Css Sprites
  • 统一公用 js/css
  • 合并Ajax请求
  • 避免重定向
  • 减少iframe请求
  • 滚屏延迟加载
  • 多级缓存
  • 最快请求速度
  • 设置页面缓存
  • 请求结果缓存
  • Cookie隔离
  • 动静分离
  • 选择合适的服务器
  • 适当使用多域名增加并行下载
  • 设置Gzip压缩
  • 多IDC部署,动态内部代理
  • 使用CDN
  • 提高IP库定位能力
  • 图片压缩
  • 图片预加载
  • js/css混淆
  • 页面代码压缩
  • 减少cookie大小
  • 逻辑层协议合并、并行处理
  • 数据、索引内存、SSD并行写
  • 最快可见可用
  • 首屏优化原则
  • 减少元素数量、size
  • 前端代码减肥
  • js性能优化 css+div布局
  • js底部加载,按需加载,延迟加载,预加载
图片发自简书App

图片发自简书App

监控

  • 第一阶段:以第三方质量监控和开源系统监控为核心。
  • 第二阶段:自建运营平台,实现应用、质量、容量监测,对应用层、数据层监控。
  • 第三阶段:以ITIL事件管理、问题管理、变更管理、配置管理、发布管理5大流程为核心,建立全流程电子流体系,平台化支撑规模化。
  • 访问监控,过去用户访问速度
  • URL监控,服务实时访问状态
  • 劫持监控,了解全国劫持状态
  • 内容监控,编写爬虫抓取页面

机器监控实践

通过Agent将服务器实时系统数据上报,实现系统秒级监控以及对服务器数据进行汇聚、建模、展现和警告。运营数据包括系统CPU、负载、磁盘、连接数、内存、带宽、IDC带宽等。


图片发自简书App

网络监控实践

  • 第三方监控:IDC维度,ISP维度(自身业务上报)
  • 自建监控:js上报
  • 响应监控:IDC内服务响应
  • 域名监控:DNS解析

应用监控实践

  • 模块监控:动态应用模块监控
  • 数据库监控:数据库运行可视化
图片发自简书App
图片发自简书App

安全

  • web漏洞扫描
  • xss
  • csrf
  • sql注入
  • cgi漏洞
  • 缓冲溢出
  • 域名劫持扫描
  • DDos攻击扫描
  • 流量攻击
  • 资源耗尽攻击
  • 敏感信息扫描
  • 网页篡改扫描
图片发自简书App
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 大型网站架构 网站架构包括:前端架构+应用层架构+服务层架构+存储层架构+后台架构+数据中心机房架构+安全架构+数...
    运维开发笔记阅读 1,132评论 0 7
  • 大一的时候,我们辗转于一个个酒桌之上,觥筹交错。我们谈及情谊,谈及女人,谈及梦想,我们就像是海明威笔下那迷惘的一代...
    徐瑞泽阅读 521评论 1 4
  • 有时候发现自己的反射弧真的很长,绕地球几圈都反应不过来。也不算是反射弧吧,更多的应该是对自身了解很少。我一直觉得了...
    想变美变瘦的小胖子阅读 266评论 0 1
  • 一、原理 设置定时器,在清除画面后重新绘制画面 移动:在不同位置重新绘制 序列帧:绘制图片的不同部分 二、案例1、...
    大饼脸me阅读 315评论 0 0