(* nix)用于快速建设的云/集群解决方案可扩展的网络服务

时间:2009-11-17 14:24:41

标签: linux unix cloud scalability cluster-computing

我打算建立一个高性能的Web服务。它应该使用数据库(或任何其他存储系统),某种处理语言(无论是否是脚本)和Web服务器守护程序。系统应分发给大量服务器,以便服务快速可靠地运行。

它应该复制数据以实现可靠性,同时它必须提供分布式计算功能以处理大量数据(主要是对大型数据库的查询,这些数据无法在具有合适的服务器的单个服务器上执行反应水平)。缓存技术已脱离主题。

我应该考虑哪些群集/云解决方案?

有很多单系统映像(SSI),集群文件系统(可以是设计的一部分),Hadoop,BigTable克隆等项目。每个都有它的优点和缺点,“关于”页面总是说解决方案是伟大的:)如果你试图部署解决主题的东西 - 分享你的经验!

UPD:这不是一个文件托管而不是一个游戏,而是一个相当互动的东西。您可以将StackOverflow作为Web服务的示例:小块数据,半静态内容,密集型数据库操作。


Cross-Post on ServerFault

2 个答案:

答案 0 :(得分:1)

由于你有点模糊,很难提出具体的建议,但我建议基本上任何网络服务Google Appengine。它可靠,易于使用,并且基于谷歌架构,因此快速可靠。

答案 1 :(得分:1)

你真的需要一个更好的“大”定义。 “大”是一个愿望,还是你的营销部门认为他们会拥有的硬数据?

如果您可以使用简单组件执行此操作,请执行此操作。 Cassandra和Hadoop之类的东西既不容易设置(特别是后者)或开发;能够有效开发此类应用程序的开发人员将非常昂贵且难以雇用。

所以我会说,开始使用您最喜欢的“传统”数据库,使用适当的高可用性解决方案,然后等到接近极限(您可以随时测量实际应用程序的限制,一旦它建成并且你有一个性能测试系统)。

请记住,Stack Overflow使用相当传统的组件,只需使用少量商品硬件进行调整。这对于它的规模来说是好的,但是对于(例如Facebook)来说永远不会有效,但开发人员知道SO的观众永远不会达到Facebook级别。

编辑:

当“传统”技术开始失败时,例如如果达到了在单个数据库实例上可以完成的操作的限制,那么您可以考虑将分片或功能分区考虑到更多实例中(同样可以选择HA系统)。

如果您有一个具有非常高的写入要求和可用性要求的同类数据存储,那么您将需要其中一个(例如Cassandra)“nosql”系统的唯一时间;即便如此,你仍然可以通过分割传统系统来解决它 - 正如其他人(甚至是Facebook)有时做过的那样。