为软件部署创build新的VM

在工作中,我们正在将我们的生产应用程序迁移到虚拟机基础架构,并且非常好。

我们正在抛出的一个想法与我们的软件部署过程有关。 这个想法是,当我们部署一个应用程序,而不是部署到一个现有的虚拟机,我们将创build一个新的虚拟机,部署应用程序,testing,然后一旦看起来很好,将其添加到负载平衡器。

我们期望的一个主要优势是,这将有助于控制我们的testing和产品环境configuration之间发生的漂移。 如果我们在每次部署时都将虚拟机抛弃,那么即使有人对单个服务器进行更改,也不会持续很长时间。 (尽pipe我们认为虚拟机方法仍然有帮助,但最终我们正朝着集中式configurationpipe理的方向发展。)

有人有这方面的经验或想法吗? 我的一个同事提出的一个挑战是,我们可能需要迁移到每个虚拟机一个应用程序,以便在部署其中一个应用程序时,我们不会被迫在同一个虚拟机上closures多个应用程序。 另一个潜在的问题是在部署过程中有多个具有相同主机名的虚拟机。

会有兴趣听到你的经验和想法。 这对我的组织来说是一个相当新的领域。

我认为每次部署到一个新的虚拟机是一个好主意。 只要您有一个stream程来testing每个应用程序,然后再切换到生产环境,则每个虚拟机具有多个应用程序就不会成为问题。 您应该能够创build一个自定义启动脚本,为每个虚拟机提供唯一的主机名,以避免与生产虚拟机发生冲突。

有几件事(我确定还有更多),你需要考虑:

  • 你将如何维护你的主虚拟机configuration,以克服其他虚拟机configuration,并阻止人们进行无意的更改,从而进入生产
  • 如何实现从testing到生产的虚拟机交换自动化,以及可选地将它replace的旧虚拟机从生产负载平衡器中提取出来。