吝啬云:什么时候才能变得合理

[原文发表地址] Penny Pinching in the Cloud: When do Azure Websites make sense?

[原文发表时间] 2013-08-13

我和Frans Bouma在推特上有一段了不起会话,他问了我一连串关于云的价格方面的问题,但我很难在140个字以内回答清楚。关于云的定价不是很明确,并且很难搞清楚,因为它太太复杂了。

Frans想把他们产品的站点转移到微软与计算平台Azure,但是他觉得对与一个网站来说价格太贵了。这是个很好的问题。

这是我自己的关于Azure站点和定价方面的问答,我常常收到大伙儿们关于类似困惑的邮件,所以我把它们写出来,如果你们以后还发邮件问我问题(虽然我还有很多键盘敲击数【译者注:此说法来自于作者在一个叫做keysleft.com的网站上进行的有趣测试】),我会让你们看这篇文章。

声明一下: 这是我自己写的,不是营销。我敢肯定,当他们看到这篇文章的时候会立刻打电话给我。。但是,这不会使其不真实。

我以前不是一个Azure方面的粉丝,直到去年6月份有了改变。现在我所有的站点都运行在云端,除了这个博客网站(它已经在OrcsWeb上运行了好多年了)。

现在,我有13个网站,两个虚拟机(一个Linux和一个Windows)在Azure上运行。 11个站点运行在位于美国西部的一台云端虚拟机上,另外两个站点在其它的数据中心。

问:我有一个小网站运行在一个自定义域上,我每月支付5美元的费用。我需要将其转移到Azure上去吗?

答:或许不用。当你能够从云端一个数据中心获得至少10个免费的站点(严格来说超过10个),如果你想让一个自定义的域指向它,你至少需要一个“共享的”(多租户,意味着你要获取一个CPU)站点,这是9.68美元一个月,一直运行。如果9.68美元对你实在是奢侈了,坚持用你现在的5美元一个月的主机。然而,你尽管只有一个共享网站但他们却使用相同的管理工具和部署子系统,因此它取决于你使用它的价值。免费站点对网站开发和测试是很好的,您可以尝试新的概念,然后再慢慢开始花钱在上面。

如果你想一个月只花几块钱就能搞定,我不认为简单的去比较Azure和的一个随机4.99美元的PHP主机是公平的。因为你得到了的命令行管理工具,大量的部署选择,弹性规模,在几分钟能就能搞定你想要的一切,等等。

问:如果我每月支付10美元没有什么问题,我能够从一个共享网站获得什么?

答:无论是1个站点还是500个站点,所有站点都能够得到Git部署(和重新部署,也被称为“神一般的按钮”),以及从Visual Studio中和TFS部署。每个人都得到了相同的基础设施和控制面板。您也可以扩展到多达6个共享实例,如果你需要。

每个实例是一个副本,你的代码运行在不同的共享服务器,使用相应的CPU和内存配额。我们选择将实例数限制在6个,因为超过6实例的费用比一台标准服务器昂贵。共享模式下,您可以将站点增加至单数据中心100个,每个站点最多可以有6个实例。

问:如果将我的站点运行在自己的虚拟机上,而不是使用托管的网站,这样如何?

答:如果你知道你在做什么,你可以在虚拟机中运行你的网站,但你需要自己设置IIS和管理这个站点。你需要不断更新虚拟机,并按照你想要的那样配置它。但是,你也可以获取一个-特别小的VM,每月15美元,搭配768MB 内存,这也是很好的。我在上面运行一个MySQL实例以及一个Apache PHP。

问:我什么时候应该使用一个虚拟机而不是一个网站?

A.它归结为你想管理什么。如果你擅长管理VM,你想要更好的灵活性,那么你就完全可以那样做。如果你想操作系统搭建和更新能够自动进行,而且包括自动的部署选择和规模扩展,那么就使用网站。

问:免费,共享和标准的站点。它们有什么区别?

答:免费意味着它是免费的,没有正常运行时间保证,它是低优先级。我把演示,测试和开发放在这个免费的平台上。我也运行一些与网站无关的服务,因为没有人可以看到它。您不能够在上面使用自定义域或免费的SSL。

共享意味着你得到部分计算机,有很多人在和你共用这台电脑。大多数小网站(<20,000 PV)能够正常工作在这个共享的环境中。

标准,常常被称为预留的。你拥有自己的虚拟机,并可以运行ASP.NET,Node.js,PHP等(标准模式和免费模式可以运行的东西是一样的)。你可以使用从单核,1.75G的内存一直到四核以及7G的内存的配额。我就将我的所有的网站都运行在1个标准模式下的一个小号实例上。即使是小号的,我仍拥有近2G的RAM,即使一些我的网站(比如Hanselminutes)会使用缓存,高负载时会使用100-300兆的RAM,但我从来没有遇到任何问题。

如果你需要多台服务器来运行您的网站,您可以扩展标准服务器的实例至10个,如果你需要超过10个服务器实例,您可以联系技术支持服务,他们会帮你一起想办法。

这里是有关云和Azure本身的事情。如果你太松散地打包所有的东西,这不会替你省钱。

你可以使用Azure站点将500个网站放到一个实例上。这不是印刷错误。你投入得越多你能够从VM/标准实例得到的价值越多。

提示: 尽可能的打包在一起 要清楚,如果你要在Azure上运行超过8个网站,你需要将其移到标准/保留模式上。这样会比较便宜。另外,如果你有一堆在一个数据中心的站点(像我,我在美国西部有10以上的网站),你想要把他们都在同一个VM。如果你能保持所有的网站畅通,有效地服务,你可以轻松把现有的实例变成“免费的。”因为你支付了这个实例,尽管使用它。

问:你疯了吗,什么样的网站既能提供的价值,也能够打包的那么小?

答:有很多的小网站,例如像我的播客,一个月有尽几万甚至几十万的点击率。如果你在数据代理进行打包小型网站的工作,当你打包约6到8个站点以后,你就能开始省很多钱了。

这是Azure的定价计算器。在我看来,在共享模式下,共享8个以上的站点,是愚蠢的。任何超过8个共享网站是浪费金钱。

你可能看到了,共享8个需要花费77美元?这是一大笔钱对我来说太多了。我要坚持我的5美元的主机。如果可以你或许应该将8个站点打包部署到一台5美元的机器上。

然而,当您移动到标准模式下一切就会变得便宜。一旦你有了1个标准的网站虚拟机,你可以在上面放很多东西。

同样,每个网站是完全单独的,隔离的并且单独部署和管理,但他们分享你同一台虚拟机。它的价值在于,你从来不需要思考VM的管理。它总是保持更新到最新状态,监控恶意软件,向操作系统打补丁,处理所有的事情。网站运行在虚拟机上,您使用FTP,Git的部署或MS部署,与其交互。您可以运行ASP.NET,PHP,Python和Node.js,Python,Hell,经典的ASP,只要你想。

你的支付方式是以时间来算,0.10美元每小时。如果运行一个月之久,它是74.40美元。运行我的这台VM里面所有的网站。它实际上是一个有点大,我也许可以就用一台“超小型虚拟机”就足够了,如果他们会做一个超小型虚拟机(微软团队告诉我,这个产品即将推出)。注意,我会被收取0.10美元每小时即使我的网站没有流量,我本质上是支付从云上“租赁”的CPU。

问:我什么时候调整规模,以及如何调整?

答:我和很多客户都有过谈论,但是谈及最多的是公共网站流量太大的问题。他们需要的是扩展能力,如果网站越来越有名气。您可以向上扩展(例如更大的实例)或向外扩展(更多的实例)。

你可以设置你的网站自动扩展和收缩,如果你的网站上了Hacker News或你的应用变得流行。 云会将添加(和删除)实例,以确保请求能够得到处理。它永远不会高于或低于您选择的设置。

这也是一个控制成本的方式。在这个截图中,我将永远不会超过3个实例,因此,如果它被攻击,我的网站可能宕机,但我可以决定它扩展的程度。我要平衡成本与可用性。我可以任意改变设置,哪怕我想从1个小型VM扩展到10个大型VM,这可是从1核到40核啊。

问:云端的网站会不间断的运行吗, 24/7?

答:如果你有一堆的网站在一个标准的虚拟机中时,VM会一直运行,你需要支付这台VM。如果一个网站,有数小时的时间没有使用,它将被置于睡眠状态,腾出的资源用于同一个虚拟机上的其它站点。如果你担心网站预热缓慢,你可以使用监控功能设置,使它不仅确保网站已经启动,而且还让他们总是处在预热状态。

问:我有一个MSDN订阅,我从中可以得到什么?

连接到您的MSDN和Azure帐户,你可以得到每月150美元Azure的信用额度,所以你拥有有两个的虚拟机免费运行一个月。

我已经写了几个关于“吝啬云”的帖子,希望你也喜欢。

•吝啬云:在Windows Azure上启用网站的New Relic的性能监控

•吝啬云的视频:移动我的网站的图片到Azure CDN(和使用自定义域)

•吝啬云的视频:在不同的数据中心之间的移动云站点

•吝啬云,当在云上进行缩放时 - 延迟加载图像以及使用的Azure CDN省钱

•吝啬云:如何只花10美元开一个两天的虚拟会议