在EC2与Windows Azure上部署项目

时间:2010-10-29 18:08:54

标签: azure amazon-ec2 amazon-web-services azure-web-roles

我已经使用Windows Azure和亚马逊网络服务EC2了好几个月了(几乎达到了几年的范围)而且我已经看到一遍又一遍,这似乎令人不安。

当我将.NET内容部署到Windows Azure中成为Web角色(或服务角色)时,启动通常需要6-15分钟。在AWS的EC2中,启动映像大致相同,然后花一两分钟将应用程序部署到IIS(当然是待设置)。

然而,当我使用SUSE Linux& A启动AWS实例时单声道运行.NET,我得到其中一个启动并在大约2-3分钟内部署代码(再次,等待它设置)。

Windows操作系统映像会导致它们在云端启动时间过长吗?我不想要FUD,我很想知道导致这种情况的具体细节。任何有关此的具体技术信息将不胜感激!感谢。

3 个答案:

答案 0 :(得分:2)

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

至于Azure发布时间:很难分辨,也不能与机器启动(IMO)相媲美。没人知道Azure在启动应用程序时的作用。可能是他们需要首先组装VM映像,或者发生大量日志记录/报告,这会降低速度。

答案 1 :(得分:2)

正如PDC所宣布的那样,Azure很快将开始在Azure Web角色上提供完整的IIS。在Don Box的主题演示中,他展示了这使得您可以使用Visual Studio中的标准“发布”选项快速部署到云中。

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

修改:另请参阅this PDC session

答案 2 :(得分:2)

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

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