怎样组建高效的自动化开发环境?

来源:互联网 发布:钉钉mac 编辑:程序博客网 时间:2024/06/07 12:29

        怎样组建高效的自动化开发环境?

  编辑环境和运行测试环境分离。这意味着开发人员,不管是dev还是ux,可以使用任何她喜欢的系统进行内容的编辑,而其产出可以无缝地运行在另一个统一的环境。无缝是很重要的体验,如果分离意味着在两个系统显示地频繁切换,那还不如不分离;在此基础上的统一的环境则让大家在同一个上下文中交流。

  开发人员可以同时工作在好几个版本下。在途客圈,一个relase(或者一个scrum)以两周为周期,一周开发,一周测试,然后就上线,如图所示:

  这意味着在任何一周,开发人员同时工作在3个不同的branch上,以week 3第一天为例:Dalian已经部署到线上,Edingburgh交付测试,而Florence正在开发中。开发人员能够无痛地在这三个环境中任意切换,就像任务调度一样,保存上下文,切换到另一个branch,开始工作。作为小团队,我们不希望甚至不可能将有限的人员切成三份来运作,所以应该通过工具支持这种开发状态。

  什么是VAGRANT?

  也许我对他的理解不太确切:一套自动化创建,部署和使用虚拟机的工具。vagrant 原生支持virtualbox,这就足够了。通过一系列CLI命令,我们可以很方便地操作虚拟机。

  创建并运行虚拟机:

1
2
3
$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box 
$ vagrant init lucid32 
$ vagrant up

  登入虚拟机:

1
$ vagrant ssh

  打包虚拟机:

1
$ vagrant package --vagrantfile Vagrantfile.pkg

  基准box。每天半夜从GitHub pull相应branch的代码,并辅以对应的database,自动打包成一个基准box。每个活跃的branch每天都会有一个新的基准box。基准box保存一周足矣。大家新的一天工作的基础是基准box。

  任意一个box都是一个沙箱,它包含和线上环境同版本的操作系统,运行环境。同时里面有对应branch的代码库和数据库。数据库采用线上数据库的一个子集,可以让系统正常运行即可。box和用户的host OS间可以共享目录,比如说代码的目录,这样可以让用户通过host OS上的个性化编辑环境撰写代码。此外,box里的port和host OS的port要能一一映射,这样用户完全具有本地的测试体验。

  这样的话,我们就组建了自动化测试环境。

原创粉丝点击