Azure:管理同一可用性集中的多个 VM

Azure: managing multiple VMs in the same availability set

最近我了解到不建议使用单个 VM 来 运行 我的服务器应用程序,因为 Microsoft 可以在更新时使此 VM 脱机,导致我的服务在一段时间内不可用。

相反,Microsoft 建议使用多个 VM,并将它们放在相同的云服务和可用性集中。微软将确保至少有一台虚拟机在更新时保持在线。 (到目前为止,如果我错了,请纠正我)。

正如我所说,我目前只使用一台虚拟机。我使用 git 来部署我的应用程序更新,我可以简单地使用 SSH 检查虚拟机上的所有内容是否按预期 运行ning。我也在本地 运行 一个数据库,所以一切都是独立的,易于管理。我使用的 VM 是一个简单的 Ubuntu 14.10 服务器。

当我有多个 VM 时,这将如何工作?我是否需要使用 SSH 登录到每台服务器才能进行更改?我是否还需要推送到多个 git 存储库才能更新我的应用程序?如果其中一个虚拟机离线(由于我想使用的缩放设置),这将如何工作?

所以这个问题更像是一个 "What's your opinion on what I should do?" 有很多方法可以解决这个问题。我个人建议您查看 Puppet 或 Chef 来处理您的部署。这允许您通过 "recipes".

管理代码和配置

如果在 "recipe" 之外更改配置,它们将被回滚。 如果服务器离线,当它恢复正常时,部署服务器会发现需要更新并自动跟上服务器。 如果部署第三台(或第四台)服务器,只需将新服务器配置为主服务器进行配置,该服务器将复制到其他服务器。