Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PyCon2013China_Bj_DAE

Zoom.Quiet
December 20, 2013

 PyCon2013China_Bj_DAE

http://cn.pycon.org/2013/beijing
洪强宁 DAE系统的设计

Zoom.Quiet

December 20, 2013
Tweet

More Decks by Zoom.Quiet

Other Decks in Technology

Transcript

  1. About Me • 洪强宁 / hongqn • 2002年开始接触Python • 2004年开始完全使⽤用Python⼯工

    作 • 2006年加⼊入⾖豆瓣,现任⾸首席架 构师 • www.douban.com/people/ hongqn/ • [email protected]
  2. up

  3. Instance • web • gunicorn • service • gunicorn +

    customized worker • daemon • zookeeper
  4. 两级结构 Load Balancer (nginx) Gateway (nginx) App (gunicorn) App Starter

    unix socket fallback start Node 1 Gateway (nginx) App (gunicorn) App Starter Node 2
  5. 基础服务API • mysql • memcache • doubandb, doubanfs • moosefs

    • beanstalkd • cdn • statsd + graphite • mail • elastic search • irc waylife 监控API调⽤用
  6. 部署 部署界⾯面 部署服务 控制命令 部署进度 节点 Load Balancer 节点 (via

    websocket) ⽣生成配置 更新路由 节点 应⽤用⾃自检 更新代码 重启应⽤用
  7. DAE升级 dev集群 (master branch) beta集群 (beta branch) stable集群 (release branch)

    测试应⽤用 对内应⽤用 对外应⽤用 持续集成
  8. ⾃自依赖 • 通过⼀一个应⽤用部署应⽤用 • 通过⼀一个应⽤用管理应⽤用 • ⼀一个应⽤用 scale 所有应⽤用 •

    ⼀一个应⽤用 serve 跨应⽤用的静态⽂文件 • DAE 的代码托管在⼀一个 DAE 应⽤用上
  9. 内置最佳实践 • 错误收集 - sentry • 在线 profile ⼯工具 •

    预发布环境 • 持续集成 • Code集成 • 打包发布
  10. 内置最佳实践 • 错误收集 - sentry • 在线 profile ⼯工具 •

    预发布环境 • 持续集成 • Code集成 • 打包发布 • 分级上线
  11. 内置最佳实践 • 错误收集 - sentry • 在线 profile ⼯工具 •

    预发布环境 • 持续集成 • Code集成 • 打包发布 • 分级上线 • 服务地址实时推送
  12. 内置最佳实践 • 错误收集 - sentry • 在线 profile ⼯工具 •

    预发布环境 • 持续集成 • Code集成 • 打包发布 • 分级上线 • 服务地址实时推送 cfgpusher 即将开源
  13. 内置最佳实践 • 错误收集 - sentry • 在线 profile ⼯工具 •

    预发布环境 • 持续集成 • Code集成 • 打包发布 • 分级上线 • 服务地址实时推送
  14. QoS