前端 & 服务器<br />郑新林<br />
分享的主题<br />前端的代码结构。<br />我们需要什么样的服务器 。<br />前端的开发框架。<br />
前端的代码结构图<br />
前端的代码开发图<br />
当前的问题<br />集中式管理的问题:<br />分支庞大,效率不高。<br />分支间可能存在互相干扰。<br />
优化方案分析 – 拆封<br />A产品<br />B产品<br />C产品<br />(新)各个产品线独立更新<br />
拆分代码结构<br />
拆分代码结构<br />
我们需要什么样的服务器<br />稳定性,稳定压倒一切<br />发布效率,效率!!!<br />优良的性能<br />
拆分后的优势<br />产品线独立,互相不干扰。<br />分支体积变小,提高操作效率。<br />发布不阻塞。(需要发布平台支持)<br />
现行的发布流程<br />集合,一起通过独木桥<br />
拆分后的发布流程<br />各找各妈,各回各家<br />
AONE上面如何变化<br />发布过程几乎和原来一样<br />发布窗口是原来的N倍<br />选择代码分支的地方,选择变多<br />发布的产品线变多<br />….<br />OPS怎么办? 三头六臂~<br />
发布窗口的控制问题<br />Why OPS <br />绕过OPS!!!<br />权限下放,人人都能发布到预测试<br />大家愿意么?<br />Aone的现有流程能保证分支不丢失<br />
发布流程控制<br />发布流程:<br />Aone获取发布权<br />锁定不让其他发布介入<br />Aone发布<br />QA预发布验证<br />成功<br />失败<br />响应,发布上线<br />版本回滚<br />预发布成...
改进能带来什么?<br />发布效率,让发布不再煎熬<br />响应更迅速,不再纠结发布窗口锁定<br />
我们应该改变Aone<br />而不是被aone改变<br />相比他们,我们对于前端服务器的需求更清晰<br />改变Aone, Why not?<br />
前端开发框架<br />代码结构<br />服务器<br />其实都是前端开发框架的一部分<br />
前端开发框架<br />对多人、多团队的开发 提供良好的支持<br />开发、测试环境(本地、线上)<br />测试工具、方法,测试框架( 略…. )<br />
本地开发环境<br />
本地开发环境<br />$include(“core/core.js”);<br />$include(“lib/template.js”);<br />$include(“http://style.china.alibaba/online/c...
版本控制<br /><html><br /><script src=“style/online/cbu/search/2.0/yyyy.$!{JSV_yyyy}.js”></script><br />Aone发布脚本<br />cbu/sear...
SVN代码结构<br />Dev model<br />online model<br />Model updated<br />
VS独角兽方案<br />独角兽<br />发布代码与分支一样<br />独角兽提供线上merge<br />解决缓存问题<br />问题:<br />版本问题,文件的多版本并存问题没有解决<br />js文件多级include的文件变动探测问...
Facebook的静态服务器<br /><ul><li>静态资源模块化GWT 类似的 PWT
智能分配资源</li></ul>不仅仅是页面级别<br />用户行为分析<br />魏小亮<br />
Upcoming SlideShare
Loading in …5
×

前端&服务器

1,214 views

Published on

  • Be the first to comment

前端&服务器

  1. 1. 前端 & 服务器<br />郑新林<br />
  2. 2. 分享的主题<br />前端的代码结构。<br />我们需要什么样的服务器 。<br />前端的开发框架。<br />
  3. 3. 前端的代码结构图<br />
  4. 4. 前端的代码开发图<br />
  5. 5. 当前的问题<br />集中式管理的问题:<br />分支庞大,效率不高。<br />分支间可能存在互相干扰。<br />
  6. 6. 优化方案分析 – 拆封<br />A产品<br />B产品<br />C产品<br />(新)各个产品线独立更新<br />
  7. 7. 拆分代码结构<br />
  8. 8. 拆分代码结构<br />
  9. 9. 我们需要什么样的服务器<br />稳定性,稳定压倒一切<br />发布效率,效率!!!<br />优良的性能<br />
  10. 10. 拆分后的优势<br />产品线独立,互相不干扰。<br />分支体积变小,提高操作效率。<br />发布不阻塞。(需要发布平台支持)<br />
  11. 11. 现行的发布流程<br />集合,一起通过独木桥<br />
  12. 12. 拆分后的发布流程<br />各找各妈,各回各家<br />
  13. 13. AONE上面如何变化<br />发布过程几乎和原来一样<br />发布窗口是原来的N倍<br />选择代码分支的地方,选择变多<br />发布的产品线变多<br />….<br />OPS怎么办? 三头六臂~<br />
  14. 14. 发布窗口的控制问题<br />Why OPS <br />绕过OPS!!!<br />权限下放,人人都能发布到预测试<br />大家愿意么?<br />Aone的现有流程能保证分支不丢失<br />
  15. 15. 发布流程控制<br />发布流程:<br />Aone获取发布权<br />锁定不让其他发布介入<br />Aone发布<br />QA预发布验证<br />成功<br />失败<br />响应,发布上线<br />版本回滚<br />预发布成功,则QA响应发布流程,发布上线<br />预发布失败,则发布服务器撤销刚才的发布,释放发布窗口<br />
  16. 16. 改进能带来什么?<br />发布效率,让发布不再煎熬<br />响应更迅速,不再纠结发布窗口锁定<br />
  17. 17. 我们应该改变Aone<br />而不是被aone改变<br />相比他们,我们对于前端服务器的需求更清晰<br />改变Aone, Why not?<br />
  18. 18. 前端开发框架<br />代码结构<br />服务器<br />其实都是前端开发框架的一部分<br />
  19. 19. 前端开发框架<br />对多人、多团队的开发 提供良好的支持<br />开发、测试环境(本地、线上)<br />测试工具、方法,测试框架( 略…. )<br />
  20. 20. 本地开发环境<br />
  21. 21. 本地开发环境<br />$include(“core/core.js”);<br />$include(“lib/template.js”);<br />$include(“http://style.china.alibaba/online/cbu/common/alitalk.js”);<br />function main(){<br /> // TODO XXXX<br />}<br />
  22. 22. 版本控制<br /><html><br /><script src=“style/online/cbu/search/2.0/yyyy.$!{JSV_yyyy}.js”></script><br />Aone发布脚本<br />cbu/search/yyyy.src.js => cbu/search/yyyy.js <br />aone根据当前应用的大版本号 2.0 ,将合并后的代码,发布到<br />cbu/search/2.0/yyyy.vnamber.js<br />version file (jsv_yyyy = vnumber)<br />后端服务器 获取 version file,模板相应更新脚本请求<br />
  23. 23. SVN代码结构<br />Dev model<br />online model<br />Model updated<br />
  24. 24. VS独角兽方案<br />独角兽<br />发布代码与分支一样<br />独角兽提供线上merge<br />解决缓存问题<br />问题:<br />版本问题,文件的多版本并存问题没有解决<br />js文件多级include的文件变动探测问题,没有解决<br />需要服务器支持<br />需要后端应用支持<br />前述方案<br />代码发布时,需要aone合并代码<br />线上代码是静态的<br />多版本并存<br />解决缓存问题<br />问题:<br />版本文件累积(回收机制)<br />需要后端应用支持<br />
  25. 25. Facebook的静态服务器<br /><ul><li>静态资源模块化GWT 类似的 PWT
  26. 26. 智能分配资源</li></ul>不仅仅是页面级别<br />用户行为分析<br />魏小亮<br />
  27. 27. Thank You<br />

×