我已经使用Windows Azure和Amazon Web Services EC2工作了好几个月了(几乎到了年限),我一遍又一遍地看到一些似乎令人担忧的事情。
当我将一个构建到Windows Azure中的.NET部署到一个web角色(或服务角色)中时,它通常需要6-15分钟才能启动。在亚马逊网络服务的EC2中,启动镜像所需的时间大致相同,然后再花一两分钟将应用程序部署到IIS上(当然,这还有待于其设置)。
然而,当我使用SUSE Linux & Mono启动一个AWS实例来运行.NET时,我在大约2-3分钟内启动了其中一个,并将代码部署到其中(同样,等待安装)。
是什么原因导致Windows操作系统映像需要这么长时间才能在云中启动?我不想要FUD,我很好奇发生了什么导致这种情况的具体细节。任何与此相关的具体技术信息都将不胜感激!谢谢。
发布于 2010-11-02 15:04:19
正如在PDC上宣布的那样,Azure将很快开始在Azure web角色上提供完整的IIS。在Don Box的主题演示中的某个地方,他展示了这允许您使用Visual Studio中的标准“发布”选项来非常快速地部署到云中。
如果我没记错的话,当开始一个新的Azure角色时,会发生的一部分是配置网络组件,我记得有一个演讲者在一次会议上提到过,这非常耗时。这可能解释了为什么向已经运行的角色添加额外的实例通常会更快(但并不总是如此:我已经看到这一过程在ocassion上也需要15分钟以上)。
编辑:另请参阅this PDC session。
发布于 2010-10-30 04:44:58
我不认为EC2的行为是特定于云的。只需比较Windows和Linux在本地系统上的启动时间-在我的经验中,Linux的启动速度更快。通常,这是因为启动的服务/恶魔的数量较少,因为它们在启动期间需要进行的磁盘访问的数量也较少。
至于Azure的启动时间:很难说,也不能与机器启动(IMO)相比。没有人知道Azure在启动应用程序时会做什么。这可能是他们需要首先组装VM映像,或者发生了大量的日志记录/报告,这会减慢速度。
发布于 2010-11-24 18:41:58
不要忘记,有一个交换矩阵控制器需要检查故障区域并跨多个故障区域部署您的虚拟机(以提供高可用性,至少在有两个以上的实例时是这样)。我不能肯定,但逻辑本身可能需要一些额外的时间。这可能也解释了为什么网络设置可能有点复杂。
这当然可以解释云端启动时间与windows本地或亚马逊启动时间之间的差异(如果有的话)。操作系统之间的任何差异完全取决于操作系统的构建方式!
https://stackoverflow.com/questions/4054630
复制相似问题