Azure释放并发症

时间:2013-01-02 10:26:03

标签: azure release-management

我们正在考虑构建一个Web应用程序并依赖Azure。此应用程序背后的主要思想是用户能够在云中的特定任务上一起工作。我很乐意寻求即时发布的概念,用户不会因停机而烦恼,但我不知道如何实现这一目标(如果可能的话)。让我们说10.000用户正在使用这个web应用程序,我发布了带有数据库更新的软件。

  • 当我将新版本的软件发布到Azure时会发生什么?
  • 我的穷人用户的精彩工作会怎样?
  • 在发布新版本之前,我是否应首先关闭网站?
  • 我可以“发布”并让用户在申请新页面后立即享受“新”世界吗?

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

2 个答案:

答案 0 :(得分:3)

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

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

Windows Azure云服务具有生产和暂存部署的概念。新代码部署首先进行分段。然后你可以在那里做一个快速的QA(有时"热身"应用程序以确保它已填充所有缓存 - 但这取决于应用程序设计)并执行" Swap" - 您的暂存部署将变为生产和生产部署变为暂存。这使您能够执行"回滚"如果新代码有任何问题。交换操作相对较快,因为它主要是内部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云服务。

答案 1 :(得分:1)

是的,你可以。

我建议您创建一个visual stdio模板应用程序,并在门户网站管理器中单击您的azure站点时直接查看“staging”和“production”环境。

例如,假设用户使用连接到Sqlserver1的“生产”环境。您将新版本发布到“staging”,该版本也连接到Sqlserver1。然后你只需使用swap切换两个,并且staging成为“生产”环境。

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

“在发布新版本之前,我是否应首先关闭网站?” 我会提出一个警告(如果用户工作会议的东西,等等)在5分钟内说短暂的停机时间,然后在交换机告诉所有人它结束后。