Azure 释放复杂性

标签 azure release-management

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

  • 当我将软件的新版本发布到 Azure 时会发生什么?
  • 我可怜的用户正在进行的出色工作将会怎样?
  • 在发布新版本之前我是否应该先关闭该网站?
  • 我可以“直接发布”,让用户请求新页面后立即享受"new"世界吗?

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

最佳答案

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 云服务。

关于Azure 释放复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14120389/

相关文章:

git - 哪些 sbt 插件可用于频繁(每天多次)从 git 发布项目?

build - 您如何确保始终拥有可发布的构建?

html - SharedAccessSignature 和 img HTML 标签

c# - 如何从应用程序设置 Azure (webapp) 接收数据到我的 webjob

c# - azure vm windows服务器上的自托管wcf服务

从 IISExpress 切换到完整 IIS 时出现 Azure "role discovery data is unavailable"错误

azure - 从 azure cli 创建服务主体

testing - 项目循环的环境

deployment - 谁负责部署?

java - 为什么 App Engine Java SDK 一下子从 1.43 跳到了 1.50?