天天看點

Windows Azure初體驗

目前在IT界,雲這個概念的第一意思不再是詞典裡的解釋了。不過它們還是有相同點的——也許确實會醞釀出一塊大蛋糕,可也是飄在天上,衆神分食之,與我等P民無關。所謂雲,不過是網絡時代發展到一定階段的必然産物,而并非劃時代的技術質變,so,我一直保持既不排斥亦不主動接觸的立場。but,最近我有個個人伺服器快到期了,于是也打算嘗試一番。

現在比較知名的雲服務有很多,國内的首推阿裡雲,而作為.Neter,Windows Azure也是一種選擇。本人同時申請了兩者的免費試用體驗,對于阿裡雲,在申請階段部落客被折騰得夠嗆,後面可能會寫一篇吐槽的随筆;相對來說,Windows Azure價格昂貴,不過既然是免費體驗(90天),試試亦無妨。

目前Windows Azure在國内由世紀互聯營運,比較坑的是很多服務國内還沒有開始營運。另外不能使用微軟賬号登入Windows Azure管理門戶,而是使用在注冊域名時填寫的使用者ID。假如您注冊的域名是xxxx.partner.onmschina.cn,那麼您的登入賬号就是“使用者[email protected]”。不出意外的話,申請之後兩三天,你就能收到一份告知通過的郵件。

前幾天又去Windows Azure中國首頁看了下,發現官網已經不再接受新的試用申請,應該說部落客搭了一趟末班車,運氣!(截止到部落客發文,Windows Azure中國官網又推出了所謂1元試用計劃,名額為1500人,試用期一個月,且有積分限制)

另:本文隻簡略涉及部落客接觸到的功能,且并不保證所有闡述都正确。

登入後,會看到類似下圖的頁面,頂部為工具欄,左側顯示Windows Azure所提供的所有雲服務,右側面闆顯示您已在使用的服務。

Windows Azure初體驗

點選頂部工具欄的下拉按鈕,會彈出幾個連結,其中“文檔”連結到微軟總部的微軟雲官網(不是中國[世紀互聯]官網)。左側菜單的一些概念我接觸的并不多或者從沒接觸過,比如Active Directory,登入進來之後就發現其中已經存在一條目錄了,即登入ID。根據網資(網上資料)所說——IT管理者通過 Windows Azure Active Directory,可以輕松管理使用者對數百個雲 SaaS 應用程式(如 Office 365、Box、GoToMeeting、DropBox、Salesforce.com 等)的通路,具體如單點登入、權限配置等等——so,我覺得這比較适用于企業内部系統,而相關的也有“域”、“命名空間”的概念,可以說,這應該是原來的一套windows伺服器Active Directory在雲端的重制。

存儲

Windows Azure有個所謂的“存儲賬戶”的概念,并提供了三種類型的存儲服務——Blob 服務、表服務、隊列服務。Blob 存儲是一項可存儲大量非結構化資料(如文檔、圖檔、流媒體等)的服務;表服務提供類似NoSql方式存儲資料;隊列存儲是一項可存儲大量消息的服務,使用者可以通過經驗證的呼叫,使用 HTTP 或 HTTPS 從世界任何地方通路這些消息。

相對來說,Blob存儲是更基礎的存儲服務,比如虛拟機中的資料磁盤即是Blob存儲。是以,為避免出現硬體故障并提高可用性,Windows Azure在同一資料中心的三台計算機上複制每個 blob。寫入 blob 時會更新所有三個副本,是以稍後的讀取操作不會導緻不一緻的結果(部落客并未找到任何資料涉及到這三個副本的負載平衡說明,是以可認為這裡多個副本的存在隻關乎可靠性,而非性能)。您還可以指定将 blob 資料複制到位于同一區域中但至少相距 500 英裡的另一個 Windows Azure 資料中心。此複制稱為“異地複制”,發生在 blob 更新後的幾分鐘内,可用于災難恢複。我們還可以通過終結點對Blob資料進行讀寫操作,這裡不再贅述。

對表服務的了解請參看:Windows Azure 表存儲:不同于傳統資料庫,部落客表示對文章中的一句話印象深刻:在學習新知識的時候,避免自己被迫轉換觀念,但卻無法真正了解。

隊列存儲部落客暫未研究,按過不表。

 虛拟機

簡單的說,虛拟機即是遠端伺服器。在管理門戶中建立虛拟機的過程很簡單。建立完畢後,點選網頁下部工具欄的“連接配接”按鈕,浏覽器會自動下載下傳遠端連接配接用到的rdp檔案:

Windows Azure初體驗

下載下傳完畢後,輕按兩下打開遠端登入框,填入之前建立時設定的使用者名和密碼即可登入虛拟機(請自動忽略右上角亮點)。

Windows Azure初體驗

可以看到,虛拟機自帶系統磁盤和一個臨時磁盤。Azure上的虛拟機上有兩種磁盤,一種是存儲在Blob存儲上的,一種是存儲在虛拟機所在實體機磁盤上的。前一種由于使用了Blob存儲,其資料會按照Blob的存儲政策在本地存3份,并在異地保持一份鏡像,其資料的可用性和可靠性都很高,虛拟機通過網絡通路這些Blob存儲,不依賴于特定一台實體機。後一種依賴于實體機,如果實體機故障或進行維護,這個存儲可能會被清空。顯然,如果我們使用虛拟機的時候不厘清楚磁盤類型,就會導緻資料丢失。上圖的C槽(系統盤)是Blob盤,D盤是臨時盤。

臨時盤往往空間比較大,完全不用的話有些可惜。另外,臨時盤在本地,存取資料要比Blob快。是以,臨時盤适合存放一些臨時資料,比如裸日志、中間結果、上傳下載下傳的緩存等等。

為了提高運作效率,預設情況下,系統盤開啟了讀寫緩存。

Windows Azure初體驗

由于開啟了磁盤緩存(主要是寫入緩存),是以會有寫入資料丢失的風險。綜上所述,對于需要持久化的資料,比如資料庫檔案,系統盤和臨時盤都不是很好的存放位置(當然你也可以關閉系統盤的寫入緩存,不過有些得不償失了,請看在 Windows Azure 上設定 SQL Server 虛拟機後續步驟一節)。我們可以通過附加一個新的資料磁盤到虛拟機來解決這個問題(當然得禁用寫入緩存),附加的新磁盤是Blob盤。附加磁盤的步驟請參看:如何将資料磁盤附加到虛拟機。Now,我們就可以在虛拟機中安裝SQL Server,并将資料庫檔案放到新的資料磁盤上了。如前所述,資料庫似乎存儲在運作伺服器的 VM 的本地磁盤上。不過,事實上,其中每個磁盤都寫入到 Windows Azure blob。與任何 Windows Azure blob 一樣,它所包含的資料會在資料中心中複制三份。還可以使用 SQL Server 資料庫鏡像等方式來提高可靠性。

在建立虛拟機的過程中,會看到有個“可用性集”的選項,可參看:管理虛拟機的可用性。可結合使用可用性集和負載平衡終結點,以確定應用程式始終可用并且高效運作。有關使用負載平衡終結點的更多資訊,請參見對虛拟機進行負載平衡。

SQL Database

除了在虛拟機中安裝SQL Server外,。Windows Azure 提供了稱為 SQL Database 的 PaaS 技術,該技術允許您對關系資料進行單獨管理。

建立SQL Database時會讓你選擇在已有伺服器上建立庫還是建立一個伺服器,下圖所示為部署在兩台伺服器上的兩個SQL Database。

Windows Azure初體驗

SQL Database 不為每個客戶提供自己的 SQL Server 實體執行個體。相反,它為每個客戶提供多租戶服務和邏輯 SQL Database 伺服器。所有客戶共享該服務提供的計算和存儲容量。與 Blob 存儲一樣,SQL Database 中的所有資料都存儲在 Windows Azure 資料中心的三台獨立計算機上,進而為您的資料庫提供内置的高可用性 (HA)。雖然對應用程式來說,SQL Database 非常類似于 SQL Server,但它的行為與運作在實體計算機或虛拟機上的 DBMS 不完全相同。因為它運作在共享硬體上,是以其性能将随其所有客戶置于該硬體上的負載而變。這意味着 SQL Database 中存儲過程等任務的性能可能每天都在變化。

在使用本機用戶端通路雲端資料庫之前,需要配置伺服器,允許通路它的IP位址(配置頁面會自動擷取你的公網位址,你也可以添加其它允許通路的IP[範圍]);由于網站也打算放在雲端,是以設定其它雲服務也能通路該伺服器。這一步驟在伺服器的配置頁籤下進行。

Windows Azure初體驗

Now, 現在就可以在本機使用用戶端通路雲端資料庫了,以上圖test資料庫為例,連結位址為:rmvatzpfci.database.chinacloudapi.cn,1433。連上之後,就可以開始部署了,比如遷移資料庫,如下圖:

Windows Azure初體驗

這同以往的資料庫部署并無不同,部落客非常順利地将本地資料庫遷移到雲資料庫。然而在使用時發現,select into 到臨時表的方法将出現異常——“Statement 'SELECT INTO' is not supported in this version of SQL Server.”網上資料( SELECT INTO With SQL Azure)說SQL Azure要求所有表都要有聚合索引(經驗證并不需要),而這對于select into 創造的臨時表來說自然是強人所難。不論如何,我們可以使用先create臨時表(不需要聚合索引),再Insert INTO 的方式使用臨時表。

關于 SQL Database 和虛拟機中的 SQL Server ,部落客查閱資料後也沒有發現很大不同,也許要深入使用後才能真正了解并差別開來。

網站

關于如何在Azure管理門戶中建立一個預設空站點不再贅述,在這步完成之後,就可以使用VS将網站直接釋出到雲端了。步驟如下:

1、在管理門戶中點選一條網站記錄進入網站管理頁面,then點選“下載下傳釋出檔案”,将會下載下傳一個PublishSettings類型的檔案:

Windows Azure初體驗

2、打開vs(部落客用的是2012),右鍵項目——釋出——配置,點導入,選擇之前下載下傳的配置檔案:

Windows Azure初體驗

3、确定後,下一步為連接配接到伺服器的必要的驗證資訊:

Windows Azure初體驗

4、下一步,在“設定”頁籤将看到應用程式使用到的資料庫。該步驟會自動檢測EF context和web.config中的資料庫連接配接字元串的key值,可以按需設定連接配接字元串(在本例中,連接配接資料庫即為前述雲端SQL Database),也可以釋出成功後在管理門戶中手動添加:

Windows Azure初體驗

5、下一步,選擇需釋出的檔案,點選釋出,完成。

Windows Azure初體驗

我們還可以使用ftp釋出網站和管理網站檔案,ftp位址在網站管理的儀表盤頁籤下:

Windows Azure初體驗

關于網站是否有負載平衡的支援,官方說“内置自動縮放和負載平衡”,但資料較少。

[更多]參考資料:

Windows Azure使用必讀

為什麼我們需要域?Active Directory系列之一 

部分雲端存儲類型介紹和比較:資料管理和業務分析

如何向Azure虛拟機傳檔案

Windows Azure Virtual Machines設定IIS 7.5 FTP

什麼是IaaS, PaaS和SaaS及其差別

轉載請注明本文出處:http://www.cnblogs.com/newton/p/3913679.html 

繼續閱讀