Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
盛大游戏运维体系
盛大游戏运维体系
Wird geladen in …3
×

Hier ansehen

1 von 29 Anzeige

Weitere Verwandte Inhalte

Andere mochten auch (17)

Anzeige

Ähnlich wie Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境 (20)

Weitere von drewz lin (20)

Anzeige

Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境

  1. 1. 服务化与体系化 解决大量定制小项目开发困境 腾讯/广告平台产品部/互动广告研发中心 周健 Version: 2.1
  2. 2.  项目背景  解决方案与实践  效果对比与RIO分析  举例介绍  历程与启示
  3. 3. 项目的背景  项目量:不断增加的活动开发项目,人力无法随之同比例增长  复杂度:广告主的要求越来越高,往往伴随富媒体广告、社交广告等多种形式  高性能:随着活动规模的增长,弱海量服务的需求随之增加  复用性:三地开发组、外包的开发框架不统一,无法最大化复用成果,也无法共享外包资源  可运营:互动活动面对开发、测试、运维、监控、动态运营等方面需要『服务云端化的需求』
  4. 4. 最初的开发方式与弊端  开发方式:LAMP + PHP组件  弊端  部署与发布  运营与升级  监控与告警  性能与并发控制  敏感功能的审查与外包  运营数据集中分析  。。。
  5. 5.  项目背景  解决方案与实践  效果对比与RIO分析  举例介绍  历程与启示
  6. 6. 解决方案 SDK Server Monitor OSS
  7. 7. 解决方案 – 系统的组成 风车应用平台(SDK) 风车管理平台(OSS) 标准组件 FILTER集合 开发运营工具 业务统计 运营支撑 SDK框架与基础库(内置支撑系统API) 开发调试 系统管理 风车支撑平台(Server) 旁路体系 接口机群(内置路由策略) 与其他 存储类服务 逻辑类服务 接口类服务 运营类服务 染色机制 个人信息 抽奖类(2) 兑换码类(2) 即通代理(5) 网管上报 备份机制 活动注册 作品上传类(3) 计数器类(3) 数平代理 恶意检测 同步机制 历史参与活动 Bitmap服务 票据服务 空间代理(4) 统一日志服务 灰度机制 积分存储 发奖服务 秒杀服务 图标点亮(4) 服务质量监控 异步队列 UDS/IP服务 同步转发(4) DB过载保护 通知系统 Cache/DB
  8. 8. 实践1:基础框架标准化
  9. 9. SDK特点  标准MVC实现  实现了目前流行MVC框架的多数特性,包括FILTER、LAYOUT、 SLOT、ORM等)  提供异步消息队列的特性,使得PHP CGI异步化成为可能  内置监控上报、运维安全、测试模式等特性  收集URI用于安全扫描(测试环境)  收集SQL语句用于性能分析(测试环境)  提供DEBUG BAR用于测试发现问题(测试环境)  对PHP SDK重要的监控点自动分项目进行数据上报  内置云服务API及其相关容灾特性  统一框架与类库  所有活动、产品的统一开发框架  内部开发与外包统一的框架
  10. 10. 实践2:服务云端化
  11. 11. 云服务特点  按SET统一进行部署和扩容,服务之间松耦合  统一的无状态接口层屏蔽后台内部实现  灵活的路由机制方便扩容、迁移与隔离服务  支持按照项目、用户ID、命令ID进行路由  支持常规模式与高性能模式  提供染色机制、日志中心服务以快速定位问题  高性能、插片式后台服务
  12. 12. 实践3:运营可视化
  13. 13. 运营平台特点  后台服务可视化  云服务管理与资源分配  云服务的项目配置  云服务的状态查看与数据查询  云服务的报表查看  数据分析与报表展示  云服务接口与公司其他接口调试  SDK配置管理与版本控制
  14. 14. 实践4:监控立体化
  15. 15. 运营质量指标化
  16. 16. 监控平台特点  多维度监控(项目/属性/SET/IP等)  项目自动接入  与SDK集成,接入SDK的所有项目也自动接入SQM,无须申请和 配置  SDK中所有的关键点接入SQM  SDK访问量,访问耗时  DB访问量,访问耗时  云服务访问量,访问耗时  从项目维度,从时间维度,从属性维度进行查看  对项目做PROFILING分析  对项目运营质量评分与排行功能
  17. 17.  项目背景  解决方案与实践  效果对比与RIO分析  举例介绍  历程与启示
  18. 18. 风车使用前后对比 - 开发模式 使用风车前 使用风车后 开发模式 php+memcache+db php+云服务 需求变更操作* 修改代码/迁移数据/重新发布 OSS上修改配置 易用性 编写代码工作量大 自动生成框架/大量辅助工具/云服务 复用性 copy代码 后台服务化 高 低,可外包 对开发人员要求 (进而导致项目外包的风险高) (常用服务/核心服务/敏感服务云端化) 系统稳定性 一般 非常好  “开放是一种能力”。对于项目密集型的团队,外包是个不错的节约成本的选择。尤其 在每个月项目量经常变化的情况下。
  19. 19. 风车使用前后对比 - 性能、运营与安全 使用风车前 使用风车后 性能瓶颈 db瓶颈(A类单机2k/s) 云服务(B类单机50k/s) 请求突发 db大规模扩容和数据迁移 修改配置切换云服务至专区 监控和预警 无(无机制和无实现手段) 系统做自动监控和预警* 过载保护 无 内置DB过载保护 安全性 实现代价大/性能差 提供恶意检测服务和各类web安全机制  在业务变的更复杂、项目量翻倍的情况下,基础告警从2010H2的“日”级别降低到 2011H2的“双周”级别  兑换码、抽奖、投票、计数等云服务 0 故障  监控系统改变了活动开发人员的“运营意识”
  20. 20. 风车项目的部分运营数据  投入人力:开发人员兼职3人全职4人,无产品经理  关键数据(1年半内)  运营质量:1年半之内 0 运营事故  使用情况:SDK累计支持项目502个,云服务累计支撑项目374个  效率提升:单个项目复杂度大幅度提高的前提下,互动广告开发团队 支持项目数同比增长60%,支撑金额上涨94%(2012H1人力无增 长)  难度降低:单项目平均外包费用同比下降35%  2012上半年数据(半年内,仅列举本部门应用)  支撑70个抽奖活动,设置421万个奖品  支撑11个兑换码活动,共计162亿兑换码(行业之最)
  21. 21.  项目背景  解决方案与实践  效果对比与RIO分析  举例介绍  历程与启示
  22. 22. 举例:抽奖  一个常见的抽奖,一般步骤为  检查抽奖资格——积分/次数  检查奖品数量——品种/分布  检查中奖限制——频率/次数  随机中奖,更新奖品数量——并发控制  抽奖的准备工作  奖品数量——N种奖品,数量各异  奖品分布——时段/日期  抽奖的运营  数据导出
  23. 23. 未使用风车的抽奖逻辑代码
  24. 24. 使用了风车的抽奖逻辑代码
  25. 25. HOW?
  26. 26.  项目背景  解决方案与实践  效果对比与RIO分析  举例介绍  历程与启示
  27. 27. 一些历程  团队磨合问题 季度会 + 双周会  SDK与云服务的对接生硬 引入运营平台  各类运行环境的开发与调试问题 支持各类环境,支持外包访问  从逻辑服务到安全与运营服务 引入各类安全相关服务与运营相关服务  收到了报警却不知道出问题的原因 从提供服务到提供解决方案
  28. 28. 一些启示  每种开发语言都有自己的长处和短处,与其费尽心思补齐 短处,不如另辟蹊径  服务云端化不仅可以提升效率,更重要的是服务可控,包 括服务部署、监控告警、版本升级、运营分析等  运营可视化让开发和运维人员更直观的配置各类服务、洞 悉系统状态,及早发现隐患,从而提升运营质量  互联网产业提供的是服务,必须建立有效的立体监控体系, 以保证服务质量
  29. 29. Q&A QQ:539300111 Weibo:黑手如来

×