Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
百度贴吧LAMP架构
Search
Reeze Xia
July 01, 2013
Technology
1
1.3k
百度贴吧LAMP架构
百度贴吧架构的发展历史及未来
Reeze Xia
July 01, 2013
Tweet
Share
More Decks by Reeze Xia
See All by Reeze Xia
HHVM: A High Performance PHP Engine
reeze
3
130
百度贴吧HHVM应用实践
reeze
6
1.3k
百度贴吧服务端性能优化实践
reeze
5
1.7k
Other Decks in Technology
See All in Technology
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
150
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
210
FOSS4G 2024 Japan コアデイ 一般発表25 PythonでPLATEAUのデータを手軽に扱ってみる
ra0kley
1
150
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
1
2.1k
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
230
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
31
9.6k
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
830
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
130
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
130
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
2
920
Going down the RAT hole: Deep dive into the Vuln-derland of APT-class RAT Tools
nttcom
0
490
Microsoft Intune アプリのトラブルシューティング
sophiakunii
1
470
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Statistics for Hackers
jakevdp
796
220k
GitHub's CSS Performance
jonrohan
1030
460k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Designing for Performance
lara
604
68k
Why Our Code Smells
bkeepers
PRO
334
57k
A better future with KSS
kneath
238
17k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
The Language of Interfaces
destraynor
154
24k
RailsConf 2023
tenderlove
29
900
Transcript
百度贴吧LAMP架构 夏绪宏 @reeze PHPCon China 2013|
AGENDA 1. 贴吧简介 2. 贴吧架构发展历史 3. 架构现状及未来
None
贾君鹏你妈妈喊你回家吃饭 关于贴吧架构,元芳,你怎么看? ⽩白富美,⾼高富帅
TECHNOLOGY STACK • Nginx • C/PHP • Mysql、分布式数据库 • Memcached
• NoSQL ์ϔ Nginx C PHP MySQL Memca ched NoSQL
概况 • 30+⼦子系统 • 200+模块 • ⼗十亿级PV • 亿级提交量 •
T级数据
贴吧架构发展历史
• 三个阶段 1. 性能稳定性优先 2. 迭代速速优先 3. 平台化,运维效率,敏捷,⾃自动化优先 架构演进 ྟି
םս ᄎົ
性能优先 • 产品开始功能较少:⾸首⻚页,主题列表及帖⼦子 • 追求性能和稳定性
历程 • 08年 :C前后端,专有存储 • < 1亿PV < 400w发帖 •
业务规模⼩小,迭代慢 • 业界缺乏成熟开源⽅方案
历程 • C编写业务实现成本偏⾼高 • 项⺫⽬目动辄⼀一两个月,周期太⻓长 • 新项⺫⽬目越来越多,对迭代开发速度开始要求
迭代开发速度优先 • 09年-10年 • 存储更多采⽤用MySQL • 前端PHP化 • 异构后端,增加交互中间层
交互中间件 • 统⼀一资源定位,负载均衡 • 屏蔽交互细节,后端可以是任何的协议和数据打包格式。 • 后端资源配置收敛,简化运维 • 资源包括:后端C模块,LAMP模块,Mysql,cache等 •
以PHP扩展形式实现:除⾮非真的很必要,不要⽤用扩展。
问题 1. 业务规模开始变⼤大,模块增多 2. 并⾏行开发问题 3. C模块运维代价上升 4. 后端开发效率不⾼高
• 11年 ~:规模,业务爆发 • ⼗十亿级PV,亿级提交 • 40+前端模块,70+C后端模块 • 每周~100+并⾏行项⺫⽬目 •
移动⽆无线业务爆发式增⻓长 平台化,可运维
历程 • 11年- ~:规模,业务爆发 • 通⽤用化,集群化 • 前后端LAMP化 • 服务化:系统划分,API
LAMP化 • C -> PHP • 有状态 -> ⽆无状态 Share
Nothing • 专有存储 -> 通⽤用存储 • RPC: ⾃自有协议 -> HTTP协议
性能下降 • 预期之内 • 响应时间变⻓长:PHP本⾝身的性能消耗 • 吞吐下降
LAMP化 1. ⾼高层cache nginx cache: • 减少php消耗。节省~50%+机器 • 2ms ->10ms
-> 2ms 2. 并⾏行化:后端请求并⾏行化 Cache DB
• 后端调⽤用串⾏行变并⾏行 • 185ms -> 63ms • 只是理想情况 • 现实业务⽐比这复杂
理想架构 • 开发效率:快速迭代,并⾏行开发,简单统⼀一的规范 • 运维上线效率:⾃自动化运维,可扩展 • 可扩展:可插拔,模块化,系统划分 • 开发速度 +
运维效率 > 性能
⽔水平分层
08年的贴吧模块依赖关系
⼦子系统划分
全流程平台化 • 开发:基准环境 快速构建 • 测试:持续集成, 在线测试OTP • 上线:快速上线,⾃自动化上线 •
运⾏行环境:ORP (Online Runtime Platform) • 在线监控:OMP(Online Management Platform) षؿ ҩ൫ ഈཌ ᄎྛ ࡓ॥
、 w( Re( k( 8V@ <=5;G 7s( ^~ #
0r 8V@ 5;G zs( $ "! gL zsNX 6a $ $ $ $ [M( ^~ `&to "! _I( H+Y <=Y H+Y QB( v| * jT9hE 0r 8V@ -, n}O( % -, uwbm n}H+q fu?\ .x/2 d]?\ A3q HDS 'i1C *yJ) ZlH'iK W4DS>P 'i:U u'i u?\bm {NX zsNX /}pc -FNX NX H+NX
、 w( Re( k( 8V@ <=5;G 7s( ^~ #
0r 8V@ 5;G zs( $ "! gL zsNX 6a $ $ $ $ [M( ^~ `&to "! _I( H+Y <=Y H+Y QB( v| * jT9hE 0r 8V@ -, n}O( % -, uwbm n}H+q fu?\ .x/2 d]?\ A3q HDS 'i1C *yJ) ZlH'iK W4DS>P 'i:U u'i u?\bm {NX zsNX /}pc -FNX NX H+NX
测试:持续集成 • ⾃自动(架构,编码)规范检查 • 减少QA⼈人⼒力成本 • 提⾼高代码质量
运维 1. 上线,扩容流程复杂,⾃自动化程度不⾼高。 2. 模块混部,关联复杂,⼿手动维护代价⾼高 3. 资源利⽤用率不⾼高
运维 • 构建⾃自有PaaS云平台:ORP(Online Runtime Platform) ★ 统⼀一运维 ★ 资源隔离: 资源保证
★ 充分利⽤用资源 ★ 弹性调度
w( Re( k( 8V@ <=5;G 7s( ^~ # 0r
8V@ 5;G zs( $ "! gL zsNX 6a $ $ $ $ [M( ^~ `&to "! _I( H+Y <=Y H+Y QB( v| * jT9hE 0r 8V@ -, n}O( % -, uwbm n}H+q fu?\ .x/2 d]?\ A3q HDS 'i1C *yJ) ZlH'iK W4DS>P 'i:U u'i u?\bm {NX zsNX /}pc -FNX NX H+NX
架构模型
收益 • 上线效率: 30-45分钟 -> 5-10分钟 • ⼈人⼒力成本降低:中⼩小产品线⽆无需专⻔门OP • 机器利⽤用率提升:总体节省约40%+
上线质量保证 • 分级灰度发布 • ⾃自动化在线功能测试 • 实时监控整合 • 及时发现上线问题,控制影响 ೬އ
ֆ ྐ ຩ๙
-* #%$ ) +
" & " " " " " " " " " .' / (,!
CONCLUSION • LAMP化 • 运维效率,平台化,⾃自动化。 • 展望: • 基础性能优化:Nginx, PHP
• 云平台的进⼀一步优化:打通全流程,⾃自动化上线等。
贴吧欢迎你 • Talk to me • Resumes are welcome •
Email:
[email protected]
• Follow me:微博 @reeze • http://github.com/reeze • http://www.php-internals.com 说好的PHP 执⾏行及Zend
引擎呢?
参考 1.《贴吧LAMP解决⽅方案》http://stblog.baidu-tech.com/?p=1324 2.《⽼老⺩王的技术博客》http://blog.sina.com.cn/zgwangbo001