最后更新时间(英文版):09/24/2014
最后更新时间(中文版):04/11/2015

Azure 提供几种方式托管 web 应用程序,如 Azure 网站云服务虚拟机。查看这些不同的选项后,您可能不确定哪一种最适合需求,或可能有不清楚的概念,如 IaaS 对比 PaaS。这篇文章可帮助您了解选项,并帮助您为自己 web 方案做出正确的选择。尽管所有三个选项允许您在 Azure 中运行高度可扩展的 web 应用程序,但差异可帮助指导您的决定。

在许多情况,Azure 网站是最佳的选择。它为部署和管理提供简单灵活的选项,并且能够在托管高容量的网站。使用流行的软件如 WordPress,可从 Web 应用程序库快速创建新的网站,或可以将现有的网站移动到 Azure 网站。使用Azure WebJobs SDK(目前处于预览状态),还可以添加后台作业处理。

还有在 Azure 云服务或 Azure 虚拟机上托管 web 应用程序的选项。这些选项是很好的选择,您的 web 层需要它们提供更多额外级别的控制和定制;但是,此增强的控制要以应用程序创建、管理和部署的复杂性增加为代价。下图说明了三个选项之间的权衡。

网站是更易于设置、管理和监视,但配置选项较少。关键之处在于使用 Azure 网站时,没有让您信服的理由将 web 前端放在云服务或虚拟机上。本文档其余部分提供做出明智决策所需的信息。这包括:

方案

我是小型企业所有者,并且我需要一种成本较低的方式来托管自己的站点,同时考虑将来的增长。

Azure 网站 (WAWS) 是这种情况不错的解决方案,因为您可以开始免费使用它,然后在需要时添加更多功能。例如,每个免费的网站附带由 Azure 提供的域 (your/_company。 chinacloudsites.cn)。如果已经准备好开始使用自己的域,添加的费用低至低至 $9.80 每月(截止到 1/2014)。有许多其他服务和扩展选项,允许站点随着用户需求的增加而发展。使用 Azure 网站,您可以:

  • 从免费层开始,然后根据需要向上扩展。
  • 使用应用程序库快速设置流行的 web 应用程序,如 WordPress。
  • 根据需要向您的应用程序添加其他 Azure 服务和功能。
  • 通过使用 your/_company.chinacloudsites.cn 域名提供的证书,用 HTTPS 保护您的网站。

我是 web 或图形设计师,并且我想为客户设计和生成网站

对于 web 开发人员,Azure 网站为您提供创建复杂的 web 应用程序所需的内容。网站提供 Visual Studio 和 SQL 数据库等工具的紧密集成。使用网站,开发人员可以:

  • 使用自动任务的命令行工具。
  • 使用流行的语言,如 .NetPHPNode.js 和 Python
  • 选择向上扩展到超高容量的三个不同的扩展级别。
  • 与其他 Azure 服务集成,例如 SQL 数据库服务总线存储
  • 与工具集成,例如 Visual Studio、Git、WebMatrix、WebDeploy、TFS 和 FTP。

我要将带有 web 前端的多层应用程序迁移到云

如果您运行多层应用程序,如与数据库服务器对话以存储和检索网站数据的 web 服务器,则您在 Azure 中有几个选项。这些体系结构选项包括网站、云服务和虚拟机。首先,网站对于您的解决方案是不错的选择,并可配合 Azure SQL 数据使用以创建一个两层体系结构。网站还允许您使用 Azure WebJobs SDK 预览运行后台或长时间运行进程。如果您需要更复杂的体系结构或更灵活的扩展选项,云服务或虚拟机是更好的选择。

云服务使您能够:

  • 在可扩展的 web 和辅助角色上托管 web、中间层和后端服务。
  • 仅在辅助角色上托管中间层和后端服务,保持前端在 Azure 网站上。
  • 独立扩展前端和后端服务。

虚拟机使您能够:

  • 更轻松地迁移高度定制的环境,如一个虚拟机映像。
  • 运行不能在网站或云服务配置的软件或服务。

我的应用程序取决于高度定制的 Windows 或 Linux 的环境

如果您的应用程序需要软件和操作系统的复杂安装或配置,虚拟机可能是最佳解决方案。通过虚拟机,您可以:

  • 使用虚拟机库启动操作系统,如 Windows 或 Linux,然后针对您的应用程序要求对其进行定制。
  • 创建并上传现有的本地服务器的自定义映像,在 Azure 中的虚拟机上运行。

我的站点使用开放源代码软件,并且我希望在 Azure 中托管它

所有三个选项都允许您托管开放源代码语言和框架。云服务要求您使用启动任务,来安装和配置在 Windows 上运行的任何所需的开放源代码软件。使用虚拟机,可在机器映像上安装和配置软件,基于 Windows 或 Linux 都可以。如果网站上支持开放源代码框架,这提供更简单的方法来托管这些类型的应用程序,因为使用应用程序所需的语言和框架可以自动配置“网站”。网站使您能够:

  • 使用多种流行的开放源代码语言,如.NETPHPNode.js 和 Python
  • 安装 WordPress、Drupal、Umbraco、DNN 和许多其他第三方 web 应用程序。
  • 迁移现有应用程序或从应用程序库创建一个新的。

我有一个业务应用程序需要连接到公司网络

如果您想要创建业务应用程序,您的网站可能需要直接访问公司网络上的服务或数据。可能在网站云服务虚拟机上。您采用的方法中存在差异,其中包括:

  • 网站可通过使用服务总线中继安全地连接到本地资源。这允许公司网络上的服务代表该 web 应用程序执行任务,无需将所有内容移到云中或建立一个虚拟网络。
  • 云服务和虚拟机可以充分利用虚拟网络。实际上,虚拟网络允许 Azure 中运行的机器连接到本地网络。然后 Azure 将成为您公司数据中心的扩展。

我想为移动客户端托管 REST API 或 web 服务

基于 HTTP 的 web 服务允许您支持各种客户端,包括移动客户端。如 ASP.NET Web API 的框架与 Visual Studio 集成,能够更加轻松地创建和使用 REST 服务。这些服务来自 web 端点,因此可使用 Azure 上的任何 web 托管技巧支持此情况。但是,网站是托管 REST API 的不错选择。使用“站点”,您可以:

  • 快速创建网站以便在 Azure 全球分布的数据中心之一托管 HTTP web 服务。
  • 迁移现有的服务或创建新的,可能会利用 Visual Studio 中的 ASP.NET Web API。
  • 实现 SLA 的单个实例可用性,或向外扩展到多台专用的计算机。
  • 使用已发布的站点来提供 REST API 到任何 HTTP 客户端,包括移动客户端。

服务摘要

Azure 网站允许您在 Azure 上快速生成高度可扩展的网站。您可以使用 Azure 门户或命令行工具,通过流行的语言(例如 .NET、PHP 和 Python)设置网站。支持的框架已部署并且不要求更多安装步骤。Azure 网站库包含许多第三方应用程序(例如 Drupal 和 WordPress)以及开发框架(例如 Django 和 CakePHP)。在创建网站后,您可以迁移现有网站或者生成全新网站。Web 站点无需管理物理硬件,还提供了几个扩展选项。您可以从共享的多租户模型移动到标准模式,那里的专用机服务于传入流量。网站还允许您与其他 Azure 服务(例如 SQL数据库、服务总线 和存储)相集成。使用 Azure WebJobs SDK 预览,您可以添加后台处理。总之,Azure 网站通过支持多种语言、开放源应用程序和部署方法(FTP、Git、Web Deploy 或 TFS),从而更便于关注应用程序开发。如果您没有要求云服务或虚拟机的专门要求,则 Azure 网站非常有可能是您的最佳选择。

通过云服务,您能够在丰富的平台即服务 (PaaS) 环境中创建高度可用的、可扩展 Web 应用程序。与网站不同,云服务首先在 Visual Studio 之类的开发环境中创建,然后部署到 Azure。PHP 之类的框架要求在角色启动时安装框架的自定义部署步骤或任务。云服务的主要优势在于能够支持更复杂的多层体系结构。单个云服务可由一个前端 Web 角色以及一个或多个辅助角色构成。每个层都可以单独缩放。还有对您的 Web 应用程序体系结构的提高的控制级别。例如,您可以使用远程桌面控制正在运行角色实例的计算机。您还可以编写在角色启动时运行的更高级的 IIS 和计算机配置更改的脚本,包括要求管理员控制的任务。

虚拟机,您能够在 Azure 中的虚拟机上运行 Web 应用程序。这种功能也称为“基础结构即服务 (IaaS)”。通过门户创建新的 Windows Server 或 Linux 计算机,或者上载现有的虚拟机映像。虚拟机向您提供对操作系统、配置以及已安装软件和服务的最高的控制。这个选项很适合于快速将复杂的本地 Web 应用程序迁移到云,因为计算机可作为整体进行迁移。使用虚拟网络,您还可以将这些虚拟机连接到本地公司网络。与云服务一样,您能够远程访问这些计算机并且能够在管理级别执行配置更改。但与网站和云服务不同,您必须完全在基础结构级别管理虚拟机映像和应用程序体系结构。一个基本示例是您需要将自己的修补程序应用到操作系统。

功能比较

下表比较网站、云服务和虚拟机的功能,以便帮助您进行最佳选择。表格后面的注释中详细解释带有星号的框。

功能 网站 云服务(web 角色) 虚拟机

访问 服务总线、存储、SQL数据库 之类的服务

X X X

托管多层体系结构的 web 或 web 服务层

X X X

托管多层体系结构的中间层

  X X

集成的 MySQL-as-a-service 支持

X X 1 X

支持 ASP.NET、经典 ASP、Node.js、PHP、Python

X X X

向外扩展到多个实例且无需重新部署

X X X 2

支持 SSL

X 3 X X

Visual Studio 集成

X X X

远程调试

X X X

使用 TFS 部署代码

X X X

使用 GIT、FTP 部署代码

X   X

使用 Web 部署来部署代码

X 4 X

WebMatrix 支持

X   X

接近即时的部署

X    

实例共享内容和配置

X    

向上扩展到更大的计算机且无需重新部署

X    

多个部署环境(生产和过渡)

X X  

使用 Azure 虚拟网络进行网络隔离

  X X

支持 Azure 流量管理器

X X X

对服务器的远程桌面访问

  X X

能够定义/执行启动任务

  X X

自动操作系统更新管理

X X  

集成的端点监视

X X X

无缝平台切换(32 位/64 位)

X X  

1 Web 和辅助角色可以通过 ClearDB 的产品集成 MySQL-as-a-service,但不作为管理门户工作流的一部分。

2尽管虚拟机可以向外扩展到多个实例,在必须编写这些计算机上运行的服务以处理此向外扩展。必须配置额外的负载平衡器以跨机器路由请求。最后,应为参与同一角色的所有计算机创建一个地缘组,防止它们从维护或硬件故障同时重启。

3对于“网站”,自定义域名的 SSL 仅支持标准模式。有关将 SSL 用于网站的更多信息,请参见为 Azure 网站配置 SSL 证书

4 在部署到单实例角色时云服务支持 Web 部署。但是,生产角色要求多个实例以便满足 Azure SLA。因此,Web 部署不是在生产中用于云服务的合适的部署机制。

Azure 网站、云服务和虚拟机比较的更多相关文章

  1. Windows Azure -Azure 网站、云服务和虚拟机的对比

    Azure 网站.云服务和虚拟机对比 概述 Azure提供了几种方法来承载网站: Azure网站.云服务和虚拟机.本文帮助您了解选项和为您的Web应用程序做出正确选择. Azure网站是大多数web应 ...

  2. 云服务和虚拟机的预留 IP 地址

    大家好! 我很高兴地向大家宣布,云服务和虚拟机的预留 IP 地址将自 2014年 5月 12日起正式发布.在这篇博客中,我们将演示如何管理预留 IP.将预留 IP 与云服务和虚拟机关联.定价模型和一些 ...

  3. 比较Windows Azure 网站(Web Sites), 云服务(Cloud Services)and 虚机(Virtual Machines)

    Windows Azure提供了几个部署web应用程序的方法,比如Windows Azure网站.云服务和虚拟机.你可能无法确定哪一个最适合您的需要,或者你可能清楚的概念,比如IaaS vs PaaS ...

  4. 如何在Azure上创建和部署云服务

    Azure 管理门户提供两种方法可用来创建和部署一个云服务:快速创建和自定义创建. 本主题说明如何使用快速创建方法来创建新的云服务,然后使用上传来上载和部署一套在 Azure 的云服务.当您使用此方法 ...

  5. [转]在 Azure 云服务上设计大规模服务的最佳实践

    本文转自:http://technet.microsoft.com/zh-cn/magazine/jj717232.aspx 英文版:http://msdn.microsoft.com/library ...

  6. Windows Azure 云服务角色架构

    当我们使用VS发布一个Cloud Service或者在Portal上上传发布包后,就能启动和运行一个云服务,可以保护WebRole,WorkerRole的一个或者多个实例. Windows Azure ...

  7. Microsoft Azure 在北美 TechEd 大会上发布令人振奋的更新,帮助客户开始使用云服务

    云计算因其速度.规模和成本节省等优势而备受众多企业青睐.但企业需帮助,才能以安全可靠的方式使用云,同时还要利用企业的现有投资, 才能实现这些优势.因此,在TechEd 大会上,我们推出了一些新的服务, ...

  8. 【Azure 云服务】如何从Azure Cloud Service中获取项目的部署文件

    问题描述 在历史已经部署的云服务(Azure Cloud Service)中,如何获取到项目在很久以前的部署包文件呢? 解决办法 1)如果部署云服务是通过门户上传部署包到存储账号中,则可以直接从存储账 ...

  9. Azure 订阅和服务限制、配额和约束

    最后更新时间:2016年10月24日 概述 本文档指定一些最常见的 Azure 限制.请注意,本文档目前未涵盖所有 Azure 服务.一段时间后,将展开并更新这些限制以包含多个平台. NOTE: 如果 ...

随机推荐

  1. Android开发SQLite数据库的创建

    package com.example.db; import android.content.Context; import android.database.sqlite.SQLiteDatabas ...

  2. Backit轻松为您的网站创建备份

    随着日益复杂,备份数据,已成为一个经验法则,为维护数据库和重要的企业信息化的大公司和企业.在一个不幸的灾难的情况下,很多企业无法恢复他们的数据,这进一步增加了在他们对所有盈利和亏损的同时,作为他们的电 ...

  3. 使用Collections类对 集合排序

    对Set<Object>集合进行排序 根据类型的某一个属性去排序 public Set<School> sortByValue(Set<School> set){ ...

  4. juc线程池原理(一):总体介绍

    概要 线程池类图 线程池的类图如下: 1. Executor 它是"执行者"接口,它是来执行任务的.准确的说,Executor提供了execute()接口来执行已提交的 Runna ...

  5. tp5 快速接入扫码支付

    前提是申请好微信支付,同时配置好key,以及支付回调地址 1.composer composer require yansongda/pay 2.引入 use Yansongda\Pay\Pay; / ...

  6. tp5下通过composer实现日志记录功能

    tp5实现日志记录 1.安装 psr/log composer require psr/log 它的作用就是提供一套接口,实现正常的日志功能! 我们可以来细细的分析一下,LoggerInterface ...

  7. 八 Connect API 连接器

    Connect API: 实现一个连接器(connector),不断地从一些数据源系统拉取数据到kafka,或从kafka推送到宿系统(sink system). 大多数Connect使用者不需要直接 ...

  8. 使用模板创建第一个Web API项目

    软件环境 vs 2015 update3 本节将通过例子讲述创建Web API 项目的方法 第一步,打开vs ,依次通过[文件]菜单,[新建][项目]命令,大致步骤如下图 :   第2步,在弹出对话框 ...

  9. Python re模块与正则表达式的运用

    re模块 永远不要起一个py文件的名字,这个名字和你已知的模块同名 查找 findall():     匹配所有   每一项都是列表中的一个元素 语法 :   findall(正则判断条件,要判断字符 ...

  10. Python中的闭包与迭代器

    前面内容补充 函数名分应用(第一类对象) 函数名的命名规范与变量命名是一样的函数名其实就是变量名 函数名可以作为列表中的元素进行存储 例如: def func1(): pass def func2() ...