2012-10-09 62 views
5

我目前正在研究在云上部署SOA风格 应用到PAAS内的SOA风格的应用程序。部署PAAS

我评估了一些PAAS提供商 包括的Cloud Foundry,Heroku的和Jelastic的。

目前,对纯朴的缘故,我只是有一个Grails应用程序和一个服务jar文件与嵌入式Jetty服务器。这将扩展为多个服务和Web前端,中间的服务通过混合使用rabbit mq和http进行通信。

我目前正在努力了解如何将这些部署到PAAS的拓扑结构。

我的问题是:

  1. 是否所有的服务和Web应用程序已被部署为PAAS内顶级“应用程序”(例如可以DYNOS使用 在Heroku的?)

  2. 如果是这样,可以限制访问服务,以便只能从webapp(网关最终)向他们发出请求。

  3. 他们需要一个顶级的应用程序存在,以便从负载均衡(和自动缩放)受益,因为有可能是每一个服务的多个实例。

  4. 如果每个服务是有其自己的数据存储,我再次相信这将要求它的应用程序?

  5. 如果有一种方法可以做到这一点,而无需使用一个完整的应用程序的每个服务,如何在节点独立寻址的?他们可以使用某种目录服务注册自己吗?

谢谢!

回答

5

我会回答CloudFoundry,因为这是我最精通(什么我支付了:)

序言: CloudFoundry拥有的应用程序的代码段运行的概念(,其可能或可能不会暴露于外界存在standalone运行时)和服务(数据存储等,RabbitMQ属于该类别)。您部署应用程序并将它们绑定到零个或多个服务

  1. 我会回答“YES”假设你要重新部署 和规模在每次调用什么服务(在 CF感觉不服务,但在SOA的意义上)的单独
  2. 的能力
  3. 对于CloudFoundry,答案是“否”,您必须以编程方式执行此操作。请注意,如果这些服务仅通过 *例如* RabbitMQ与进行通信,那么您将它们部署为独立应用程序,并且它们不会首先通过网址寻址
  4. 没有“顶级”和“其他级别”在CloudFoundry中。应用程序是您可以扩展的。绑定到URL的应用程序会自动进行负载平衡。
  5. 是的。请注意,您可以将多个SOA“服务”打包为单个“应用程序”,并将部分对话与CloudFoundry服务A以及其他部分与服务B对话。请参阅1)以了解缺陷。
  6. 从以前的答案,答案是否定的。如果您使用,例如 RabbitMQ作为你的消息代理,然后路由键被用作一种“目录”。

希望这是有道理:)

+0

谢谢您的回答,这证实了我在想Cloud Foundry的实现这种模式的。关于2,是否认为这种安全将留给基础IAAS实施?兔子实例是否可以从外部世界寻址? –

+1

很高兴我能帮到你。您可能会对我的同事Chris Richardson关于开发松散耦合应用程序的前期感兴趣。谷歌为它。 2)是的,有基础架构层的安全性。但是你也不应该忘记你的应用程序安全性,当然也使用框架(例如Spring Security)。关于可从外部访问的服务,有一个“隧道”功能可用于调试和初始设置/转储:http://docs.cloudfoundry.com/tools/vmc/caldecott.html – ebottard