【问题标题】:WCF services on AzureAzure 上的 WCF 服务
【发布时间】:2011-10-08 22:53:54
【问题描述】:
我计划将我的所有 VPS 功能迁移到我的 Azure 订阅。
我有 3 年的免费 bizSpark 订阅,它为我提供了 20 个内核、6 个托管服务和 5 个存储。我相信这是 2 个小实例。
我的主要目标是转移我目前在 IIS7.0 服务器上运行的 10 个左右的 WCF 应用程序。
我的 Azure 可以托管多少个 WCF 服务?
我整天都在阅读和玩 Azure,但仍然完全搞不清它的作用。从我目前的演奏来看,似乎每个 WCF 服务都需要自己的托管服务,而我只有 6 个?还是我感到困惑。 WCF 服务是否需要放在“托管服务”中?
谢谢。
【问题讨论】:
标签:
wcf
iis
azure
cloud-hosting
【解决方案1】:
让我看看能不能帮上忙:
- Windows Azure 是一个平台,您可以在其中将应用程序部署到云端,而不必担心为底层基础架构或缓存、身份管理等功能构建管道。
- 每个 Windows Azure 订阅都有多个部署槽或托管服务。这限制为 6 个,这意味着您最多可以部署六个完整的部署包(每个部署包由一个或多个虚拟机实例组成)。
- 每个虚拟机(也称为角色)占用一定数量的内核。 Small 角色使用 1 个核心,medium=2,large=4,extra large=8。
- BizSpark 每月为您提供 1500 个核心小时。如果您运行一个 Small 角色实例整整一个月,您将消耗不到 750 小时。因此,您可以 24x7 全天候运行 2 个小型角色实例,并且仍能满足 1500 个核心工时。
- 您的帐户上限为 20 个核心,这意味着您可以将角色实例增加到 2 个以上。但是,如果您 24x7 全天候运行,您将开始产生成本。如果您将每月的消耗量控制在 1500 核心小时以下,那就没问题了。因此,如果您将所有 20 个核心运行 24 小时,您将消耗 20x24=480 个核心小时。按照这个速度,您将在大约 3 天内消耗包含的小时数。
- 每个角色本质上都是 Windows Server 2008 R2。 Web 角色与 Worker 角色的不同之处在于 Web 角色启用了 IIS。
- 每个部署(例如托管服务)最多可以公开 25 个面向外部的端点(例如 tcp、http 或 https 端口)。您可以在任何公开的端口上托管 WCF 服务
- 您可以将所有 WCF 服务托管在一个角色中,或者将它们放置在不同的角色中。你的选择,真的。托管在单个角色中的成本更低,因为您现在可以让整个服务堆栈在 2 个实例中运行。不利的一面是,如果您有一个非常繁忙的服务,而其余服务相对空闲,那么繁忙的服务可能会饿死其他服务。因此,有时将服务分成不同的角色并相应地扩展是有益的。
- 请注意,我说过您可以在 2 个实例中运行所有内容。如果您只在一个实例中托管,那么每当该实例重新启动时(例如硬件故障、角色实例操作系统升级或主机操作系统升级),您都会偶尔发生停机。
你真的应该下载Windows Azure Platform Training Kit。在那里,您会发现简单易懂的实验室,可引导您了解所有基础知识、托管服务、部署到多个角色等。
祝你好运!
【解决方案2】:
您几乎可以使用 Azure 做任何事情,所以尽量不要不知所措。
我们将从您的订阅附带的内容开始。所有这些核心、服务和存储帐户都是您可以部署的,但这与您免费获得的内容无关,任何注册帐户的人都可以访问这些内容。您可以将角色部署到使用两个额外小实例且不收费的服务之一。如果您部署的内容超出此范围,您将需要付费,即使它当前没有运行。
对于您的 WCF 服务,如果您目前将它们全部部署在一个 IIS 机器上,您应该能够创建一个 Web 角色并将其配置为 host multiple sites。但是,如果您只有超小型实例,则取决于您的应用程序使用的资源,它们的性能可能不会很好(例如,超小型实例只有 750MB 的内存)。如果是这种情况,您将需要创建多个 Web 角色,并根据需要在每个 Web 角色中托管尽可能多的应用程序。