首页 > 能否介绍一些版本控制+版本部署+测试+上线+abtest的互联网后台开源项目

能否介绍一些版本控制+版本部署+测试+上线+abtest的互联网后台开源项目

大一点的互联网公司基本上都有自己的后台管理系统。程序员可以下载代码进行修改,然后上传进行autotest,之后测试人员在进行测试,然后上线进行abtest等。
而小公司一般就用svn或是git等,当服务器增多就会比较麻烦。并且也不方便测试~
不知道有没有相关的开源项目,能够实现上述的这些功能~ 还请大牛们多多指点!


大公司也没你说的那么吓人,我以前在的几家公司,很多部门开发流程其实也很原始。不过我们当时实践过一些方案,应该业内还比较通用,分享一下。

你提的问题我们当时是通过实施CI(持续集成)来解决的,使用的工具是Hudson,这里强烈推荐一下,比Curise Control要好用不少。

对于Java Web项目,我们一般会搭建三套服务器,分别是:test、alpha、product,对应:日常测试环境、alpha测试环境、线上环境(可能多台)。

日常开发流程大致为:

  1. 程序员提交代码
  2. Hudson每天凌晨会自动从Git/SVN上检出代码进行自动编译构建(通过Maven,Ant或脚本),并发布到test服务器上。(期间会用脚本自动替换相应的环境配置文件,如DB连接等)
  3. 第二天程序员过来查看Hudson上的构建结果,其中包含:编译是否成功、单元测试结果(由Maven或Ant执行)、单元测试覆盖率(Cobertura、Emma或Clover等生成)、功能测试结果(如Selenium)、静态代码检查结果(Checkstyle、Findbugs、PMD等)
  4. 测试人员对test服务器进行测试。测试中若有问题,开发人员可以随时修改提交代码,并立即触发重新构建部署到test(一键完成),一分钟后测试人员即可继续测试。
  5. 产品经理和Leader随时从test服务器上看到产品状态和团队进度。

当项目进入alpha测试阶段时,我们会在每日构建时多部署一份到alpha环境上(例如可能是一台有外网IP的服务器),这样测试人员以及用户测试员就可以在更接近真实线上环境的alpha环境中测试了。

最后,当一切测试都OK准备上线时,手工触发一次部署到product服务器的构建(脚本里必须做好足够的备份工作)即可做到一键上线,当然相应的还有一键回滚(如果上线失败的话),不过一般来说上线过程都有运维人员在场,万一有个三长两短也来得及补救。

之后我们做Android开发项目,也类似如此,只是将部署到Java Web服务器改为了发布apk包到一个ftp/http下载服务器,由测试人员去下载最新版本到手机进行测试。

这里面当然还有很多细节的东东,比如项目间依赖管理、部署必须做到out-of-box、环境配置文件切换等,但大致来说整个流程如此。

【热门文章】
【热门文章】