SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
天猫后端技术架构优化实践
⼦子房
13年8月31⽇日星期六
Agenda
业务简介
系统设计
系统优化及案例
13年8月31⽇日星期六
业务简介
13年8月31⽇日星期六
搭配区
活动区
商品基础信息
单品优惠
商品属性
商品描述
店
铺
导
航
单品库存
单品服务
商品图⽚片
店铺导航
会员信息
13年8月31⽇日星期六
“简单”的背后
13年8月31⽇日星期六
挑战
不变的是变化
流量突⻜飞猛进
如何快速响应、落地需求
如何提⾼高⽤用户体验
如何降低系统间耦合
如何控制系统复杂化带来
的开发、维护成本
13年8月31⽇日星期六
系统设计
13年8月31⽇日星期六
系统变迁
系统
DB DB DB
web
系统
web
系统
系统
DB
web
系统
系统
DB
web
系统 系统
DB
web
系统 系统
通信中间件
data layer
分布式缓存
DB DB
CDN
LVS
13年8月31⽇日星期六
系统的⾃自我修养
模型
模块化
接⼝口
编
排
框架
服务化
链路
单元
部署
功能拆分
前后解耦
13年8月31⽇日星期六
详情⼦子系统1 详情⼦子系统2
browser
1 2 3
优惠分组1 优惠分组2
商品系统 旺铺
MIC
SIC
库存
物流
服务
......
4
browser
交易分组1 交易分组2
1 3
2
5
请求
流程选择
上下文构建
流程处理
结果
13年8月31⽇日星期六
系统优化
13年8月31⽇日星期六
优化概述
度量指标
TPS、RT、请求内存....
⼀一般性瓶颈观测
CPU(user, sys)、Load
IO、MEM
通⽤用⼯工具
jstat, jmap, visual vm, jprofiler
通⽤用的⼿手段
基础设施优化
架构优化
前端优化
后端系统内部优化
硬件
存储
容器
http server
web应⽤用
容器
后端应⽤用
JVM
JVM
13年8月31⽇日星期六
场景分析
商品详情 交易 优惠
主要功能
前端属性
区块性
计算类型
外部依赖
依赖模式
外部平均RT
内外消耗⽐比
对外调⽤用模式
热点
1.商品基本信息渲染和展⽰示
2.店铺信息展⽰示
3.商品的动态属性查询和展⽰示
1. 商品、卖家、优惠
和服务等信息披露展
⽰示。
2. 订单创建
1. 优惠资源、规则
的读取和计算
⾼高 中 低
强 强 ⽆无
I/O,CPU I/O I/O, CPU
20+ 20+ 5+
client+rpc client+rpc rpc
1~10ms 1~10ms 20~200ms
外>内 外>>内 外>>内
不确定 不确定 基本确定
⾼高 中 ⾼高
13年8月31⽇日星期六
普适规则?
数据读问题
热点问题
外部依赖多
⻚页⾯面型系统
缓存?
并⾏行计算?
前后端解耦?异步化?
13年8月31⽇日星期六
模型与缓存
13年8月31⽇日星期六
缓存?
读>>写
查询复杂度⼩小
结果组装复杂度⾼高*
从cpu到 ⼤大约需要的时间
寄存器
L2
L3
QPI总线
主存
TAIR
DB
约1/4ns
约3ns
约15ns
约20ns
约60-80纳秒
约1~3ms
?
Cookie
CDN
集中式缓存
MemCached, Redis, TAIR
DB cache
13年8月31⽇日星期六
基础策略
动静分离
模型松耦合+⼤大缓存
适度的瘦⾝身
时间
索引模式
序列化问题
⼀一致性
Batch/Prefix
简化模型⽰示意图
活动
卖家参与
详情
优惠规
则
商品池
1. 活动与卖家参与情况解耦(1 v.s. n)
2. 卖家参与情况与规则解耦 (1 v.s. n)
3. 原始读取顺序
读取卖家参与情况(1次)
读取活动信息(n次)
读取优惠规则(n次)
4. 优化后1次
13年8月31⽇日星期六
关键点
动静分离的问题
缓存失效问题
商品|旺铺
分桶问题
选型
集中式 v.s. 本地
物理机 v.s. 虚拟机
案例--商品详情系统静态化
browser
CDN
详情1 Nginx单机Tair
详情1 App
IC/UIC/SC
详情2
优惠、库存、物
流、区域销售、套
餐....
1
2
2’
3
4
notify
admin system
CSI动
态填充
13年8月31⽇日星期六
并发与异步化
13年8月31⽇日星期六
并发--降低RT
准备
单元划分
依赖编排
并⾏行粒度
RPC调⽤用级(分|合)
业务单元级
基本注意点
锁
load
⽉⽊木桶效应
IO IO ……IO
CS CS
…
…
CS CSIO
IO
CS CSIO
CS CS
…
…
CS CSIO
IO
CS CSIO
13年8月31⽇日星期六
异步--降低上下⽂文切换
线程 vs 协程
语⾔言⽅方案:scala、erlang
字节码⽅方案:kilim
核⼼心问题
RPC框架的异步⽀支持
IO/NIO
上下⽂文保存和恢复
13年8月31⽇日星期六
编程模式
processor link
并发/异步
DSL
maven plugin
kilim
AOP
案例--交易系统优化
上下⽂文保存
rpc async call
mailbox.regrpc callback
mailbox.put Task.pause
basic processors
xxx.flow
gen kilim task flow
kilim task wrapper
kilim weaver
aop
rpc proxy
rpc callback mod
kilim pausable inject
kilim pausable remove
mailbox.get
13年8月31⽇日星期六
案例--优惠系统优化
编程模式
flow + plugin
并发/异步
切割rpc call
⾃自定义事件机制
多阶
可重⼊入事件
评测
复杂场景: tps *3, rt /2
商品
资源分配 资源分配
卖家 卖家
商品 商品 商品 商品
跨店
资源分配
Task
rpc async call
上下⽂文构建
Task End
rpc call back
读取原始Task
恢复任务
计算
13年8月31⽇日星期六
挑战
并发与锁
数据依赖识别,并⾏行执⾏行单元划分
代理的代理?
调试复杂度的问题
系统整体升级的问题
13年8月31⽇日星期六
依赖优化
缓存前置
Request/Response
Timeout
流控
13年8月31⽇日星期六
规范
tracing id
pattern
集中式 v.s. 分布式
异步化
log4j 2.x
disruptor
io buffer
问题
GC
⽇日志存储
13年8月31⽇日星期六
⼩小结
平衡
场景化
组件、服务与链路
数字化
细节是魔⿁鬼
合理利⽤用既有的⼯工具
13年8月31⽇日星期六
谢谢
13年8月31⽇日星期六

Contenu connexe

En vedette

Scalable Applications with Scala
Scalable Applications with ScalaScalable Applications with Scala
Scalable Applications with Scala
Nimrod Argov
 
Spark summit2014 techtalk - testing spark
Spark summit2014 techtalk - testing sparkSpark summit2014 techtalk - testing spark
Spark summit2014 techtalk - testing spark
Anu Shetty
 
Hive analytic workloads hadoop summit san jose 2014
Hive analytic workloads hadoop summit san jose 2014Hive analytic workloads hadoop summit san jose 2014
Hive analytic workloads hadoop summit san jose 2014
alanfgates
 

En vedette (20)

Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Arch
 
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
 
Scalable Application Development on AWS
Scalable Application Development on AWSScalable Application Development on AWS
Scalable Application Development on AWS
 
Highly Scalable Java Programming for Multi-Core System
Highly Scalable Java Programming for Multi-Core SystemHighly Scalable Java Programming for Multi-Core System
Highly Scalable Java Programming for Multi-Core System
 
Scalable Applications with Scala
Scalable Applications with ScalaScalable Applications with Scala
Scalable Applications with Scala
 
Hivemall talk@Hadoop summit 2014, San Jose
Hivemall talk@Hadoop summit 2014, San JoseHivemall talk@Hadoop summit 2014, San Jose
Hivemall talk@Hadoop summit 2014, San Jose
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
 
Diary of a Scalable Java Application
Diary of a Scalable Java ApplicationDiary of a Scalable Java Application
Diary of a Scalable Java Application
 
AngularJS training in Luster
AngularJS training in LusterAngularJS training in Luster
AngularJS training in Luster
 
[JSDC 2015] Turf.js - 地理資訊的分析與地圖視覺化
[JSDC 2015] Turf.js - 地理資訊的分析與地圖視覺化[JSDC 2015] Turf.js - 地理資訊的分析與地圖視覺化
[JSDC 2015] Turf.js - 地理資訊的分析與地圖視覺化
 
Writing Scalable Software in Java
Writing Scalable Software in JavaWriting Scalable Software in Java
Writing Scalable Software in Java
 
Spark summit2014 techtalk - testing spark
Spark summit2014 techtalk - testing sparkSpark summit2014 techtalk - testing spark
Spark summit2014 techtalk - testing spark
 
Java scalability considerations yogesh deshpande
Java scalability considerations   yogesh deshpandeJava scalability considerations   yogesh deshpande
Java scalability considerations yogesh deshpande
 
Scalable web architecture
Scalable web architectureScalable web architecture
Scalable web architecture
 
使用 Amazon Rekognition 打造以深度學習為基礎的圖片辨識應用
使用 Amazon Rekognition 打造以深度學習為基礎的圖片辨識應用使用 Amazon Rekognition 打造以深度學習為基礎的圖片辨識應用
使用 Amazon Rekognition 打造以深度學習為基礎的圖片辨識應用
 
Scalable Java Application Development on AWS
Scalable Java Application Development on AWSScalable Java Application Development on AWS
Scalable Java Application Development on AWS
 
Apache Cassandra Lesson: Data Modelling and CQL3
Apache Cassandra Lesson: Data Modelling and CQL3Apache Cassandra Lesson: Data Modelling and CQL3
Apache Cassandra Lesson: Data Modelling and CQL3
 
Hive analytic workloads hadoop summit san jose 2014
Hive analytic workloads hadoop summit san jose 2014Hive analytic workloads hadoop summit san jose 2014
Hive analytic workloads hadoop summit san jose 2014
 
暴走漫画数据挖掘从0到1
暴走漫画数据挖掘从0到1暴走漫画数据挖掘从0到1
暴走漫画数据挖掘从0到1
 
2016 電通安吉斯集團7品牌 暑期實習招生簡章
2016 電通安吉斯集團7品牌 暑期實習招生簡章2016 電通安吉斯集團7品牌 暑期實習招生簡章
2016 電通安吉斯集團7品牌 暑期實習招生簡章
 

Plus de drewz lin

Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
drewz lin
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
drewz lin
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
drewz 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.2
drewz lin
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
drewz 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-wolf
drewz 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-equal
drewz 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-21
drewz lin
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
drewz lin
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
drewz 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_edits
drewz lin
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
drewz 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-exploitations
drewz lin
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
drewz lin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
drewz 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-usa
drewz lin
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
drewz lin
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
drewz lin
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
drewz lin
 
无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu无线App的性能分析和监控实践 rickyqiu
无线App的性能分析和监控实践 rickyqiu
drewz lin
 

Plus de 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
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
 
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
 

天猫后端技术架构优化实践