于涛:WebAPP开放平台的系统架构设计-腾讯于涛

fayejames

贡献于2013-09-25

字数:0 关键词: 软件架构

WebApp开放平台的 系统架构设计 于涛 - Kinvix 腾讯社交网络事业群(SNG) 2012.09 SACC2012SACC2012 A-PDF Watermark DEMO: Purchase from www.A-PDF.com to remove the watermark 个人简介 腾讯 腾讯高级工程师 腾讯AlloyTeam负责人 主要负责腾讯Q+开放平台、WebQQ、以及其他一些WebApp业 务。 HTML5梦工场 深圳负责人 HTML5技术推广 HTML5技术沙龙 HTML5 CodeJam活动 3D地图引擎 SACC2012SACC2012 WebQQ WebApp开放平台 SACC2012SACC2012 Q+ 桌面 WebApp in QQ SACC2012SACC2012 App Store 用户 7.5 亿活跃用户 百亿级好友关系 海量用户关系链 日均在线 6.3 小时 SACC2012SACC2012 系统架构 业务架构 广点通 UDC Monitor监控 云支付 运维质量分析系统 Feeds AppInfo Push系统 SNS App接入平台 VM 服务引擎 配置引擎 AppStore OpenID 云服务 统计分析系统 开发者工具 开发者 用户 自动发布系统 日志分析系统 自动化监控 伯努利系统 安全模块 前端 Webkit引擎 App管理平台 内容运营系统 CGI 后台 状态上报 IE引擎 运维 SDK SACC2012SACC2012 应用接入流程 核心系统架构 client Webkit IE VM AppStore APP App 消息中心 个人中心 conn CGI CDN 开发者网站 管理 后台 AppInfo Push SNS UDC OpenID Feeds SACC2012SACC2012 后台架构 统一 配置 管理 中心 APPSTORE IM DESKTOP 云存储 OIDB 频率限制 第三方 系统 …… LOG Q+的后台架构图 CGI管理引擎 配 置 引 擎 安全模块 模板引擎 服务引擎 状 态 上 报 统 一 命 名 网 络 通 讯 负 载 均 衡 容 错 模 块 HTTPProxy 监控系统 SACC2012SACC2012 海量服务 2000W活跃用户 支撑5000/s的HTTP请求 对异步、并发模式的支持提高了机器负载能力,尤其是防 雪崩能力 高可用性设计 容错处理(机器故障或单点故障) 可靠度达到99.99% 过载保护 cpu、内存、请求队列监控,超过发之后自我保护; CGI立体化监控 动态加载 定义层,执行层 部署设计 关键服务独立部署,其他服务混合部署; SACC2012SACC2012 高开发效率 目标:5分钟开发一个安全高效CGI 统一命名服务:给后台的服务统一命名,使用后台某个服 务时,只需要提供服务的名称和相关参数,然后就可以自 动调用,无需开发人员关注各种环境、安全、监控、容灾 等问题; 不需要考虑安全问题 不需要考虑复杂的网络环境 不需要考虑监控 不需要考虑容错、过载保护 只需要关注业务逻辑 安全设计 旁路频率限制模块:可针对ip、uin限制 XSS:平文本、富文本 CSRF UIN加解密 验证码 脏词过滤 业务鉴权:PTLOGIN、群角色、好友关系 SACC2012SACC2012 前端架构 SDK 开放平台OpenAPI架构 平台基础接口 用户信息 窗口设置接口 获取好友 Web 前端 VM CGI 客户端 OpenID第 三方部分 第三方 Server Feeds动态 邀请 分享 安全 云支付 OpenID 封装所有客户端和CGI层的API接口 API权限控制 SACC2012SACC2012 VM架构设计 Seamless :“编译”后随平台输出 如:Facebook 、人人网、淘宝等 安全可控,实现难度大,灵活性不够 Sandbox:以 iframe 嵌入平台 如:QZone、百度开放平台等 可控性不足,实现难度低,同源策略 VM架构设计 SACC2012SACC2012 VM架构设计 Webapp启动 加载appinfo中的 CGI地址 CGI跳转应用首页 是否载入VM 应用加载完成 否 加载qplus.api.js 创建iframe加载VM是 Webapp启动 加载appinfo中的 VM地址 VM创建iframe,加 载CGI 应用加载完成 CGI跳转应用首页 重构前的应用 加载过程 重构后的应用 加载过程 VM架构优化结果 优化后平均每次访问App可以节省1秒 如果按App每天有1000w次的总访问量,每天节省的时间 可以乘飞机绕地球55圈 SACC2012SACC2012 子系统架构 开放平台Feeds系统 SACC2012SACC2012 设计难点 好友关系链扩散,存储压力大 内容更新快,缓存策略挑战大 访问速度要求 第三方触发海量feeds写操作 Feeds SACC2012SACC2012 Feeds 1. 读写分离 2. 最近更新时间戳 、索引 、数据三级缓存处理 3. 数据预处理 4. 适度的降级体验 5. 第三方海量feeds的延迟写保护 6. 利用客户端优势:本地缓存,昵称、备注等 7. feeds来源多:msgQ异步消息解耦 推送架构 SACC2012SACC2012 云支付架构设计 广点通 SACC2012SACC2012 广点通 反作弊系统 运营管理系统 数据接口层 广告自助系统 广告承载系统 数据发布服务 计费系统 广告主 站长 网站主自助 管理系统 广告受众 运营人员 运维架构 SACC2012SACC2012 运维架构 伯努利系统:智能分析系统 日志分析系统 Monitor监控 自动化监控 自动发布系统 运维质量分析系统:每天会出运营质量报告 自动发布系统——前台 SACC2012SACC2012 自动发布系统——后台 日志分析系统 SACC2012SACC2012 Thank you! 微博:@Kinvix

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档

相关文档