云托管与托管主机

时间:2009-12-10 14:54:10

标签: java hosting cloud

似乎无法避免关于云计算的炒作,但实际过渡到这个新平台需要经过多次讨论......

从理论的角度来看,可以说:

云:

  • 体系结构更改(您可能无法安装任何所需内容)
  • 学习曲线(由于上述原因)
  • 没有故障转移(因为故障被处理)
  • 粒度成本(按Ghz或Gbyte支付)
  • 即时可扩展性(不是那么即时,但至少是透明的?)?较低的延迟

托管:

  • 故障转移(取决于提供商)
  • 手动扩展(需要维护)
  • 静态成本(您支付包裹,无论您是否完全使用它)
  • 降低成本(仅适用于入门套餐)
  • 数据所有权(你这样做)
  • 自由(你呢)?较低的延迟(取决于提供商)

假设以上是正确的;然而,逻辑位置是“它取决于...”..在应用程序本身。 现在出现了一个隐藏的问题:你如何描述你的j2ee应用程序,以确定它是否是云的候选者;知道它是

  • 一个服务/功能数量相当大的应用程序(即; servlets)
  • 依赖于复杂的数据库(即数字表)
  • 不需要太多媒体资源,主要是基于文本的

5 个答案:

答案 0 :(得分:2)

“现在出现了一个隐藏的问题:你如何描述你的j2ee应用程序,以确定它是否是云的候选者;知道它是”

顺便说一下,把它作为明确的问题。把它作为这个问题的标题。把它放在问题的开头。如果可能,删除所有假设,并专注于问题。

这就是我们的工作。

  1. 致电一些供应商以获取“云”或“托管服务”安排。不是很多。每个中的一个或两个。

  2. 询问他们支持的内容。更重要的是,他们支持。

  3. 然后,给出一个不受支持的功能的简短列表,请查看这些功能的代码。如果他们不支持您需要的东西,那么您需要做一些架构工作。或者将它们从您首选的供应商列表中删除。

  4. 对于优秀的供应商,请编写一份试用合同,为您提供几个月的免费(或廉价)访问权限进行安装和测试。如果它不起作用,你就没有多付钱。

  5. “但是,当它可能不起作用时,为什么要花费试图托管它的费用?”

    费用是多少?你可以花几个月“学习”你的代码。或者您可以尝试托管它。通常,“尝试托管它”将在几天内找到答案。这样做的努力就少了。

答案 1 :(得分:1)

您在谈论什么样的云服务? IaaSPaaS,DaaS?

  

体系结构更改(您可能无法安装任何您想要的内容)

取决于:从“托管服务器”迁移到平台(例如GAE)可能是。

  

学习曲线(由于上述原因)

如果您习惯于运行自己的服务器,Amazon EC2可能不是一个很大的学习曲线

  

没有故障转移(因为故障被处理)

取决于:EC2 - >你必须自己动手

  

即时可扩展性(不是那么即时,但至少是透明的?)?较低的延迟    取决于:EC2 - >你必须为此计划/使用附属服务

答案 2 :(得分:1)

有许多云提供商,据我所知,有两种主要类型:

  • 支持云计算平台的应用程序(例如Amazon E2C,MS Azure)
  • 虚拟实例提供程序,使您能够创建大量正在运行的实例(例如RightScale)

就平台而言,请注意关系数据库支持仍然很差,而且学习曲线很长。

对于虚拟实例提供程序,学习曲线实际上很少(您只需启动实例),但实例需要某种方式进行同步...对于复杂的应用程序,这可能不起作用。

至于你原来的问题:我认为没有任何标准方法可以分析应用程序应该/可以移动到云端。您可能需要熟悉这些选项,缩小到几个提供商的范围,看看您获得的好处是否会对托管托管(您目前可能正在进行)的任何重大胜利。

答案 3 :(得分:1)

在某些方面,比较谷歌应用引擎(gae)和亚马逊ec2就像比较苹果和橘子。

使用ec2,您可以获得一个操作系统,无论是否安装了服务器软件(tomcat,数据库等;您的选择,取决于您选择的ami)。使用ec2,您需要一个(或是一个)系统管理员来保持平稳运行。 ec2上的负载平衡是你必须弄清楚并实现的;我从来没有做过这一部分。 ec2的一大优势是,您可以以编程方式启动和关闭新实例,并且与常规Web服务器提供程序相比,只需在实例启动并运行时付费。您可以使用此“自动旋转/向下”来实现负载平衡和故障转移。但是你必须要执行(再次,我没有这方面的经验)。

使用谷歌应用引擎(gae),所有系统管理都会为您完成。它还可以根据需要在应用程序端和数据库端自动扩展。你也只需支付你使用的费用;一个没有命中的空闲应用程序不会产生任何费用。 gae的缺点是你可以使用的语言受到限制; python和java(或者在jvm上运行的东西,比如jruby)。更大的缺点是数据库不是sql(它们不称它为数据库;它们称之为数据存储区),如果你有一个现有的数据库,可能需要重新编写你的ddl;在程序员的时间里,了解它的工作原理以及如何有效地使用它是一个明确的成本。

因此,如果你从头开始(或愿意改写)并且你有足够的资源和时间来学习它的方法,那么gae可能就是你要走的路。如果你有一个系统管理员或系统管理员的技能,并有时间或知道如何设置负载平衡和故障转移,那么ec2可能是你要走的路。如果您的应用程序将闲置很多,那么ec2很昂贵;上一次我检查它是每月70美元,留下一个小实例。

答案 4 :(得分:0)

我认为你必须关注的要点是:

 granular cost (pay per Ghz or Gbyte)
 instantaneous scalability (not so instantaneous, but at least transparent?) ? lower latency

将您的应用程序更改为在云上运行需要花费大量时间,但如果云不降低您的成本和/或您并不真正需要瞬时/快速可扩展性,那么这并不重要(经典例如电子商务应用程序)

考虑了这两点之后。您应该考虑的一个IMO是relies on a complex database (ie. num. tables),因为根据其“复杂性”,更改为云环境可能会非常麻烦。