代码之家  ›  专栏  ›  技术社区  ›  James Black

如何设计可能涉及多个云的云计算应用程序

  •  3
  • James Black  · 技术社区  · 15 年前

    我刚刚看完这个问题: https://stackoverflow.com/questions/753122/which-cloud-computing-platform-should-i-choose

    但是,我不确定在为安全工程师设计应用程序时应该做什么,所以高正常运行时间很重要。

    所以,如果我的应用程序是用ASP.NET编写的,使用SQL Server,那么我的最佳选择似乎是为Azure设计,但是Amazon的解决方案是一个好的选择吗?我该如何决定是将所有内容都放在同一个系统上,还是将数据放在Amazon的云上,将ASP.NET放在Azure上?

    我正在开发的另一个应用程序处理水电的公用设施信息,因此有使用和计费信息,它是使用SQL Server用PHP编写的。这可能是一个很好的云计算应用程序吗?亚马逊的解决方案似乎是最好的PHP解决方案,所以我唯一的选择是,但是,你如何决定要使用他们产品的哪些部分呢?

    基本上,我的问题是关于应用程序体系结构。为主机设计很容易,但是云计算增加了新的挑战。

    我主要关心的是应用程序的设计。

    如果我决定使用哪种语言,这是否将我锁定在云解决方案中?

    我什么时候希望数据库与应用程序位于不同的云中?

    如果我想使用提升框架(用scala编写),它们中的任何一个会允许我安装我需要的任何东西吗?

    3 回复  |  直到 15 年前
        1
  •  4
  •   Eric J.    15 年前

    我们在Amazon AWS上运行相当大的金融服务SaaS。

    这里有两个通用的问题:应用程序架构和云平台服务。

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

    云平台服务完全是另一回事。我的意思是:

    • 启动/停止/监视/管理/缩放实例
    • 可用性/冗余(例如,Amazon有可用性区域)
    • 部署/初始化/配置实例
    • 文件备份/恢复
    • 安全性(例如防火墙控制)

    该领域几乎没有任何标准化,尽管这是一个积极关注的领域。

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

    关于在不同提供商之间拆分演示文稿和数据库,我不建议这样做,因为:

    • 如果任何一个提供者失败,则表示您失败。
    • 与一个云提供商内的数据传输相比,Internet上的数据传输更慢、更昂贵、更不安全。

    多个云提供商的一个更好的用途是将应用程序的整个副本部署到两个或多个应用程序中,在两个应用程序之间平衡负载,或者在主应用程序崩溃时让一个应用程序处于热备用状态。但是,如果捕获事务性数据,则需要一种策略来协调在备用环境中捕获的数据。这可能可行,也可能不可行,这取决于应用程序的性质。

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

        2
  •  1
  •   Jed Smith    15 年前

    决定使用哪种语言并不能将您锁定到提供程序中;但是,设计在Windows上运行却不能。Windows虚拟化是一个比Linux虚拟化窄得多的市场;Xen,技术linode、slicehost等等的使用,不会多次虚拟化Windows。

    由于您的应用程序是针对Windows的,所以您的选择显然要薄一些。在我的市场上,我知道亚马逊是为Windows服务的(显然,Azure也是如此)。然而,像我们和Slicehost这样更具成本效益的解决方案不会——Windows会让您付出额外的代价。

    至于云隔离:在多个“云”中分割应用程序的主要原因是提供应用程序的可靠性。云确实会下降——诚然,很少——并且将所有鸡蛋放在一个篮子中会使您的应用程序需要高可用性。但是,如果您的数据库与您的应用程序位于单独的云中,那么您在Internet上执行SQL会有延迟(另外还需要一些用于保护该通信的体系结构,如ssh隧道或SQL Server可能提供的协议级加密[不太确定,我是PostgreSQL用户])。

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

    为了设计云托管,您的应用程序只需要具有切分功能,并注意节点可能随时被添加或删除。这并不难理解,这取决于您如何构建它;通常,只有负载平衡应用程序才知道特定于云的语义。

        3
  •  -3
  •   jldupont    15 年前

    这是“云计算”的曙光,和其他出现的情况一样,参赛者正在 他们的 “老鼠陷阱”希望尽可能多地捕捉。玩家需要一段时间来定义一个共同点(即某种形式的标准),直到那时,他们的“差异化”武器将迫使我们选择双方。

    我想这太“商业化”了,它会被否决的。但是,我想的是商业方面 之前 技术/语言。一天结束的时候,归根结底就是赚钱。

    如果有人想 没有被锁定 对于云计算供应商(SaaS/PaaS类型,而IaaS类型的供应商则更进一步),在游戏的早期,你会遇到一些大的惊喜。开火!

    免责声明: 我不代表任何类型的云计算供应商(SaaS、PaaS、IaaS)。投我反对票的人会愿意承认他们的忠诚吗?