2014-02-18 75 views
2

我想僅在內部端點的Cloud Service 1的WebRole中部署後端WCF服務。 並在WebRole Cloud Service 2中部署ASP.NET MVC前端。Azure:如何在一個虛擬網絡中將一個雲服務與其他雲服務連接

是否可以使用Azure Virtual Netowork從內部端點從前端調用後端?

更新:我只是想建立簡單的SOA架構師這樣的:

+0

你想通過將它們放在單獨的雲服務中來完成什麼?這主要是出於部署的原因? – BrentDaCodeMonkey

+1

我想單獨部署兩個應用程序 – Pokemon

回答

1

Yes和No.

內部端點實質上意味着該角色實例已經被配置成接受特定端口上的流量,但該端口無法接收來自雲服務外部的流量(因此它對雲服務是「內部」的)。內部端點也沒有負載平衡,因此您需要自己「調配」來自呼叫者的流量管理。

現在問題出現了,虛擬網絡允許您安全地遍歷雲服務邊界,讓雲服務1中的角色實例調用雲服務2中的角色實例。但是,要執行此操作,調用角色實例需要知道如何解決接收實例。如果他們在同一個雲服務中,則可以通過RoleEnvironment類來爬取雲服務拓撲。但是這個類只適用於它存在的雲服務,它不知道虛擬網絡。

現在你可以有接收角色實例發佈其FQDN到一個共享區域(稱Azure的表存儲)。但是,除非您使用自託管DNS服務器配置了虛擬網絡,否則雲服務將只使用其自己的內部DNS解析(僅允許您解析同一雲服務中的短名稱)。

所以,是的,你可以做你要完成什麼,但它確實提出了一些挑戰。鑑於此,我不得不爭論分離部署的便利性是否足以證明解決方案的額外複雜性?如果是這樣,那麼我還會查看是否有更好的方法來互連這兩個服務,而不是直接調用(如基於隊列的模式)。

+0

如果說Azure虛擬網絡的主要目的是連接許多虛擬機而不是雲服務,那麼我是否正確?我只是試圖構建像這樣的http://i.stack.imgur.com/C5Xan這樣簡單的SOA架構。png – Pokemon

+0

虛擬網絡是跨雲服務資源(PaaS和IaaS)以及通過使內部網絡可見的雲計算實例創建混合解決方案的一種方式。請記住,「雲服務」僅僅是一個虛擬網絡容器,您將虛擬機放入其中(這包括PaaS角色實例,這些虛擬服務器只是管理的虛擬機)。 – BrentDaCodeMonkey

1

@BrentDaCodeMonkey在他的答案中提出了一些非常有效的觀點,所以先閱讀。

我個人不想放棄通過負載均衡進行自動發現和擴展。我的建議是通過Azure服務總線中繼端點公開WCF端點。這將爲您提供一個「固定」端點,與之通信(解決發現問題)和無限可擴展性,因爲多個服務器可以在同一個Service Bus中繼地址上註冊和監聽。此外,當您的Web應用程序連接到您的WCF服務時,它會通過共享密鑰身份驗證向混合中引入一些基本安全性。

如果您共同找到與你的雲服務的服務總線實例中間繼電器的開銷是完全可以忽略不計,恕我直言,值得它的好處如上所述。

相關問題