我們正在開發一個由幾個Web應用程序(在不同的域下)以及一個後臺調度程序(使用Quartz.net)組成的大型應用程序,它將運行在一個工作者角色上(目前它是一個Windows服務,但不在Azure上有意義)。我試圖找出最適合我們的方式:爲每個應用單獨託管服務或在單個託管服務/角色下運行所有應用。我想還有第三個選擇是在單個託管服務下運行多個Web角色,但是我需要使用ARR(應用請求路由),我不確定它會給我帶來什麼好處(如果有的話)。聽起來像更多的開銷,但我很可能是錯的?Azure上的多個應用程序 - 每個服務一個應用程序還是一個整合應用程序?
我的項目有:
- 面向公衆的網站 - 低負荷
- 專用儀表盤 - 中等負荷
- 跟蹤(分析)應用程序,跟蹤展示,點擊等 - 高負荷 - 5+萬次點擊/月
- API - 也可作爲跟蹤應用程序依賴於它的高負荷
- Quartz.net調度(工作者角色)
公共網站和儀表板可能應該在單個Web角色上,但我不確定跟蹤和API項目是否應該使用自己的雲服務,以便它們可以獨立擴展或是否應該在單個Web角色上運行所有內容使用主機頭文件(當然除了調度器)並且一次性縮放所有內容。所有託管服務將運行多個實例,所以我不擔心部署期間發生的事情(因爲Azure每次只能轉換一個實例)。
此外,運行在單個角色上會讓客戶端應用程序(網頁,儀表板,跟蹤)與API之間的延遲更長,或者親密度組和虛擬網絡使該點無關緊要?
我一直在尋找一段時間的最佳答案,但還沒有找到足夠的結論。
我最關心的是原始性能和可擴展性。價格不是我們的決定性因素。
謝謝
這可能對於SO來說太廣泛了......請注意,Azure不是免費服務,因此可能需要考慮多個服務的價格。 –