SlideShare uma empresa Scribd logo
1 de 73
Baixar para ler offline
QQ空间技术架构之峥嵘岁月

      腾讯Qzone平台
             徐晓
自我介绍

 2006 – 北京邮电大学软件工程学士毕业
 2006 – 加入腾讯 参与Qzone研发工作
 经历
 Qzone 3.0 / 4.0 / 5.0 / 6.0 重构
 Qzone日志重构、平台提速
 Qzone平台框架化(开放平台原型)
 腾讯Web前端开发专家
我们的海量服务

5.5亿活跃用户
             数十亿级全站PV


过万台设备
               数十P级UGC
                存储量

数千万级同时在线
           每天千亿级的服务请求
目录

石器时代 – 从十万在线到百万在线

冷兵器时代 – 百万在线到千万在线

现代战争时代 – 数千万在线向亿级在线

总结
石器时代 如何生存
Qzone 2.0 客户端
Qzone 1.0 – 2.0 服务架构
                 *.qzone.qq.com

            电信                      网通


                          Apache
   Apache




   server                  server



   cache                    cache


   MySQL                   MySQL
Qzone 2.0 典型载入逻辑
     数据服务A




 数据服务B       Qzone框架   用户机器




     数据服务C
种种苦闷

Windows Client App不利于问题定位

服务接入层压力大

服务集群没有发挥出应有服务能力
没有办法的办法
     50万在线限制




    排队时请用户玩游戏
轻量化框架

客户端Web RIA化
 HTML页面生成由前端页面进行

 服务系统故障影响降低

 Javascript逻辑开发迭代更快捷
个人主页
整个页面代码




   将入口框架的计算降到最低
用户基本信息
效果

客户端Web RIA化

 降低服务器CPU消耗 40%+

 节约DC的输出带宽约 30%+

启用qhttpd
Web服务器组件优化

自研qzhttp

 接入能力比Apache(非FastCGI模式)提高3倍

 最适合团队的配置管理方法

 无需大幅改变接入单元的编程风格
分析个人主页



        日志
             个人资料




  留言板
             音乐
首页逻辑
   日志模块




相册模块          Qzone框架   用户机器




       音乐模块
问题

同时依赖日志、相册、音乐、留言的服务
 短板效应一损俱损

 具体业务容量无法差异化
首页载入性能优化

研究用户访问模型
 拉取展现 : UGC内容变更 =   7 : 1
                     ?
 用户间互访频繁,看他人 : 看自己 =        ?
                             5 : 1
有6/7的访问可以不需要拉取最终数据
首页内容静态化系统
实施效果


首页展现速度提升   5s  3s
用户不再需要玩小游戏等待

设备基本不变 在线迅速突破 1,000,000
收获

自研组件优势

站点前后端逻辑合理分解

按用户行为模型发挥架构最大能力
Qzone 3.0 稳健上线
石器时代 – 从十万在线到百万在线

冷兵器时代 – 百万在线到千万在线

现代战争时代 – 数千万在线向亿级在线
冷兵器时代 功能的磨砺
一切才刚刚开始

网通,教育网用户很不爽!

每一次发布版本留守2小时!

手机关机要罚款!
怎么回事?

服务容量限制…

跨网访问问题…

发布策略不够严谨…

依赖服务多发生故障一损俱损…
解决网通资源
                *.qzone.qq.com

           电信                       网通
                                         教育网
                         qzhttp
                          qhttpd
 qzhttp

                    专线
                                         海外

  server                  server



  cache                    cache


 storage                  storage
一个世界

不再需要开通时区分用户接入

数据层服务得到简化

通用解决其他小运营商问题
跨网访问

静态资源下载量大
 静态资源请求次数 : CGI请求数 =   10 : 1
采用CDN系统

用户还是反馈慢
CDN的DNS路由
很多悲剧
跳出DNS拘束
优化思路
用户爽了

大部分教育网用户问题解决

多级支持的思路成为公共方案
故障是常态

低ARPU、低成本、低价机器、大集群

版本迭代快 每周发布版本

用户对故障和低效的容忍度非常低
用户容忍度曲线
操作单元多接口依赖
1s 内必须响应

服务分级
 区分为关键和非关键两大类

动态超时
 高峰期服务更平滑 (EMA算法)

多层容错
 浏览器到各级服务器的容错
多层容错
                       user.qzone.qq.com/
                       *.qzone.qq.com *
          客户端容错
                              公网
          HTTP 304                      LVS
          JSON Data Default                   qzhttp


                                   L5
 server




                      cache


                     storage
柔性可用
柔性可用
飞翔的同时更换翅膀

空间10min打不开给我们的启示
 更换翅膀不是瞬间的过程

 发布方案作为技术评审的一部分

 影响用户的版本发布严格执行灰度发布策略
小版本灰度控制
大版本灰度策略
Qzone 5.0 上线
石器时代 – 从十万在线到百万在线

冷兵器时代 – 百万在线到千万在线

现代战争时代 – 数千万在线向亿级在线
现代战争 立体化运营
新的问题来了



配合上线一个App要用一周?!
平台和应用架构分离
平台和应用架构分离

          Qzone 框架
日志
     应用插件区           表现插件区

                               装扮
相册                      装扮插件
     模块     二级页面

                        活动插件   活动
留言


心情


     关系     资料     权限
音乐
简单配置后上线
    无需平台做代码级变更
问题



神马?深圳出口光缆被挖断了?!
鸡蛋不能都放一起




                  x
           服务分布从深圳走向全国
IDC分布



写        读   写
                  读




             更新

    深圳            其他城市
问题



如何快速发现和解决用户的问题?
服务器流量监控
接口调用监控
前端测速监控
前端调用错误监控
用户自助
持续体验优化
持续体验优化
持续体验优化
持续体验优化
持续体验优化




    第一片数据更早到达

    浏览器可分段解析
如何根据资源控制渲染
收获

全国甚至全球的分布运营能力

全方位的立体化监控能力

各个逻辑层持续优化能力
目录

石器时代 – 从十万在线到百万在线

冷兵器时代 – 百万在线到千万在线

现代战争时代 – 数千万在线向亿级在线

总结
峥嵘岁月的启示

百万在线
 高性能

千万在线
 高可用性

面向亿级在线
 高可运营性
腾讯《海量服务之道》系列

    Set模型          灰度升级
            全网调度

 过载保护   立体监控   自动部署    柔性可用


        先扛住再优化            干干净净
大系统做小              边重构边生活

        有损服务
               动态运营
谢谢

Mais conteúdo relacionado

Semelhante a 徐晓 Qq空间技术架构之峥嵘岁月

1.4亿在线背后的故事
1.4亿在线背后的故事1.4亿在线背后的故事
1.4亿在线背后的故事llkk0914
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验guiyingshenxia
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验colderboy17
 
微信201204
微信201204微信201204
微信201204drewz lin
 
微信之道201204
微信之道201204微信之道201204
微信之道201204shaomeng shi
 
腾讯技术讲座:1.4亿在线背后的故事
腾讯技术讲座:1.4亿在线背后的故事腾讯技术讲座:1.4亿在线背后的故事
腾讯技术讲座:1.4亿在线背后的故事Tian Wang
 
千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江imShining @DevCamp
 
Challenges and opportunities computing Kuo-Yi Chen
Challenges and opportunities computing   Kuo-Yi ChenChallenges and opportunities computing   Kuo-Yi Chen
Challenges and opportunities computing Kuo-Yi Chenkuoyichen
 
移动互联网服务端架构介绍
移动互联网服务端架构介绍移动互联网服务端架构介绍
移动互联网服务端架构介绍arganzheng
 
1.4亿在线背后的故事(1)
1.4亿在线背后的故事(1)1.4亿在线背后的故事(1)
1.4亿在线背后的故事(1)liqiang xu
 
腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事mysqlops
 
1.4亿在线背后的故事(1)
1.4亿在线背后的故事(1)1.4亿在线背后的故事(1)
1.4亿在线背后的故事(1)tanhaiwei0222
 
Qq game后台架构及开发介绍
Qq game后台架构及开发介绍Qq game后台架构及开发介绍
Qq game后台架构及开发介绍mysqlops
 
大鱼架构演进
大鱼架构演进大鱼架构演进
大鱼架构演进Jun Liu
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境drewz lin
 
从网格计算到云计算
从网格计算到云计算从网格计算到云计算
从网格计算到云计算Riquelme624
 
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)Tim Y
 

Semelhante a 徐晓 Qq空间技术架构之峥嵘岁月 (20)

1.4亿在线背后的故事
1.4亿在线背后的故事1.4亿在线背后的故事
1.4亿在线背后的故事
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
微信201204
微信201204微信201204
微信201204
 
微信之道201204
微信之道201204微信之道201204
微信之道201204
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
腾讯技术讲座:1.4亿在线背后的故事
腾讯技术讲座:1.4亿在线背后的故事腾讯技术讲座:1.4亿在线背后的故事
腾讯技术讲座:1.4亿在线背后的故事
 
千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江
 
Mocha Bsm
Mocha BsmMocha Bsm
Mocha Bsm
 
13 11-08
13 11-0813 11-08
13 11-08
 
Challenges and opportunities computing Kuo-Yi Chen
Challenges and opportunities computing   Kuo-Yi ChenChallenges and opportunities computing   Kuo-Yi Chen
Challenges and opportunities computing Kuo-Yi Chen
 
移动互联网服务端架构介绍
移动互联网服务端架构介绍移动互联网服务端架构介绍
移动互联网服务端架构介绍
 
1.4亿在线背后的故事(1)
1.4亿在线背后的故事(1)1.4亿在线背后的故事(1)
1.4亿在线背后的故事(1)
 
腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事
 
1.4亿在线背后的故事(1)
1.4亿在线背后的故事(1)1.4亿在线背后的故事(1)
1.4亿在线背后的故事(1)
 
Qq game后台架构及开发介绍
Qq game后台架构及开发介绍Qq game后台架构及开发介绍
Qq game后台架构及开发介绍
 
大鱼架构演进
大鱼架构演进大鱼架构演进
大鱼架构演进
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
 
从网格计算到云计算
从网格计算到云计算从网格计算到云计算
从网格计算到云计算
 
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
 

Mais de drewz lin

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearydrewz 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
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2drewz 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
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈drewz lin
 

Mais de drewz lin (20)

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
 
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
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
 

徐晓 Qq空间技术架构之峥嵘岁月