SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
互联网系统的稳定性保证:微博的实践
洪小军
@XiaoJunHong
新浪微博
@微博平台架构
• 什么是稳定的系统?
o 最稳定的操作系统 – OpenVMS
图片来源:uptimes-project.org
数据采集时间:2013年7月12日
• 什么是稳定的系统?
o 最稳定的反馈控制系统 – 鸡头
图片来源:youtube
• 什么是稳定的互联网系统?
o 少出问题
o 快速解决
o 清楚系统健康状况趋势
• 影响稳定性的因素
o 依赖的资源、服务异常
o 网络、硬件故障
o 流量异常突增
o 代码bug
o 各种“坑”
o …….
• 构建稳定的系统
o 少出问题:Design For Failure
o 快速解决:容灾预案
• 构建稳定的系统 – Design For Failure
o 分层隔离
o SLA保证
o 代码质量保证
• 分层隔离 – 分层模型
weibo.com weibo.cn api.weibo.com
DNS
七层(Nginx、Varnish…)
应用层(Tomcat、Jetty…)
服务层 中间件
资源层(Cache、Storage…)
• 分层隔离 – 隔离目标和原则
 保证异常出现时影响范围可控
 按主要接入方隔离
 按业务隔离
 按功能核心程度隔离
• 分层隔离 – 隔离方式
o 物理隔离 | 逻辑隔离
o 读写隔离
DNS
七层
应用层
服务层|中间件
资源层
隔离成本
低
中
中
中
高
• SLA保证
o 服务提供方:服务对外的SLA承诺
o 服务消费方:对依赖资源或服务的SLA要求
• 服务SLA保证 – 超时控制
o 依赖的资源或服务超时控制
o 异步调用超时控制
• 服务SLA保证 – 谨慎重试
o 异常场景下重试可能导致系统持续恶化
o 对于写入场景存在数据异常风险
• 服务SLA保证 – 容量规划
o 每季度至少一次例行性评估
o 重大活动前容量评估
o 监控系统黄色预警
o 日常30%以上冗余
o 资源或系统架构调整时需要重点关注
• 服务SLA保证 – Failover策略
o 服务降级:保核心功能
o 快速失败:保证不卡死
o 流量限制:保正常请求
• 服务SLA保证
o 超时控制
o 谨慎重试
o 容量规划
o Failover策略
• 构建稳定的系统 – 容灾预案
o IDC容灾
o 限流
o 降级
o 紧急快速扩容
• 这些是否是有效的?是否有遗漏?
 在测试环境下已经做了充分测试!
 线上呢?等待异常出现时来验证系统是否经得起考验?
OR
• 线上异常演练 – Touchstone系统
o 确认碰撞时安全气囊是打开的(Design For Failure)
o 即使出现问题事后有补救措施(容灾预案处理)
保证影响在
预期可控的
范围之内!
• Touchstone系统介绍
o 引流线上真实流量
o 异常场景搭建和模拟
o 预案预演
o 验证系统运行稳定性状况
Resource
Server
Client
• 引流线上真实流量
o 主要通过tcpcopy引流到演练服务器
图片来源:tcpcopy官方文档
• 异常场景搭建和模拟
o 资源或服务提供方搭建真实或对等异常场景
o 使用linux tc模拟依赖资源或服务出现异常的场景
o 接口字节码形式注入sleep代码模拟接口慢的场景
ResourceServerClient
123
• 预案预演
o 搭建异常的场景
o 运维人员做相应预案操作
o 验证系统运行稳定性状况
• 怎么判断系统是稳定的?
o 接口层面
o 分析状态码中4xx、5xx等比例
o 响应时间是否在正常范围内
o 是否满足SLA要求
o 返回包大小(辅助手段)
o 日志分析(辅助手段)
o ……
o 产品层面
• Touchstone系统 – 实时数据展示
• Touchstone系统 – 报表输出
通过输出的异常数据,怎么分析系统问题点?
• 异常影响程度叠加放大
o 描述:某组资源延迟400ms,但是接口整体持续延迟2s
串行化操作?
• 功能相关的接口同时受到影响
o 描述:某资源异常,依赖此资源的功能都受较大影响
o 依赖性的影响!
o 思考:
o 分层隔离中被隔离开的功能是否受到影响?
o 是否存在非核心资源影响核心功能的情况?
o 期望的SLA保证是否都生效?
• 大范围大量接口受到影响
o 描述:某资源异常时,tomcat中大量接口出现503
o 系统过载?
o 容器保护策略失效?
• 某个接口的所有请求都受到影响
o 描述:某个mysql slave节点异常,依赖此资源的接口
全部受到影响
o 资源单点部署?只有一套slave?
• Touchstone系统输出
o 系统稳定性状况
o 系统优化改进建议
o 切实有效的处理预案
• 保证系统一直处于稳定状态
o 周期性的演练测试
o 新系统上线和重大改造前先进行演练测试
• 在线演练一些注意事项
o 避免copy上行接口流量导致写请求被多次处理
o 避免对后端造成很大压力
o 避免写花缓存数据
o 尽量选择在低峰和有工程师在场的时间段进行演练
o 完善的监控报警机制
QA
欢迎加入新浪微博!
@微博平台架构
@XiaoJunHong
xiaojun2@staff.sina.com.cn

Más contenido relacionado

Similar a 互联网系统的稳定性保证:微博的实践

App operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-finalApp operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-final
iambuku
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1
天青 王
 
大型Sns网站数据库设计
大型Sns网站数据库设计大型Sns网站数据库设计
大型Sns网站数据库设计
Tony Deng
 
盛大游戏运维体系
盛大游戏运维体系盛大游戏运维体系
盛大游戏运维体系
Ken Liu
 
盛大游戏运维体系
盛大游戏运维体系盛大游戏运维体系
盛大游戏运维体系
Ken Liu
 
分布式系统测试实践
分布式系统测试实践分布式系统测试实践
分布式系统测试实践
drewz lin
 

Similar a 互联网系统的稳定性保证:微博的实践 (20)

New immune system of information security from CHINA by WooYun - CODE BLUE 2015
New immune system of information security from CHINA by WooYun - CODE BLUE 2015New immune system of information security from CHINA by WooYun - CODE BLUE 2015
New immune system of information security from CHINA by WooYun - CODE BLUE 2015
 
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
 
雲端上的資訊安全-Global Azure Bootcamp 2015 臺北場
雲端上的資訊安全-Global Azure Bootcamp 2015 臺北場雲端上的資訊安全-Global Azure Bootcamp 2015 臺北場
雲端上的資訊安全-Global Azure Bootcamp 2015 臺北場
 
App operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-finalApp operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-final
 
.NET Security Application/Web Development - Part IV
.NET Security Application/Web Development - Part IV.NET Security Application/Web Development - Part IV
.NET Security Application/Web Development - Part IV
 
组网与网络管理技术(第四章)
组网与网络管理技术(第四章)组网与网络管理技术(第四章)
组网与网络管理技术(第四章)
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1
 
大型Sns网站数据库设计
大型Sns网站数据库设计大型Sns网站数据库设计
大型Sns网站数据库设计
 
Internet System Security Overview
Internet System Security OverviewInternet System Security Overview
Internet System Security Overview
 
開放或封閉的安全之刃 [2018/07/13] @國際資訊安全組織台灣高峰會
開放或封閉的安全之刃 [2018/07/13] @國際資訊安全組織台灣高峰會開放或封閉的安全之刃 [2018/07/13] @國際資訊安全組織台灣高峰會
開放或封閉的安全之刃 [2018/07/13] @國際資訊安全組織台灣高峰會
 
DevOPS
DevOPSDevOPS
DevOPS
 
使安全成為軟體開發必要部分
使安全成為軟體開發必要部分使安全成為軟體開發必要部分
使安全成為軟體開發必要部分
 
敏捷软件测试之简介
敏捷软件测试之简介敏捷软件测试之简介
敏捷软件测试之简介
 
持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版
 
盛大游戏运维体系
盛大游戏运维体系盛大游戏运维体系
盛大游戏运维体系
 
盛大游戏运维体系
盛大游戏运维体系盛大游戏运维体系
盛大游戏运维体系
 
資安健檢因應配套
資安健檢因應配套資安健檢因應配套
資安健檢因應配套
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
 
分布式系统测试实践
分布式系统测试实践分布式系统测试实践
分布式系统测试实践
 
基于Ht rca缺陷分析的测试改进-china test-张玲玲
基于Ht rca缺陷分析的测试改进-china test-张玲玲基于Ht rca缺陷分析的测试改进-china test-张玲玲
基于Ht rca缺陷分析的测试改进-china test-张玲玲
 

互联网系统的稳定性保证:微博的实践