2009-10-25 99 views
3

我刚刚查看完这个问题:https://stackoverflow.com/questions/753122/which-cloud-computing-platform-should-i-choose如何设计为云计算在多个云可能涉及应用

但是,我不能肯定我应该做的在设计安全工程师的应用程序,因此高正常运行时间很重要。因此,如果我的应用程序是使用SQL Server编写的,那么似乎我最好的选择是为Azure设计,但是亚马逊的解决方案会是一个不错的选择吗?我将如何决定是否应该将所有内容都放在同一个系统上,或者将数据放在Amazon云和Azure上的ASP.NET上?

我有另一个应用程序,我正在处理的实用程序信息,水和电,所以有使用和计费信息,它是用PHP编写的使用SQL Server。这对于云计算可能是一个很好的应用吗?看起来亚马逊的解决方案将是PHP的最佳解决方案,所以我唯一的选择,但是,您如何决定使用哪些产品组件?

基本上我的问题是在应用程序体系结构上。设计托管很简单,但云计算增加了新的挑战。

我主要关注的是纯粹的设计我的应用程序。

如果我决定使用该语言,是否会将我锁定到云解决方案中?

我何时需要数据库与应用程序位于不同的云中?

如果我想使用LIFT框架(用Scala编写),它们中的任何一个都允许我安装任何我需要的东西?

+0

您问了几个问题,我有一个问题 - 您是如何得出亚马逊的云产品最适合PHP的结论?是否因为SQL Server要求? – 2009-10-25 01:07:54

+0

我主要在这方面看GAE,Azure和亚马逊,前两个似乎并不适用于PHP,但我认为我看到Azure可能实际上可以与PHP一起工作。 – 2009-10-25 01:12:46

+0

http://www.mindmeister.com/15936058/cloud-computing-players思维导图。 – jldupont 2009-10-25 14:43:03

回答

4

我们在亚马逊AWS上运行一个相当大的金融服务SaaS。

这里有两个常见问题:应用程序体系结构和云平台服务。

我发现我们的应用程序体系结构与将部署到内部虚拟机或真实硬件时的应用程序体系结构基本相同。我们使用大多数开源工具(Java,Spring,Hibernate,MySQL,Terracotta ......)创建了一个相当标准的n层应用程序。当涉及高可用性/容错数据库时(由于基于硬件的选项不可用),有一些考虑因素,但除此之外我们并不真正“针对”特定的云实施。

云平台服务完全是另一回事。由是,我的意思的东西,如:

  • 开始/停止/监控/管理/缩放情况下
  • 可用性/冗余(如亚马逊可用性区域)
  • 部署/初始化/配置实例
  • 文件备份/恢复
  • 安全(如防火墙控制)

有几乎没有任何标准化该地区,尽管这是一个积极的兴趣领域。

从广义上讲,您可能希望以与云中立的方式构建应用程序,但会创建非常具体的操作过程。

关于拆分不同的供应商之间的介绍和DB,我不认为这是因为:

  • 如果任何一个供应商发生故障,你下来
  • 数据传输在互联网上比较慢,比一个云提供商内的数据传输更昂贵,安全性更低。

更好地利用多个云提供商将应用程序的整个副本部署到两个或两个以上,在双机热备,以防主走下跨越两个或可能有一个负载均衡。但是,如果捕获交易数据,则需要一种策略来协调备用环境中捕获的数据。根据您的应用程序的性质,这可能也可能不可行。

您通常可以在虚拟服务器上安装任何您喜欢的软件,尽管我没有使用Azure的具体经验。如果您使用AWS或类似服务,安装LIFT将不会成为问题。

+2

这里所指的是IaaS:基础设施即服务。这只是一个市场部分,通常被视为总体类别“云计算”的一部分。 – jldupont 2009-10-25 02:05:08

+0

我们是一家SaaS提供商。我正在讨论部署在虚拟环境中的SaaS应用程序的体系结构以及运行它们的支持服务。 IaaS通常被理解为“服务器,网络设备,内存,CPU,磁盘空间,数据中心设施”。 EC2还在该基础设施之上提供服务,为运营应用程序提供平台的基础。我想在这一点上,虽然在云计算(早期)的发展中,对术语的定义会有很多意见。 – 2009-10-25 03:00:30

+0

当然,您是一家SaaS提供商,但您正在使用来自IaaS供应商的服务。是的,会有关于术语定义的意见,但总的来说,我试图坚持分析师公司“销售”(无论好坏)。 – jldupont 2009-10-25 03:10:42

-3

这是“云计算”的曙光,喜欢这样的出现,参赛者正在铺设他们的“鼠标陷阱”,希望尽可能多地捕捉。玩家们需要一段时间才能确定一种共同点(即某种形式或某种形式的标准),在此之前,他们的“差异化”武器将迫使我们选择双方。

我猜这太“面向业务”了,它会被拒绝..但是,嘿,我想到之前的技术/语言。在这一天结束时,它归结为赚钱。

如果有人想着没有被锁定到云计算供应商(SaaS的/ PaaS的类型,而IaaS的类型厂商进一步沿着)这在游戏初期,好了,你是在一些大的意外。开火!

免责声明:我不代表任何类型的云计算供应商(SaaS,PaaS,IaaS)。投票支持我的人会小心地确定他们的效忠吗?

+0

这是如何远程回答问题的? – 2009-10-25 01:16:31

+0

他也投了我的票,因为我问了。我实际上在*云计算中工作,并且我知道它已经存在了一段时间,尽管形式各异。这种关于云的FUD是荒谬的,我真的希望他能够抓住并删除答案。 – 2009-10-25 01:32:30

+0

伙计们 - 我想这取决于您对云计算的定义:目前它尚未定义。对于Saas/PaaS细分市场,我很遗憾**但**的理由尚未确定,公司将不可避免地彼此分化,让客户处于困境。我知道这样的平台的供应商会对我投这个票,但我确信希望另一方的顾客能看到这个信息。 – jldupont 2009-10-25 01:38:36

1

决定一种语言并不会将你锁定在提供者中;但是,设计在Windows上运行呢。 Windows虚拟化比Linux虚拟化市场窄得多; Xen,Linode,Slicehost等技术使用的Windows不会多次虚拟化Windows。

随着您的应用程序针对Windows,您的选择明显更薄。在我的市场上,我知道亚马逊迎合Windows(显然,Azure也是如此)。然而,像我们这样的Slicehost's更具成本效益的解决方案不会--Windows会花费您的高价。

至于云隔离:将应用程序分割为多个“云”的主要原因是提供应用程序的可靠性。云确实会下降 - 当然,很少 - 并且将所有的鸡蛋放在一个篮子里会让你需要一个需要高可用性的应用程序。但是,如果数据库位于应用程序的单独云中,那么您将因在互联网上执行SQL而遭受延迟(另外还需要一些体系结构来保护该流量,例如SSH隧道或SQL Server可能提供的协议级加密[不太确定,我是PostgreSQL的人])。

不要陷入云托管与托管完全不同的想法。事实上,他们几乎是一样的。在我的公司,我们认为云托管只是一种思考同样的'托管'的新方式。这不是什么魔术。

要设计云托管,您的应用程序只需要具有分片功能,并且需要知道可随时添加或删除节点。取决于你的设计方式,这不是很难解释;通常,只有负载均衡应用程序才会意识到特定于云的语义。