Windows Azure提供了几个部署web应用程序的方法,比如Windows Azure网站、云服务和虚拟机。你可能无法确定哪一个最适合您的需要,或者你可能清楚的概念,比如IaaS vs PaaS。本文将帮助您了解您的选择,并帮助你做出正确的选择为您的web场景。尽管所有三个选项允许您运行在Windows Azure高度可伸缩的web应用程序,有差异,可以帮助指导你的决定。
1. 对使用难易和控制方便进行比较(如图)
1) 网站有最低的控制,但是不用关系虚机和IIS的运行状态。(PaaS)
2) 云服务控制比较多。一个云服务可以由一个前端web角色和一个或多个Worker的角色。每一层都可以独立了。例如,您可以远程桌面实例。(PaaS)
3) 虚拟可以完全控制,但是需要付出更多的精力去管理。(IaaS)
2. 功能比较
功能 | 网站 | 云服务 (web roles) | 虚拟机 |
访问云服务(Service Bus,Storage SQL Database) | 可以 | 可以 | 可以 |
部署多层构架(页面,控制,数据库)中的Web网站和Web 服务 | 可以 | 可以 | 可以 |
部署多层架构中的中间层 | 可以 | 可以 | |
整合数据库MySQL | 可以 | 可以 | 可以 |
支持Asp.net, Asp, Node.js, PHP, Python | 可以 | 可以 | 可以 |
可以扩展到多个实例而不需要重新部署 | 可以 | 可以 | 可以2 |
支持 SSL | 可以 3 | 可以 | 可以 |
整合Visual Studio | 可以 | 可以 | 可以 |
远程调试 | 可以 | 可以 | 可以 |
使用TFS部署 | 可以 | 可以 | 可以 |
使用GIT,FTP部署 | 可以 | 可以 | |
使用Web Deploy 方式部署 | 可以 | 4 | 可以 |
支持WebMatrix | 可以 | 可以 | |
共享实例部署 | 可以 | ||
多个实例共享内容和配置 | 可以 | ||
小的实例扩展到大的实例不需要重新部署 | 可以 | ||
多个部署环境 (生产 和 过渡) | 可以 | ||
使用虚拟网络 | 可以 | 可以 | |
远程登录 | 可以 | 可以 | |
能够定义和执行启动服务任务 | 可以 | 可以 | |
操作系统自动更新 | 可以 | 可以 |
1 Web 或者 worker 角色能够通过ClearDB整合MySQL服务,但是不是属于管理网站的工作流的一部分。
2 虽然虚拟能够扩展到多个实例,但是运行在这个机器上的服务必须实现一些逻辑去扩展。例外,所有机器必须配置负载均衡和在同一个地缘组(更新域UpdateDomain,容灾域 FaultDomain
3 对于网站来说,只有标准模式才能支持SSL。详情请看,Configuring an SSL certificate for a Windows Azure Web Site.
4 当Cloud Service的角色部署了一个实例,可以支持Web Deploy方式部署。然后,如果想满足SLA服务协议,一个角色就必须具有两个或者两个以上的实例,所有可以认为Cloud Service 不适合Web Deploy 部署。