您是否可以將應用程序部署到Azure幾乎與您的應用程序的工作方式有很大關係。 Azure幾乎要求你的應用程序是無狀態的。如果它是一個普通的vanilla web應用程序,它僅將數據存儲在會話或應用程序高速緩存中,並僅將數據保存到數據庫,則可將其部署到Azure。
如果您有狀態服務像後臺線程一樣運行(反正很糟糕),或者如果您將數據保存到文件系統(除了臨時緩存),那麼您可能會遇到問題。真的,遷移到Azure的問題與遷移到任何多服務器負載平衡解決方案的問題是一樣的。一個警告是永久存儲。
如果您需要將數據存儲在數據庫以外的地方,那麼您最好使用Azure的存儲解決方案,該存儲解決方案具有用於存儲二進制數據,鍵/值數據的API和客戶端庫(他們稱之爲表,但實際上,這不是表)和隊列。他們也有一個透明的blob-as-file-system選項來兼容。如果您希望在您的應用中使用這些也在Azure之外使用的應用,那麼您需要在代碼和支持Azure服務和標準本地服務的Azure客戶端庫之間編寫一個額外的層。 Azure SDK確實包含用於Azure服務的模擬器,但它們絕對不是用於生產用途。
就Azure特定項目的機制而言,這實際上並不困難。是的,您需要在您的解決方案中創建一個特定於Azure的項目,該項目定義了Web角色和部署的內容,但它會引用現有的Web應用程序,而不是相反。您可以將Azure Web角色部署到Azure,也可以繼續將現有應用程序正常併發地部署到IIS。
網站,Web應用程序,MVC,真的沒有太大的區別。其實也不一定是.NET。可以是PHP或Java或任何你想要放在你的VM上的東西。就Azure而言,它的工作方式都是一樣的。
MS喜歡將Azure推廣爲平臺即服務(Paas)解決方案,他們提供大量服務,並在其標準平臺上運行應用程序,並與他們稱之爲基礎架構的Amazon AWS形成對比-as-a-Service(Iaas),它只是一個虛擬機。但是,MS實際上與AWS一樣是一個IaaS解決方案,甚至可能更是如此。AWS和Azure之間的唯一區別是AWS允許您選擇在虛擬機上安裝什麼,使用Azure時必須使用Windows Server 2008 R2作爲虛擬機的基礎(但您可以自定義VM映像以在上方安裝自定義軟件的窗戶)。使用Azure和AWS,主機可以提供額外的PaaS服務,您可以利用這些服務進行數據存儲和消息路由。 AWS還提供大量額外的服務,例如視頻流。
另請注意,使用Azure(和AWS我認爲),即使在非託管應用程序中,您也可以使用它們提供的服務。如果您想從非Azure應用程序使用Azure的數據存儲,那麼可以這樣做,它只是HTTP REST調用來獲取/放置數據。您在數據中心與非數據中心託管應用程序之間輸入/輸出數據的唯一區別是,如果應用程序也位於數據中心內,則數據中心可以是免費的(只是數據輸入/輸出是數據中心內的免費數據,您仍然有存儲空間交易費用)。
謝謝我認爲這實際上是我的大部分問題。是的,我們確實使用文件系統,所以我們需要一個接口層用於文件系統訪問,一旦我瞭解網絡角色的工作原理,看起來就像是最多的工作。 – eaglestorm 2011-05-26 02:10:38