【问题标题】:Azure Guest OS Family upgrade 2008 to 2012, will deployed apps still work?Azure 来宾操作系统系列从 2008 年升级到 2012 年,部署的应用程序仍然可以工作吗?
【发布时间】:2013-01-11 20:57:20
【问题描述】:

我想将我的 Azure 云服务(Web 角色)的“OS 系列”从“Windows Server 2008 R2”升级到“Windows Server 2012”,这样我就可以使用 .Net 4.5。 Azure 门户中有一个下拉菜单可以进行此更改,但我担心这可能会导致什么样的中断...在此更改期间/之后,我部署的网站是否仍然处于活动状态和功能?

这是我能找到的最好的文档,它没有提到我可以期待什么行为:

http://msdn.microsoft.com/en-us/library/windowsazure/gg456324.aspx

【问题讨论】:

    标签: azure azure-web-roles


    【解决方案1】:

    因此,可以理解 Web 角色是如何发挥作用的,当您上传带有配置的应用程序时,Azure 会将上传的数据与任何虚拟机分开保存。上传的应用程序的后续部署包括创建您选择的全新虚拟机(例如,小型、中型......)。不同的操作系统有不同的虚拟机。一旦预配了预定义类型的虚拟机,您的应用程序就会加载到预配的虚拟机上,然后启动虚拟机(可能会在启动 VM 后进行部署)。因此,现在,回到您的问题,如果您将设置从 OS 2008 更改为 OS 2012,很明显旧的 VM 将被取消配置,并配置一个具有 OS 2012 的新 VM,部署您的应用程序等。因此,会有停机时间。我的经验是,完成此转换大约需要 5 分钟左右。

    【讨论】:

    • 我已经以这种方式部署,并且确实只有短暂的停机时间。总的来说是一次很棒的体验。
    • 顺便说一下,您可以将cscfg文件中的osfamily属性更改为4,以便在部署时自动选择Windows Server 2012 R2。
    【解决方案2】:

    如果您更改操作系统系列,所有角色和实例都将经历停机时间。这是因为 OSFamily 是服务配置的一部分,它是整个应用程序的设置。如果您的 Azure 应用程序中只有 Web 角色或辅助角色或两者兼有,则更改此设置将适用于所有角色和实例。

    配置更改应用到应用程序后,整个服务都会更新。这样想,如果你有多个实例到一个角色,你不想用新配置和一半旧配置运行一半实例,因为这可能会产生大问题。因此,更新所需的应用程序配置确实需要停机时间。已经有基于分段和生产槽的部署可用于减少停机时间。

    如果您想避免停机,您可以执行以下操作:

    1. 当您的生产应用程序已经在运行时,将 OSFamily=3 (Windows Server 2012) 的新应用程序部署到暂存槽
    2. 根据需要测试暂存应用程序
    3. 一旦您的登台应用程序按预期工作,请在门户中执行“VIP SWAP”。 VIP 交换会将您的暂存部署推送到生产环境,在不到一秒的时间内,您将拥有运行 Windows Server 2012 的应用程序。

    【讨论】:

    • 如果我不采用 VIP 交换方法并就地启动升级,它会自动将我的应用程序带入新环境还是必须重新部署?
    • 如果您使用就地更新应用程序,您的虚拟机将拥有您选择的新操作系统系列,然后您的应用程序将运行它,您无需重新部署它。请务必在 Windows Server 2012 中测试您的应用程序,以确保您的应用程序不会让您感到意外。
    猜你喜欢
    • 1970-01-01
    • 2020-10-15
    • 2015-03-23
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    相关资源
    最近更新 更多