一些背景....如何在本地/內部託管Azure輔助角色?
我們冒險進入Azure的首次,並試圖做到這一點的嬰兒步驟。目前,我們的第一批應用將成爲監控隊列以處理請求的工作人員角色(例如發送電子郵件或執行一些屏幕抓取),然後我們將從我們的內部部署MVC應用和WCF服務插入隊列。稍後我們將MVC應用程序和WCF服務移至Azure。
我們的開發流程基本上是這樣的(在不重要的方面有所修改):
- 當地發展和一些共享的服務器上。檢查到源代碼管理。
- 每隔15分鐘,構建服務器構建和部署,以「發展」的環境(兼作CI和情況介紹,我們需要打比本土以外的「發展」的環境)
- 技術測試員手動觸發構建服務器部署測試環境(或者之前部署的測試版本,包括/不包括數據庫)的最後成功的「Dev」構建。
- 技術測試人員和業務測試人員手動觸發構建服務器以將最後成功的「測試」構建(或者,以前部署的測試構建,包括/不包括數據庫)部署到QA環境。
- 在某個時候,我們合併了QA批准部署的變更集。
- 之後,我們的生產構建服務器將此版本部署到分段中,然後再部署到我們的生產環境中(我們在並行/獨立環境中將其託管N次)。
正如您所看到的,我們有一些內部託管的應用程序版本,供內部支持人員在達到產品之前進行打擊。我希望這些對Azure具有相當低的依賴性。我不需要完成嚴重的依賴性,因此我們將繼續使用Azure隊列以及其他一些機制,因爲它們很容易繼續使用,但我們不希望讓構建服務器必須部署到Azure爲這些環境中的每一個(並且支付所有託管費用)。
那麼,我們如何合理地託管我們的Worker角色,以實際測試部署到Azure的代碼的方式進行?
已經提出的一個選擇是,我們將工作者角色創建爲包裝器/外觀,並在類庫中完成所有真正的工作,這是我們的計劃。然而,允許我們「託管」這個的後續行動是創建第二個包裝器/外觀應用程序,它執行與工作人員角色相同的工作,就像我們可以將其作爲計劃任務或窗口運行一樣服務器。最終,我不喜歡這個選項,因爲整個項目直到升級纔會被測試。
是否有可能在創建第二個包裝器/外觀應用程序時做類似的事情,而不是調用它實際引用的類庫並調用worker角色中的Run()
函數?
這聽起來像VS2010用來在本地調試Azure應用程序。這是我能夠以非常有限的「服務器」方式設置的東西(同樣,大多數情況下,非開發人員可以將應用程序託管起來,以便測試它)?如果要爲我工作,我需要像TeamCity或CruiseControl(最終nant/powershell/you-name-it腳本)部署到Azure模擬器。 – Jaxidian
我希望我能理解你:你可以通過腳本完成部署,並讓QA在這些機器上測試。您可以使用Power Shell進行遠程Azure VM訪問。你不需要VS2010來部署或者其他東西。 – Vladimir
如果你的意思是我可以使用腳本部署到模擬器,那麼是的,你理解我。如果你現在在談論Azure本身,那不是我的問題。同樣,這裏的高級目標是能夠「託管Azure」用於測試目的。 – Jaxidian