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

发布于 2022-08-24 12:02:22 字数 177 浏览 14 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

二智少女 2022-08-31 12:02:22

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

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

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

日常开发流程大致为:

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

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

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文