天蓝色阶段和生产环境的主要区别是什么,特别是对于启动任务?

时间:2011-10-13 05:23:11

标签: azure azure-sql-database azure-storage

任何人都可以告诉我当我们将升级转换到生产环境时发生了什么?

问这个的原因, 当我在我的临时环境中进行测试时,一切正常。 但是当我在web.config和我的exe的配置文件中进行更改时,它在后台运行(启动任务),然后切换到生产,它无法正常工作。

例如: 我有邮件设置在哪里举行它是类似的 Mystaging.cloudapp.net 我改为MyLive.cloudapp.net,然后切换,当我收到邮件时,显示mystaging.cloudapp.net

基本上,我想知道,web.config和Bin目录中发生了什么?????

2 个答案:

答案 0 :(得分:4)

当您切换时,只发生一件事 - 部署接受传入HTTP请求的URL发生更改。没有别的 - 没有重新启动,没有配置更改,没有。这只是一个请求路由更改。

生产和登台部署难以区分(除非您非常努力) - 它们在那里,以便您在需要升级时不会关闭服务。您可以创建分段部署,运行基本检查,然后在分段和生产之间切换 - 服务正在运行并始终接受请求。这是暂存部署的唯一真正目的。它们不用于测试,而是用于无缝更新您的服务。

答案 1 :(得分:4)

除了一件事之外,环境是相同的:它们具有不同的VIP地址(在负载均衡器上外部暴露的IP地址)。当您进行VIP交换时,负载均衡器会重新编程,以便在暂存和生产部署之间切换VIP - 就是这样。 DNS无论如何都没有变化。

还有一些细微差别。例如,现有连接不会(应该被)切断。因此,如果您有一个长时间运行的打开连接,它将在VIP交换期间继续。这可能导致以下情况:。)交换后b。连接正在触及'较旧'的环境,b。)在某些情况下,这也可能导致VIP交换操作本身持续一段时间(通常很快)。

这两种环境的初衷是使升级部署变得容易。您可以在分段中启动另一个更新的部署,进行一些测试,然后切换。大多数用户永远不会注意到任何事情。但是,有一些原因你不会使用这种模式:

  1. 如果更改外部端点(例如,在分段中添加端口443),则无法使用此模式。在这种情况下,您必须删除/新部署 - 请记住负载均衡器正在重新编程,因此端点必须匹配。这个限制可能会在将来消失,谁知道。
  2. 如果你有长期运行,有状态的服务。 VIP互换显然会将整个部署转移到生产环境。如果你在一个工作者角色中有一个小时的工作需要以某种方式与客户端前端进行沟通,那么你可能会遇到问题。
  3. 版本限制。想象一下,如果你在分段中启动另一个与生产相同/相似数据的环境。现在,当您准备进行切换时,您可以连接您的连接字符串,以便环境“生产就绪”。当您这样做时,您将有两个不同的部署开始处理相同的数据。例如,当使用相同的队列时,这变得非常明显。登台中的辅助角色在前端更改之前开始处理生产消息,以更新消息格式或其他一些不兼容性。您会遇到版本控制问题,因为较新的部署开始处理旧数据和错误等问题。这不是不可克服的,只是你需要考虑的问题。
  4. 如果您有(非常)大型部署。想象一下,如果你有几百个实例。在这种情况下很难进行VIP交换,因为a。)需要很长时间才能在分段中旋转很多,b。)由于运行2x实例而变得昂贵,而且c。)你可能不是能够做到这一点,因为您的订阅配额限制。您的配额必须至少是正在运行的实例的2倍。当你看到成千上万的实例时,这是不切实际的。对于凡人来说,配额可以帮助你。