似乎无法避免关于云计算的炒作,但实际过渡到这个新平台需要经过多次讨论......
从理论的角度来看,可以说:
云:
托管:
假设以上是正确的;然而,逻辑位置是“它取决于...”..在应用程序本身。 现在出现了一个隐藏的问题:你如何描述你的j2ee应用程序,以确定它是否是云的候选者;知道它是
答案 0 :(得分:2)
“现在出现了一个隐藏的问题:你如何描述你的j2ee应用程序,以确定它是否是云的候选者;知道它是”
顺便说一下,把它作为明确的问题。把它作为这个问题的标题。把它放在问题的开头。如果可能,删除所有假设,并专注于问题。
这就是我们的工作。
致电一些供应商以获取“云”或“托管服务”安排。不是很多。每个中的一个或两个。
询问他们支持的内容。更重要的是,他们不支持。
然后,给出一个不受支持的功能的简短列表,请查看这些功能的代码。如果他们不支持您需要的东西,那么您需要做一些架构工作。或者将它们从您首选的供应商列表中删除。
对于优秀的供应商,请编写一份试用合同,为您提供几个月的免费(或廉价)访问权限进行安装和测试。如果它不起作用,你就没有多付钱。
“但是,当它可能不起作用时,为什么要花费试图托管它的费用?”
费用是多少?你可以花几个月“学习”你的代码。或者您可以尝试托管它。通常,“尝试托管它”将在几天内找到答案。这样做的努力就少了。
答案 1 :(得分:1)
体系结构更改(您可能无法安装任何您想要的内容)
取决于:从“托管服务器”迁移到平台(例如GAE)可能是。
学习曲线(由于上述原因)
如果您习惯于运行自己的服务器,Amazon EC2可能不是一个很大的学习曲线
没有故障转移(因为故障被处理)
取决于:EC2 - >你必须自己动手
即时可扩展性(不是那么即时,但至少是透明的?)?较低的延迟 取决于:EC2 - >你必须为此计划/使用附属服务
答案 2 :(得分:1)
有许多云提供商,据我所知,有两种主要类型:
就平台而言,请注意关系数据库支持仍然很差,而且学习曲线很长。
对于虚拟实例提供程序,学习曲线实际上很少(您只需启动实例),但实例需要某种方式进行同步...对于复杂的应用程序,这可能不起作用。
至于你原来的问题:我认为没有任何标准方法可以分析应用程序应该/可以移动到云端。您可能需要熟悉这些选项,缩小到几个提供商的范围,看看您获得的好处是否会对托管托管(您目前可能正在进行)的任何重大胜利。
答案 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)
,因为根据其“复杂性”,更改为云环境可能会非常麻烦。