4

我们正在考虑构建一个 Web 应用程序并依赖于 Azure。该应用程序背后的主要思想是用户能够在云中共同完成特定任务。我很想采用即时发布的概念,让用户不必担心停机时间,但我不知道如何实现这一点(如果可能的话)。假设目前有 10.000 名用户正在使用此 Web 应用程序,并且我发布了带有数据库更新的软件。

  • 当我将软件的新版本发布到 Azure 时会发生什么?
  • 我可怜的用户正在进行的精彩工作会发生什么?
  • 我应该在发布新版本之前先关闭网站吗?
  • 我可以“刚发布”,让用户一请求新页面就享受“新”世界吗?

我很惊讶在 Azure 中找不到任何有关发布策略的信息,我是不是找错地方了?

4

2 回答 2

3

Windows Azure 是一个很棒的平台,具有许多不同的功能,可以简化许多软件管理任务。但是,请记住,无论您使用多么出色的平台,您的应用程序都取决于适当的系统架构和代码质量——编写良好的应用程序将完美运行;写得不好的应用程序将失败。所以不要指望 Azure 会解决你所有的问题(但它可能会帮助你解决很多问题)。

What happens when I publish a new release of my software into Azure?

Windows Azure 云服务具有生产和暂存部署的概念。新代码部署首先进入暂存阶段。然后您可以在那里进行快速 QA(有时“预热”应用程序以确保它已填充所有缓存 - 但这取决于应用程序设计)并执行“交换” - 您的暂存部署变为生产,生产部署变为暂存。这使您能够在新代码出现任何问题时执行“回滚”。交换操作相对较快,因为它主要是内部 DNS 切换。

What will happen to the brilliant work in progress of my poor users?

在最低站点负载(夜间)执行代码部署总是一个好主意。有时这是不可能的,例如,如果您的应用程序被全球组织使用。那么你应该使用“最低”的活动时间。

为了保护用户,您可以实施解决方案,例如每 X 分钟发生一次的“自动草稿保存”。但是,如果您的应用程序旨在与云系统一起使用,那么用户在新代码发布期间不应看到任何功能故障。

Should I bring the site down first before I publish a new release?

这取决于您的应用程序的体系结构。如果应用程序设计得非常好,那么您不需要这样做。我使用的 Windows Azure 应用程序每月发布一次新代码,并且从一开始(过去两年)我们就不必关闭该站点。

我希望这能让您更好地了解 Azure 云服务。

于 2013-01-02T12:49:40.477 回答
1

是的你可以。

我建议您创建一个可视化 stdio 模板应用程序,并查看在门户管理器中单击您的 azure 站点时直接位于的“登台”和“生产”环境。

例如,用户在连接到 Sqlserver1 的“生产”环境中工作。您将新版本发布到也连接到 Sqlserver1 的“staging”。然后,您只需使用 swap 切换两者,staging 就变成了“生产”环境。

如果他们将某些内容存储在会话或服务器缓存中,我不确定他们的工作会发生什么。估计他们会迷路。但是客户端的东西会无缝地工作。

“我应该在发布新版本之前先关闭网站吗?” 我会提出一个警告(如果用户使用会话内容等),说在 5 分钟内有短暂的停机时间,然后在切换后告诉所有人它已经结束。

于 2013-01-02T11:51:34.057 回答