我们目前的程序是:
快照的目的是给它们回滚的东西--比较应用程序不同版本之间的任何行为变化。
我们推出WindowsServer2008r2及以上版本。数据库服务器为Windows 2008r2及以上,Server 2008r2。
我们的QA在所使用的虚拟化方面有点复杂。我们的团队以两种方式工作,一种是在服务器上安装SQL,另一种是将传统的应用服务器/ sql服务器分开。服务器运行在混合存储使用SSD / SAN和SAS驱动器,每个服务器通常有60 4gb的HD,运行4GB的内存。SQL服务器有8gb或更多
最大的缺点是备份环境的速度--在速度和占用空间方面。
我的想法之一是创建一个应用程序/脚本,或者使用一些工具同时备份/快照应用程序服务器和MS数据库。
我想知道其他人是如何用类似于我们所经历的过程来展开变革的。
此外:
发布于 2017-11-08 20:49:25
数据库备份的最大问题是不能简单地快照它们。在拍摄快照时,首先必须确保DB不是中间事务,否则将恢复到不一致的状态。在windows情况下,可以利用Microsoft编写器来快照数据库。您需要确保,当您对VM进行快照时,HyperV能够利用这个VSS编写器。
如果您有一个特别大的数据集,如果您的文件程序具有此功能,并且它可以帮助解决您正在经历的备份的大小/时间问题,则最好使用利用您的存储文件程序使用增量克隆。
在将新应用程序部署到QA方面,有几种方法可以做到这一点。一种是拥有一个自动构建系统,如Jenkins、Travis CI或类似的工具,在代码提交时自动触发备份和部署。这可以通过利用配置管理工具(如SaltStack、Puppet或Chef (它们都运行在PowerShell上)来实现,这些工具可以自动为您设置和配置server,如果您能够用PowerShell编写SaltStack脚本,则可以部署应用程序。就我个人而言,我推荐SaltStack,因为它的反应堆将允许您在备份/快照完成并触发构建时广播信标(Puppet缺乏此功能)。
每次备份VM的一个选择是利用像工头这样的系统,该系统有一个HyperV插件。然后你可以使用SaltStack (vis-à-vis反应堆)。如果备份系统一直阻塞到整个备份完成,或者您的自动构建系统(Jenkins/Travis)与Foreman的REST交互,请求分离主机,这可能是最好的方法。一旦出现这种情况,它将自动与您的配置管理系统签入,以安装SQL服务器并恢复新VM中的快照。如果您将此过程与自动测试电池结合起来,您甚至可以实现一个"Push on Green“系统,如果所有QA测试都通过,您甚至可以在下一个环境中重复这个过程。
使用诸如Foreman这样的中间件的好处是,它将允许您部署到任何虚拟化系统,甚至云中,并防止您被锁定在HyperV中,并使您的环境更加可移植。
我确信还有其他方法可以达到这个目的,但这是我过去用来实现类似部署工作流的一种方法。
https://devops.stackexchange.com/questions/2508
复制相似问题