您没有告诉我们足够的设置来给您具体的答案。这在很大程度上取决于您使用的语言/环境。您可能需要以下一项或多项的组合:
- Vagrant/Chef 或 Puppet/Veewee/VirtualBox 自动构建虚拟机并配置和运行它们。这是假设一个Linux平台。Chef + Linux 容器要快得多,特别是如果您在 ram 磁盘上运行它(它应该是一个可重复的过程,所以只需要存储工件)
- 具有版本控制的包缓存,适用于您需要在 VM 上安装的所有系统包
- 一些运行验收测试的框架,Cucumber,Robot 等等。如果你的单元测试是好的,你也许可以摆脱冒烟测试。
- 系统的模拟,您可以从日志中提供运行时结果,以便了解如何以及何时进行扩展。
您很可能会遇到测试缓慢的问题,因为您必须填充数据库,并且可能必须拆分测试作业。一般来说,让这个工作的反馈循环太慢了,你可能需要非常有创意才能获得可接受的周期时间。
在不同的环境中,有不同的工具可以做到这一点,拥有多个堆栈并没有多大乐趣。Jenkins 在 Java 堆栈上运行,Puppet 和 Chef 在 Ruby 堆栈上运行,Python、c 和 perl 堆栈也有类似的工具。您必须自己决定是否要在集成问题方面拥有一流的水平,还是要自己编写一个堆栈并自己编码。两者都可以工作,而且都不是微不足道的。团队经验很可能是那里的决定因素。
DevOps 中的反馈循环比现代 CI 开发环境差很多,因此您必须预先进行更多的规划和研究。你一天可以运行的实验数量要少得多,至少是 20 倍左右,所以第一次让事情成功是很困难的。确保您有经验丰富的人这样做。