新的Azure Web站点和传统的Azure Web角色之间有什么实质性的区别?NET MVC应用程序?我选择“网站”而不是“网络角色”的原因是什么?反之亦然?

让我们假设在两种情况下我都需要相同的容量(例如2个小实例)。除了网站在预览期有33%的临时折扣外,价格似乎是相当的。

我在“网站”上可以做的事情,在网络角色上是困难的或不可能的吗?例如,使用“网站”将多个网站放在一组虚拟机中变得容易吗?我在“网站”和“网络角色”之间失去了什么吗?能够微调IIS?是否能够在本地使用缓存服务?


当前回答

Azure网站、Web worker和虚拟机是Windows Azure上可用的三种不同的计算方法。他们在控制和责任的水平上有所不同:

Azure网站有最低级别的控制,但你不关心保持健康的虚拟机和IIS,因为Azure的东西为你做这些 Web角色给你更多的控制(流量管理器,远程桌面),但更多的管理是可能的,这意味着你可以通过远程桌面破坏一些东西 虚拟机让您完全控制VM,因此需要最大的管理工作。

没有最好的选择,因为这取决于你需要什么样的控制级别,你需要什么特性,以及你希望留给Azure哪些东西来维护。这是一个大话题。

请阅读这篇文章,了解更多信息,做出更明智的选择:

http://www.windowsazure.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/ http://davidpallmann.blogspot.com/2012/06/reintroducing-windows-azure-part-2.html

这可以归结为易用性和功能之间的权衡。

其他回答

我发现的另外两件事是为自定义域站点获取SSL的成本和多租户配置。

对于网站,你需要在标准实例的基础上每月支付(小实例是最便宜的选择)。这意味着为了获得自定义域https将花费你~70/月的小实例加上~41/月的SSL支持所有浏览器。

对于WebRole,您可以免费获得XS实例并添加自己的SSL,这意味着每月约15美元 你有一个自定义的SSL域。

对于多租户网站检查 多租户Azure动态通配符CName

web角色是承载多个网站的虚拟机

Web角色提供了Web应用程序(以前的Web站点)之外的几个功能:

Ability to run elevated startup scripts to install apps, modify registry settings, install performance counters, fine-tune IIS, etc. Ability to split an app up into tiers (maybe Web Role for front end, Worker Role for backend processing) and scale independently Ability to RDP into your VM for debugging purposes Network isolation Dedicated virtual IP address, which allows web role instances in a cloud service to access IP-restricted Virtual Machines ACL-restricted endpoints (added in Azure SDK 2.3, April 2014) Support for any TCP/UDP ports (Web Sites are restricted to TCP 80/443)

Web应用程序比Web角色有优势:

Near-instant deployment with deployment history / rollbacks Visual Studio Online, github, local git, ftp, CodePlex, DropBox, BitBucket deployment support Ability to roll out one of numerous CMS's and frameworks, (like WordPress, Joomla, Django, MediaWiki, etc.) Use of SQL Database or MySQL Simple and fast to scale from free tier to shared tier to dedicated tier Web Jobs Backups of Web Site content Built-in web-based debugging tools (simple cmd/powershell debug console, process explorer, diagnostic tools like log streaming, etc.)

随着2014年4月和2014年9月的推出,现在有一些Web应用程序和Web角色(以及工作者角色)共同的特性,包括:

登台+生产槽 通配符DNS, SSL证书 Visual Studio集成 流量管理器支持 虚拟网络支持

以下是我从网站图库选择表单中截取的截图:

我认为Web应用程序是快速启动和运行的好方法,你可以从共享资源转移到预留资源。一旦你不再局限于此,你就可以升级到Web角色,并根据需要进行扩展。

这是一个常见的问题,我想从msdn中摘录一段。

访问服务,如缓存,服务总线,存储,SQL Azure数据库-网站:是WebRole:是

支持ASP。NET,经典ASP, Node.js, PHP-网站:是WebRole:是

共享的内容和配置-网站:是WebRole:否

使用GIT、FTP部署代码-网站:是WebRole:否

近即时部署-网站:是web brole:否

集成mysql即服务支持-网站:是WebRole:是

多部署环境(生产和登台)-网站:没有WebRole:有

网络隔离-网站:无web brole:有

远程桌面访问服务器-网站:没有WebRole:是

能够以更高的权限运行程序-网站:没有web brole:是

能够定义/执行启动任务-网站:没有web brole:有

能够使用不受支持的框架或库-网站:没有WebRole:有

支持Windows Azure Connect/ Windows Azure Network-WebSite:No WebRole:Yes

要获得更多详细信息,请访问这个链接:http://blogs.msdn.com/b/silverlining/archive/2012/06/27/windows-azure-websites-web-roles-and-vms-when-to-use-which.aspx

EDIT 2014:不管怎样,这个答案中的很多信息都不再正确了——请看评论。

在@David的回复中添加更多内容:

使用Windows Azure网站,您无法控制IIS或web服务器,因为您在同一台机器上使用一个资源片以及数百个其他网站,您像其他网站一样共享资源,因此无法控制IIS。

共享网站和Azure web角色之间的最大区别是,网站被认为是进程绑定,而角色被认为是虚拟机绑定。

网站存储在内容共享中,可以从场中的所有“web服务器”访问,因此不需要复制或类似的东西。

Windows Azure网站不能有自己的主机名,而是必须使用websitename.azurewebsites.net,你当然可以在你的DNS提供商中使用CNAME设置来路由你的请求,与之前的Windows Azure角色完全相同,只有当它们在保留模式下运行时。共享网站不支持CNAME设置。