2010-10-29 183 views
0

我已经在Windows Azure和亚马逊Web服务EC2上工作了好几个月(几乎已经到了多年的范围),并且我看到了一些反复出现的问题, 。在EC2和Windows Azure上部署项目

当我将.NET构建部署到Windows Azure中成为Web角色(或服务角色)时,通常需要6-15分钟才能启动。在AWS的EC2中,启动映像需要大约相同的时间,然后需要一两分钟的时间才能将应用程序部署到IIS(当然,其设置尚未完成)。

但是,当我用SUSE Linux & Mono启动AWS实例以运行.NET时,我在大约2-3分钟内(在安装完成之后再次获取这些启动并部署的代码之一)。

什么是Windows操作系统映像,导致他们花了很长时间才能在云中启动?我不想要FUD,我对引发这一点的具体细节感到好奇。任何关于此的具体技术信息将不胜感激!谢谢。

回答

2

正如在PDC上宣布的,Azure很快就会开始提供完整的Azure Web角色的IIS。在Don Box的主题演示中,他表示这允许您使用Visual Studio中的标准“发布”选项快速部署到云中。

如果我记得没错,启动一个新的Azure角色会发生什么情况的一部分是配置网络组件,并且我记得在会议上有人发言说这非常耗时。这可以解释为什么添加额外的实例到一个已经运行的角色通常更快(但并非总是如此:我已经看到这需要超过15分钟以上)。

编辑:也见this PDC session

2

我不认为EC2行为是特定于云的。只需比较本地系统上Windows和Linux的启动时间 - 根据我的经验,Linux只是启动速度更快。通常情况下,这是因为启动的服务/恶魔的数量较少,每个启动时需要进行的磁盘访问次数也较少。

至于Azure发布时间:很难说,也不能与机器靴(IMO)相提并论。没有人知道Azure在启动应用程序时会做什么。这可能是因为他们需要首先组装VM映像,或者发生大量记录/报告会减慢速度。

2

不要忘记,有一个Fabric控制器需要检查故障区域并跨多个故障区域部署您的VM(以便为您提供高可用性,至少在存在两个以上的实例时)。我不能肯定地说,但是这种逻辑本身可能需要一些额外的时间。这也可以解释为什么网络设置可能会有点复杂。

这当然会解释云启动时间与本地或亚马逊窗口的启动时间之间的差异(如果有的话)。操作系统的任何差异完全取决于操作系统的构建方式!