我们正在考虑构建一个 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/