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



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

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

有人能帮我做选择吗?

感谢

Azure没有计划-您调用的每一项都是服务,您可以单独使用或组合使用。不要认为这是一家像GoDaddy这样的托管公司。

你需要考虑你运行的东西的复杂性,以及安装应用程序时需要多少控制。

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

你会发现一个典型的系统是混合的。也许在您的情况下,您将在网站中设置web层,并在虚拟机中设置SQL Server。随着您的进一步探索,您将开始发现其他功能(如虚拟机上的IP限制端点访问和虚拟网络)。我将让你进一步探索。。。

关于web/worker和网站之间的区别,我在这里发布了另一个StackOverflow的答案,它将更加详细。

EDIT-忘了提SQL数据库服务,它是一种多租户SQL Server即服务产品。设置和使用起来很简单(只需几秒钟就可以获得一个可扩展到每个数据库150GB的数据库),但对完整的SQL Server有点限制(没有CLR、没有FTS等)。TechNet的一篇文章指出了更多的差异。

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

选择数据库-SQL Server

  1. Azure SQL Databases-完全由Azure管理,您只需要选择的大小(稍后可配置的最大大小)

  2. SQL Server on Azure Virtual Machine-您首先选择虚拟机的大小,它附带您选择的操作系统(Windows Server 2008 R2,或2012或2012 R2),您可以根据自己的自由对该机器和实例SQL Server进行RD。SQL Server附带有预构建的VM映像,您不必担心SQL Server的许可成本。

选择Web服务器/应用程序服务器

  1. Azure Websites-更像是一个PaaS-Azure将负责操作系统、IIS、运行时等,你可以只部署你的应用程序(ASP.net或php或节点),然后忘记其余的。

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

最新更新