`

中国雅虎的开发、测试及上线流程

阅读更多
引自一个工程师的博客,来源已不详,感谢
中国雅虎的开发流程沿袭了 Yahoo 的开发流程,乍看之下很平常,对于已经熟悉的工程师来说还显得枯燥,但后来我特别留心了这套流程之后,非常惊奇于它的严谨和高效,所以这里要详细说明一 下。Yahoo 的内部生产线分为三个相互独立的环境:开发环境、测试环境和生产环境(即线上环境)。这三个环境虽然独立,但它们的配置都会尽量保持一致,这样就可以保证 开发完成的产品不会因为环境不同而出现问题。在开发的时候,我们会在开发环境中搭建虚拟环境,开发完毕之后开发工程师会自己在虚拟环境里面测试,保证没有 大的问题,然后就会把所有相关文件打包上传到雅虎全球统一放置产品包的地方。上传完毕之后,就会发邮件通知 QA 部门相关人员,邮件内容里面要写明产品在测试环境的部署步骤:需要安装哪些包、是否需要修改数据库等等。然后 QA 就会开始测试,如果发现 BUG 就会写到 Bugzilla 中,指派给相应的开发工程师,开发工程师就会在开发环境中定位BUG并修正,修正一些BUG之后就会再次打包升级产品的版本,然后QA 会将新的软件包部署到测试环境验证之前的 BUG 并报告新的 BUG 。整个测试过程中可能要发布好多个版本,直到所有 BUG 被修正为止。修正完毕所有的 BUG 之后,开发工程师就会填写上线申请,Ops 看到申请之后就会安排一个时间把产品部署到生产环境。一般来说,生产环境不止会有一台机器,所以 Ops 会先从生产环境摘下一台机器部署,部署完毕之后会告知 QA 和开发工程师,然后 QA 和开发工程师就会修改 Hosts 文件,配置域名指向那台机器进行线上的测试,如果测试没有问题,那么就会把软件包部署到生产环境中所有的机器上,完成上线;否则就进行回滚,取消这次上 线,也不会影响到线上的用户。

整个流程大概就是这样,但是要特别注意的是以下几点:1. 开发工程师只能接触开发环境。他所能做的就是在开发环境中开发、改 BUG 和打包上传。如果他去测试环境中修改 BUG,就很有可能忘记修改开发环境中的相应代码,这可能会导致产品测试通过但是上线之后却发现大的问题。 2. 产品“封版”之后就不可以做任何改动,如果有改动,即使只改动了一点所有功能也要重新测试一遍。所有的 BUG 都修改完毕之后的那个版本就会进行“封版”,那就标志着这个产品随时可以准备上线了。如果真的发现了新的 BUG 要修改的话,那么修改之后就需要重新打包重新走一遍完整的测试流程,只有这样才能够保证就算修改代码过程中引入了新的 BUG 也不会被遗漏。 3. 上线手册要详细。开发工程师要详细写明每一个步骤,不只是说明性的文字,还要把具体的安装和修改命令完整地放上去,如果写得好的话,那么 Ops 的同事只需要把上线手册里面的命令逐行复制到服务器上运行就可以完成上线。

这样的流程有什么好处呢? 首先,它最大地降低了上线风险。因为开发工程师不能接触到测试环境,只能打包让QA测试,所以完整经过测试的产品上线之后基本不会有什么问题,况且上线的 时候我们也要先部署到一台机器上进行测试之后才会决定是否上线,即使上线不成功也可以在不影响用户的情况下回滚。中国雅虎的上线极少会出现问题,很多时候 我们上线到半夜只是因为那个时间段用户访问量最小,而不是说焦头烂额地忙活几个小时一直到半夜才上线成功。其次,它使得各个部门职责分明。开发工程师和 QA 通过 Bugzilla 沟通,和 Ops 通过上线手册沟通,因为沟通渠道唯一而且清晰,所以就可以完全责任到人,出了问题也很容易定位到具体环节。比如说,如果产品测试通过之后在上线的时候出现 了问题,那么基本就可以确定是 Ops 操作失误或者上线手册没有写好。职责分明之后很多事情也变得有条理,大家就可以各司其职、专注本职工作并且合作愉快,开会的时候也可以明确知道需要哪些人 参加。

完善、清晰的流程从根本上解决了一些问题,创建了一个非常好的环境,这样我们就可以把心思都放在如何开发和测试上面,而不用担心诸如“如何上线才能 不出错”等琐碎的事情。所以尽管中国雅虎的高层那么不靠谱,我工作得还是很开心,因为这个流程保证了管理层再怎么乱开发也不会乱。记得那时候很喜欢改 BUG ,有时候改得兴起会把之前版本遗留的 miss BUG 一并改掉,加班也是颇有兴致,不是很能明白为什么网上大部分程序员讨厌加班讨厌得要死。现在我明白了。
分享到:
评论

相关推荐

    阿里巴巴收购雅虎中国案例分析

    并购的结果是阿里巴巴集团获得了雅虎中国的全部资产,包括门户、搜索、即时通讯等多个业务板块,同时得到了雅虎10亿美元的投资和雅虎品牌及技术在中国的独家使用权。雅虎则通过这次交易获取了阿里巴巴40%的经济利益...

    雅虎中国——招聘试题

    再来,Web开发技术在雅虎中国的招聘中占据重要地位。HTML、CSS和JavaScript是构建网页的基础,应聘者需要熟悉前端框架如React、Vue或Angular,以及相应的库如jQuery。后端开发则涉及服务器端编程,如Node.js、Spring...

    雅虎中国首页全屏可伸缩可关闭广告代码.rar

    雅虎中国首页全屏可伸缩可关闭广告代码

    软件测试方法和技术(又名全程软件测试,电子版,朱少民著)

    此书不仅适合测试从业者作为学习和参考的教材,也对那些希望提升软件质量的开发人员、项目经理及对软件测试感兴趣的读者具有很高的参考价值。通过本书,读者可以领略到软件测试的内在逻辑,掌握测试过程中的关键技巧...

    雅虎天气城市代码

    ### 雅虎天气城市代码解析与应用 #### 一、引言 随着信息技术的发展,气象数据成为人们日常生活中不可或缺的一部分。雅虎天气作为一款知名的天气预报服务提供商,以其准确性和便捷性受到广大用户的喜爱。然而,在...

    matlab开发-雅虎实时数据反馈

    对于`matlab开发-雅虎实时数据反馈`,它可能说明了如何将这个功能集成到现有的MATLAB环境中,或者提供了使用此功能前的注意事项。 最后,`@yahooRT`可能是一个MATLAB的类定义文件,它定义了一个名为`yahooRT`的类,...

    雅虎.docx

    雅虎的笔试环节包括技术类和非技术类测试。非技术类笔试主要考察逻辑思维和问题解决能力,而技术类笔试则涉及编程和算法等相关知识。分享的笔试题目和经验可以帮助求职者提前准备。 10. **面试经验** 雅虎的面试...

    雅虎屏幕取色器

    雅虎屏幕取色器,这是一款专为网页设计人员和开发人员量身打造的实用工具,它以其高效、便捷的特性在业内广受好评。这款软件的绿色版设计,意味着无需安装,不带任何广告或插件,确保了用户的使用体验纯净无干扰。只...

    swift-AppDevKit雅虎的iOSApp开发库

    总的来说,Swift-AppDevKit是雅虎为iOS开发者提供的一款强大而全面的开发工具集,它不仅提供了基本的开发功能,还有丰富的动画库和UI组件,以及辅助的测试和调试工具。通过使用AppDevKit,开发者可以更专注于创新和...

    阿里巴巴并购雅虎中国案例分析报告模版.doc

    阿里巴巴并购雅虎中国案例分析报告模版.doc

    yahoo 查反链工具(雅虎中国 和 雅虎)

    雅虎作为历史悠久的搜索引擎,其反链数据库相对全面,提供的反链信息往往被SEO从业者视为参考标准。通过使用这个工具,你可以看到哪些网站链接到你的站点,这些链接的锚文本是什么,以及它们的PageRank等关键信息。...

    2021-2022年收藏的精品资料中国雅虎离去股权缠斗中的牺牲者.doc

    这篇文档主要讨论的是雅虎中国在股权纷争和业务调整中的衰落历程,以及与阿里巴巴之间的复杂关系。文章提到了雅虎中国对于中国互联网发展的重要影响,从张朝阳的搜狐到周鸿祎的3721,雅虎中国在早期扮演了关键角色。...

    某科技并购雅虎中国.pptx

    本文主要讨论的是某科技公司并购雅虎中国这一重大事件,涉及的知识点主要包括雅虎公司的背景、并购的原因、动因、过程以及结果分析。 雅虎公司是一家全球知名的互联网公司,提供多元化服务,包括导航、广告、企业...

    雅虎开源代码汇集

    Grunt是一个基于任务的JavaScript项目构建工具,用于执行诸如代码编译、测试、压缩等开发工作流中的任务。通过编辑`Gruntfile.js`,开发者可以定制他们的构建流程,提高开发效率。 `package.json`是Node.js项目的...

    从雅虎到阿里巴巴

    此外,我也参与了一些后端开发工作,使用PHP进行服务端编程,这些经历让我更加全面地理解了整个Web应用的开发流程。 #### 七、从雅虎到阿里巴巴 最终,随着中国雅虎工程技术部的迁移,我们也一同加入到了阿里巴巴...

    雅虎香港中国区产品运营商.pptx

    本文档所展示的“雅虎香港中国区产品运营商.pptx”,揭示了雅虎在2004年如何布局中国市场,提供了深入的技术支持和广泛的商业解决方案。 首先,雅虎利用其国际商机服务,推出了Yahoo! Business finder,这是一款...

    PHP实例开发源码—雅虎php音乐爬虫.zip

    在本压缩包“PHP实例开发源码—雅虎php音乐爬虫.zip”中,包含了一个PHP编程实践项目,该项目主要用于爬取雅虎音乐网站的数据。这个实例主要展示了PHP在网络爬虫开发中的应用,帮助开发者了解如何利用PHP进行数据...

    matlab开发-从雅虎获取股票信息

    在MATLAB中从雅虎获取股票信息是一种常见的金融数据分析任务,可以帮助我们实时或历史地获取股票市场数据,进行各种计算和分析。以下是对这个主题的详细讲解: 首先,`getStockInformation.m` 文件很可能是实现这个...

Global site tag (gtag.js) - Google Analytics