豆瓣阅读中的持续集成和发布实践

豆瓣阅读中的持续集成和发布实践

ID:27713847

大小:1.20 MB

页数:34页

时间:2018-12-04

豆瓣阅读中的持续集成和发布实践_第1页
豆瓣阅读中的持续集成和发布实践_第2页
豆瓣阅读中的持续集成和发布实践_第3页
豆瓣阅读中的持续集成和发布实践_第4页
豆瓣阅读中的持续集成和发布实践_第5页
资源描述:

《豆瓣阅读中的持续集成和发布实践》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、豆瓣阅读中的持续集成/发布实践豆瓣孙毅豆瓣阅读豆瓣阅读是豆瓣读书推出的数字阅读服务拥有质量一流的内容支持Web、iPad、iPhone、Android、Kindle等多种设备提供极佳的阅读体验社会化阅读WhyCI?减少风险减少重复过程任意时间,地点可部署可见性信心场景1-开发本地服务起不来了?依赖!提交了才发现问题?开发服务器网速赶不上手速…问题分析开发环境复杂且不统一本地构建困难本地没有快速反馈机制解决方案本地的统一的虚拟开发环境订阅上游依赖变更,用puppet管理大家一起贡献模块基准开发工具包简单便捷的本地ci订阅上游依赖变更必要性包依赖开发环境必须和线上环境同步升

2、级公司内部的服务依赖,lib依赖版本升级现状:RSS订阅依赖更新消息不是很先进,但是还算可靠大家一起贡献模块必要性项目众多,每一个项目依赖和工具不同现状:fork,pull-requestPuppet主文件中用注释进行特性开关基准开发工具包工具的种类/版本工具的配置现状:静态检查单元测试Web测试简单便捷的本地集成(1)pylint/jshint基准开发工具包包含工具随项目代码进行检查项配置gitpre-commithook简单便捷的本地集成(2)unittest/apitest不干扰本地开发服务coveragenosy/tag/etc..简单便捷的本地集成(3)web

3、测试headlesswebdriverjserrorcollectionhtmlerrorcollectionxunit对比beforenow只能在服务器开发可迁移/可定制的完整本地开发环境先提交,再跑集成测试,改bug本地先进行测试,再提交web测试只能在中心服务器本地web测试场景2-提交好大一个diff!懒得review合入的时候咋办啊。。这功能谁搞挂的?问题分析review流于形式分支合并成本高问题定位困难解决方案git/pull-requestgit分支的切换和合并成本极低以pull-request作为review单元鼓励更多提交,强制review后合并rev

4、iew覆盖面,针对性和参与度高几乎每次merge都会触发构建pull-request的粒度保证问题追查较容易通过构建job通知提交作者对比beforenow定期review,覆盖面小每个pull-request必须reviewreview意见很难定位到行响应也不及时review精确到行,提醒机制完善修复一目了然写一大堆再合并提交天天合并/提交(5个月,1275个pull-request,2725个review意见,全体参与)构建diff太大,出问题不知道谁的几乎每个构建只有1-2个merge(5个月,900次构建)场景3-构建大家都喜欢下班前提交跑一遍要20分钟!CI服

5、务器又排队。。跑了15分钟才告诉我没通过:(merge把主干搞挂啦问题分析分支集成不足cisuite反馈速度慢无法获取阶段结果持续集成服务器资源问题解决方案(1)基于openingpullrequest的分支持续集成解决方案(2)构建链/测试分级corelintpylintjshintyuicheckutunitestapitestservicetestwebtestcorefullservice-syncrelease-tagstaging-regressiononline解决方案(3)冗余计算资源利用虚拟机开启jenkins-slave模块即接入ci系统控制node

6、的tag来分配接入的job对比beforenow中心ci只跑主干代码的cisuite活动中的pull-request分支均有自己的cisuite,结果更新在pr记录中静态检查4min任务分拆并行化,关键任务11s/42s后续任务1min48s所有任务在中心服务器上排队“下午4点的困扰”大家贡献slave,大大提高了突然峰值下的执行速度,自己的任务已经可以由自己的slave全部消化cisuite中的job过大过长先跑核心,再dailybuild全量提交构建控制在10min场景4-交付上哪个版本?XX不在,怎么上线来着?手抖了。。怕出线上问题啊…解决方案(1)继承cisui

7、te的版本状态监测/标记提交构建打包打tag解决方案(2)特性开关重大变更均使用feature-switchswitch多种状态,可在线切换解决方案(3)直接从ci集成自动化上线从cisuite传入可上线的tag由jenkinsjob自动执行远程脚本直接点击按钮触发待解决的问题移动端前端ut提速Q&A您也可以通过以下方式找到我:豆瓣主页:http://www.douban.com/people/tachikoma/Email:sunyi@douban.comThanks

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。