Azure中ASP.MVC的最佳计划是什么?

时间:2013-11-20 08:57:45

标签: azure azure-sql-database

我在asp.mvc 4中使用sql server构建了一个网站。 SQL服务器上的数据将由另一个程序更新,而不是直接从mvc更新。我已经创建了这个迁移软件,它连接到oracle DB并在sql server中发送一些数据。 所以我必须从外面有一个打开的sql server端口,每晚都要迁移数据。

我的问题是我应该从Azure中选择哪个计划?我看到了一个网站计划(http://www.windowsazure.com/en-us/solutions/web/),一个VM(http://www.windowsazure.com/en-us/services/virtual-machines/)和一个SQL服务器(http://www.windowsazure.com/en-us/services/data-management/)。

有人可以帮助我做出选择吗?

感谢

2 个答案:

答案 0 :(得分:2)

Azure没有计划 - 您调出的每个内容都是服务,您可以单独使用或组合使用。不要把它想象成像GoDaddy这样的托管公司。

您需要考虑正在运行的内容的复杂程度,以及安装应用时需要多少控制权。

  • 网站允许非常简单部署网络应用程序(asp.net / mvc,python,php,node),并直接与大约12个版本控制引擎集成(tfs online,dropbox,GitHub)等)。缺点?仅端口80/443,不允许VM自定义,也没有固定IP地址(例如,用于白名单)。
  • 云服务(Web / worker)使您可以专注于代码而不是操作系统维护。非常简单的扩展选项,您可以运行所需的任何类型的工作负载,Windows Server将支持这些工作负载,但有一些例外(例如,没有GPU支持)。只知道Web和工作者角色(除了启用IIS之外的其他角色)是无状态 - 您有一个启动脚本,可以在每个新实例生成的情况下设置您的VM,并且每次重启都会基于VM故障(或者你可能会被转移到新的硬件上。这包括下载/安装应用程序所需的应用程序;设置性能计数器;这些操作应该是快速的,并且在没有人工交互的情况下自动化,因为它们需要编写脚本。您可以 RDP进入Web /辅助角色实例,但除了开发/测试目的之外,不要以这种方式进行任何更改 - 如果由于某些原因(例如磁盘故障)重新启动该框,则所有手动 - 执行的更改将会丢失。
  • 虚拟机(Linux / Windows)可让您完全控制虚拟机,虚拟机由持久存储支持 - 您重启的所有内容都可以使用。这种类型的环境非常适合像SQL Server这样的数据库服务器,因为它需要一段时间才能安装并需要手动干预。缩放时,您需要复制某种类型的“主映像” - 因此,如果您构建了一个Web服务器,则需要对映像进行sysprep,然后通过制作其他VM副本进行扩展。这不像web / worker扩展那么方便,因为Web完全控制了Web / worker扩展,只需启动普通VM映像并将代码应用到它们。

你会发现典型的系统有混合。也许在您的情况下,您将在Web站点中设置Web层,在虚拟机中设置SQL Server。当您进一步探索时,您将开始发现其他功能(例如虚拟机和虚拟网络上的IP限制端点访问)。我会把它留给你进一步探索......

关于网络/工作者和网站之间的差异,我发布了另一个StackOverflow答案,here,更详细。

编辑 - 忘了提及SQL数据库服务,这是一个多租户SQL Server即服务产品。设置和使用很简单(只需几秒钟就可以获得每个数据库扩展到150GB的数据库),但是在完整的SQL Server上没有一点限制(没有CLR,没有FTS等)。有一个TechNet article指出了更多的差异。

答案 1 :(得分:0)

您发布的问题非常通用且开放式,但是,我会尝试向您解释术语。

选择数据库 - SQL Server

  1. Azure SQL Databases - 完全由Azure管理,您需要选择的是尺寸(稍后可以配置maxsize&)

  2. SQL Server on Azure Virtual Machine - 您首先选择虚拟机的大小,它附带您选择的操作系统(Windows Server 2008 R2,或2012或2012 R2),您可以RD到该计算机和实例SQL Server按照你的自由。 SQL Server附带预先构建的VM映像,您无需担心SQL Server的许可成本。

  3. 选择Web服务器/应用服务器

    1. Azure Websites - 更像是PaaS - Azure将负责操作系统,IIS,运行时等,您可以部署您的应用程序(ASP.net或PHP或节点)而忘记其余部分。

    2. Virtual Machines - 您将获得一个空白VM,您将部署Web服务器和Web应用程序及其运行状况。请注意,您负责更新,操作系统,IIS和其他应用程序的修补程序。