SlideShare a Scribd company logo
1 of 37
Download to read offline
新浪微博稳定性经验谈
洪小军 @XiaoJunHong
邀请嘉宾:唐福林 @唐福林
新浪微博 @微博平台架构
新浪微博稳定性经验谈
• 什么是稳定的系统?
o 少出问题
o 快速解决
o 清楚系统健康状况趋势
新浪微博稳定性经验谈
• 影响稳定性的因素
o 依赖的资源、服务异常
o 网络、硬件故障
o 流量突增
o 代码bug
o 各种“坑”
o …….
新浪微博稳定性经验谈
存在不可避免的影响稳定性的因素,
但是又需要保证系统的稳定性,怎么做到?
新浪微博稳定性经验谈
• 构建稳定的系统?
o 少出问题:Design For Failure
o 快速解决
o 清楚系统健康状况趋势
新浪微博稳定性经验谈
• Design For Failure
o 分层隔离(分离核心和非核心接口、服务化等)
o SLA保证(资源、服务等各层面保证)
o 保证代码质量(最佳设计模式、测试、Code Review)
o 容灾设计(多IDC、多点部署)
o 容量规划(保持一定富余)
o 完善的监控报警机制(异常监测及其流量增长预警等)
o 灰度发布
o ……
新浪微博稳定性经验谈
• 分层隔离 – 分层模型
weibo.com weibo.cn api.weibo.com
DNS
七层(Nginx、Varnish…)
应用层(Tomcat、Jetty…)
服务层 中间件
资源层(Cache、Storage…)
新浪微博稳定性经验谈
• 分层隔离 – 隔离目标和原则
 保证异常出现时影响范围可控
o 按主要接入方隔离
o 按业务隔离
o 按功能核心程度隔离
新浪微博稳定性经验谈
• 分层隔离 – 隔离方式
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策略
新浪微博稳定性经验谈
不能保证系统方方面面都能自动Failover,
但是又需要保证系统的稳定性,怎么做到?
新浪微博稳定性经验谈
• 构建稳定的系统?
o 少出问题:Design For Failure
o 快速解决:容灾预案
o 清楚系统健康状况趋势
新浪微博稳定性经验谈
• 容灾预案
o IDC容灾(切换到其它IDC)
o 限流(拒绝超出或异常的请求)
o 降级(降级有问题资源、保核心功能)
o 紧急快速扩容
o ……
新浪微博稳定性经验谈
• 所做这些都是有效的吗?是否有遗漏?
 在测试环境下已经做了充分测试!
o 线上呢?等待异常出现时来验证系统是否经得起考验?
OR
新浪微博稳定性经验谈
• 在线容灾演练 – Touchstone系统
o 确认碰撞时安全气囊是否开启(Design For Failure)
o 事后有应对措施(容灾预案)
保证影响在
预期可控的
范围之内!
新浪微博稳定性经验谈
• 构建稳定的系统?
o 少出问题:Design For Failure
o 快速解决:容灾预案
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 最终用户层面
o 前端页面展示
新浪微博稳定性经验谈
• Touchstone系统 – 实时数据展示
新浪微博稳定性经验谈
• Touchstone系统 – 报表输出
新浪微博稳定性经验谈
通过输出的异常数据,怎么分析系统问题点?
新浪微博稳定性经验谈
• 异常影响程度叠加放大
o 描述:某组资源延迟400ms,但是接口整体持续延迟2s
串行化操作?
新浪微博稳定性经验谈
• 功能相关的接口同时受到影响
o 描述:某资源异常,依赖此资源的功能都受较大影响
o 依赖性的影响!
o 思考:
o 分层隔离中被隔离开的功能是否受到影响?
o 是否存在非核心资源影响核心功能的情况?
o 期望的SLA保证是否都生效?
新浪微博稳定性经验谈
• 大范围大量接口受到影响
o 描述:某资源异常时,tomcat中大量接口出现503
o 系统过载?
o 容器保护策略失效?
新浪微博稳定性经验谈
• 某个接口的所有请求都受到影响
o 描述:某个存储节点异常,依赖此存储的接口全部受到
影响
o 资源单点部署?只有一套slave?
新浪微博稳定性经验谈
• 稳定性演练系统输出
o 系统稳定性状况
o 系统优化改进建议
o 切实有效的处理预案
新浪微博稳定性经验谈
• 保证系统一直处于稳定状态
o 新系统上线和重大改造前先进行稳定性测试
o 周期性的演练测试
新浪微博稳定性经验谈
• 在线演练一些注意事项
o 避免copy上行接口流量导致写请求被多次处理
o 避免写花缓存数据
o 避免对后端造成很大压力
o 尽量选择在低峰和有工程师在场的时间段进行演练
o 完善的监控报警机制
新浪微博稳定性经验谈

More Related Content

Similar to 新浪微博稳定性经验谈

App operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-finalApp operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-finaliambuku
 
基于Ht rca缺陷分析的测试改进-china test-张玲玲
基于Ht rca缺陷分析的测试改进-china test-张玲玲基于Ht rca缺陷分析的测试改进-china test-张玲玲
基于Ht rca缺陷分析的测试改进-china test-张玲玲drewz lin
 
漢杰科技 營業秘密保護與鑑識作業 2015
漢杰科技 營業秘密保護與鑑識作業 2015漢杰科技 營業秘密保護與鑑識作業 2015
漢杰科技 營業秘密保護與鑑識作業 2015Steven 陳冶豪
 
歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列Chris Wang
 
Why do we need backend testing
Why do we need backend testingWhy do we need backend testing
Why do we need backend testingChen Liwei
 
問題分析與解決 詹翔霖教授-核心幹部管理實務
問題分析與解決 詹翔霖教授-核心幹部管理實務問題分析與解決 詹翔霖教授-核心幹部管理實務
問題分析與解決 詹翔霖教授-核心幹部管理實務文化大學
 
运营商去O浅析 公开版-王晓征
运营商去O浅析 公开版-王晓征运营商去O浅析 公开版-王晓征
运营商去O浅析 公开版-王晓征Cheng Feng
 
goodsleeping App
goodsleeping App goodsleeping App
goodsleeping App zhuohuiying
 
雲端及物聯網新世代的客戶服務變革 Wallace1050703
雲端及物聯網新世代的客戶服務變革 Wallace1050703雲端及物聯網新世代的客戶服務變革 Wallace1050703
雲端及物聯網新世代的客戶服務變革 Wallace1050703Weng Wallace
 
Doc 2011101404575913
Doc 2011101404575913Doc 2011101404575913
Doc 2011101404575913Rhythm Sun
 

Similar to 新浪微博稳定性经验谈 (11)

App operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-finalApp operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-final
 
基于Ht rca缺陷分析的测试改进-china test-张玲玲
基于Ht rca缺陷分析的测试改进-china test-张玲玲基于Ht rca缺陷分析的测试改进-china test-张玲玲
基于Ht rca缺陷分析的测试改进-china test-张玲玲
 
漢杰科技 營業秘密保護與鑑識作業 2015
漢杰科技 營業秘密保護與鑑識作業 2015漢杰科技 營業秘密保護與鑑識作業 2015
漢杰科技 營業秘密保護與鑑識作業 2015
 
歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列
 
Why do we need backend testing
Why do we need backend testingWhy do we need backend testing
Why do we need backend testing
 
問題分析與解決 詹翔霖教授-核心幹部管理實務
問題分析與解決 詹翔霖教授-核心幹部管理實務問題分析與解決 詹翔霖教授-核心幹部管理實務
問題分析與解決 詹翔霖教授-核心幹部管理實務
 
DevOPS
DevOPSDevOPS
DevOPS
 
运营商去O浅析 公开版-王晓征
运营商去O浅析 公开版-王晓征运营商去O浅析 公开版-王晓征
运营商去O浅析 公开版-王晓征
 
goodsleeping App
goodsleeping App goodsleeping App
goodsleeping App
 
雲端及物聯網新世代的客戶服務變革 Wallace1050703
雲端及物聯網新世代的客戶服務變革 Wallace1050703雲端及物聯網新世代的客戶服務變革 Wallace1050703
雲端及物聯網新世代的客戶服務變革 Wallace1050703
 
Doc 2011101404575913
Doc 2011101404575913Doc 2011101404575913
Doc 2011101404575913
 

More from drewz lin

Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013drewz lin
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13drewz lin
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrichdrewz lin
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2drewz lin
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfdrewz lin
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equaldrewz lin
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21drewz lin
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansendrewz lin
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaoladrewz lin
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsdrewz lin
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentationdrewz lin
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsdrewz lin
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martindrewz lin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowaspdrewz lin
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usadrewz lin
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013drewz lin
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架drewz lin
 
无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiudrewz lin
 
网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)drewz lin
 
天猫后端技术架构优化实践
天猫后端技术架构优化实践天猫后端技术架构优化实践
天猫后端技术架构优化实践drewz lin
 

More from drewz lin (20)

Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
 
无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu
 
网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)
 
天猫后端技术架构优化实践
天猫后端技术架构优化实践天猫后端技术架构优化实践
天猫后端技术架构优化实践
 

新浪微博稳定性经验谈