如何更新托管在 Azure 规模集中的网站
How to update website hosted in Azure Scaleset
假设我有一个 azure sql (paas),它前面有一组 VM,每个 VM 都包含一个托管在 IIS 中的网站。在规模集前面,我有一个仅用于网站更新目的的流量管理器(每当我需要更新时,我都会使用具有最新版本的 VM 创建第二个规模集,并且在部署第二个规模集之后,我会更改流量管理器以将流量路由到新创建的规模集)。该网站是 100% 无状态的。在我创建第二个规模集之后,问题就出现了:我如何 运行 在 sql azure db 上推出脚本而不打扰使用旧网站版本的客户?
我正在考虑对数据库使用镜像或某种方式在第二个 azure 数据库上复制事务,同时 运行在其上同时部署脚本。然后我只需要切断实时规模集的流量并等待会话耗尽,然后切换到新的规模集。这是一个好方法吗?我看到我失去了我真正需要的 "always on" 能力。我真的不知道最佳实践,一本书或 link 将受到高度赞赏。
简而言之,即使是计划中的应用程序更新,我也想保持 "highly available as possible" 的状态。我怎样才能做到这一点?
尝试或考虑再拥有 1 个 SQL Azure 数据库。您的流量管理器还可以指示 2 SQL Azure 数据库中的哪个处于活动状态。将更改部署到被动数据库,然后更新流量管理器数据库以使被动数据库成为新的主动数据库。
假设我有一个 azure sql (paas),它前面有一组 VM,每个 VM 都包含一个托管在 IIS 中的网站。在规模集前面,我有一个仅用于网站更新目的的流量管理器(每当我需要更新时,我都会使用具有最新版本的 VM 创建第二个规模集,并且在部署第二个规模集之后,我会更改流量管理器以将流量路由到新创建的规模集)。该网站是 100% 无状态的。在我创建第二个规模集之后,问题就出现了:我如何 运行 在 sql azure db 上推出脚本而不打扰使用旧网站版本的客户?
我正在考虑对数据库使用镜像或某种方式在第二个 azure 数据库上复制事务,同时 运行在其上同时部署脚本。然后我只需要切断实时规模集的流量并等待会话耗尽,然后切换到新的规模集。这是一个好方法吗?我看到我失去了我真正需要的 "always on" 能力。我真的不知道最佳实践,一本书或 link 将受到高度赞赏。
简而言之,即使是计划中的应用程序更新,我也想保持 "highly available as possible" 的状态。我怎样才能做到这一点?
尝试或考虑再拥有 1 个 SQL Azure 数据库。您的流量管理器还可以指示 2 SQL Azure 数据库中的哪个处于活动状态。将更改部署到被动数据库,然后更新流量管理器数据库以使被动数据库成为新的主动数据库。