nim*_*cap 79 agile automation scrum development-environment
每当新开发人员加入团队或计算机时,开发人员都在使用更改,开发人员需要做大量工作来设置本地开发环境以使当前项目正常工作.作为一个SCRUM团队,我们正在尝试自动化所有内容,包括部署和测试,所以我要问的是:是否有工具或实践使本地开发环境设置自动化?
例如,为了设置我的环境,首先我必须安装eclipse,然后安装SVN,Apache,Tomcat,MySQL,PHP.之后我填充了数据库,我不得不对各种配置文件进行微小的改动等等......有没有办法将这种劳动减少到一键?
Pet*_*aat 65
有几种选择,有时这些选项的组合很有用:
有关各种选项的详细信息:
自动安装 工具,用于自动安装和配置工作站的各种服务,工具和配置文件:
磁盘映像 当然还有磁盘映像工具,用于存储已配置主机的映像,以便可以将其还原到另一台主机.与虚拟化一样,这对于测试盒来说尤其不错,因为它很容易将事物恢复到干净的状态.保持最新状态仍然是一个问题 - 是否值得制作新图像只是为了传播配置文件的变化?
虚拟化是另一种选择,例如制作Xen,VirtualPC或VMWare映像的副本以创建新主机.这对于测试盒尤其有用,因为无论测试产生什么样的混乱,您都可以轻松地恢复到干净的已知状态.与磁盘映像工具一样,保持主机最新需要比使用自动安装/配置工具更多的手动步骤和警惕性.
源代码控制 一旦安装/配置了必要的工具,那么构建应该是从源代码存储库中检查所需内容并构建它.
目前我使用上述的组合来自动化该过程,如下所示:
Jon*_*han 19
我偶然发现了这个问题,并且很惊讶没有人提到过Vagrant.
正如Pete TerMaat和其他人所提到的,虚拟化是管理和自动化开发环境的好方法.Vagrant基本上消除了设置这些虚拟盒子的痛苦.
几分钟内,你可以有你最喜欢的Linux发行版启动和运行的完整拷贝,并置备完全相同的方式您的生产服务器.
不再与OSX或Windows争夺安装PHP,MySQL等.所有软件都在虚拟机内部运行.你甚至可以通过SSH进行操作vagrant ssh
.如果你犯了错误或打破了某些东西,只需要vagrant destroy
它,并vagrant up
重新开始.
Vagrant会自动为您的本地文件系统创建一个同步文件夹,这意味着您无需在虚拟机中进行开发(即使用Vim).使用您选择的编辑器.
我现在为几乎每个项目创建一个新的"Vagrant box".我的所有设置都保存在项目存储库中,因此很容易引入另一个团队成员.他们只需要拉回购物,然后跑vagrant up
,他们就准备好了.
这也使得处理具有不同软件要求的项目变得更加容易.也许你有一些依赖PHP 5.3的项目,但是一些运行PHP 5.4的新项目.只需为该项目安装所需的版本即可.
sle*_*ske 13
重要的一点是在源代码管理中设置项目,以便您可以在结帐后立即构建,部署和运行.
这意味着您还应该检查辅助基础结构,例如Makefile,ant buildfiles等,以及工具的设置,例如IDE项目文件.
这应该照顾个别项目的设置麻烦.
对于基本机器设置,您可以使用标准图像.另一种选择是使用平台的工具自动安装.在Linux下,您可以创建一个依赖于您需要的所有包的元数据包.在Windows下,使用MSI等应该可以进行类似的操作.
编辑:
理想情况下,您可以检查允许构建生成帮助程序基础结构的信息,而不是检查帮助程序基础结构.这是例如GNU构建系统(autotools等)或Maven采用的方法.这更加优雅,因为您可以(理论上)为任何(支持的)构建环境生成基础结构,因此您不必绑定到例如一个特定的IDE,并且辅助基础结构(路径等)中的设置不需要复制主要项目设置.
然而,这也是一种更复杂的方法,所以如果你不能让它工作,我相信直接检查IDE文件之类的东西是可以接受的.
小智 7
我喜欢使用Virtual PC或VMware来虚拟化开发环境.这提供了可以在开发人员之间共享的标准"开发环境".您不必担心用户可能添加到他们的系统中的软件可能与您的开发环境冲突.它还为我提供了一种方法来处理两个项目,其中开发环境不能同时在一个系统上(使用两个不同版本的核心技术).