2012-10-09 63 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