08/04/2012 由於有不少人想嘗試Azure,咨詢注冊問題,更新Azure支持部分。
簡介
嘗試Agile的方式來寫博客。本文主要覆蓋以下兩個故事。故事一:作為一個沒有開發過雲計算平台的讀者,我希望通過閱讀本文可以了解雲計算的概況。故事二:作為沒有開發過Azure的讀者,我希望通過閱讀本文可以創建第一個Azure Web Role應用。
雲計算平台簡介
隨着移動設互聯網的進一步快速普及,雲計算在冷處理以后再度升溫。當初在我剛剛從事雲計算開發的時候,感覺Cloud是空中樓閣,雲里霧里。也沒有人跟我系統地講述雲計算,經過一段時間Azure的開發,並且對其他Cloud平台的了解,發現Cloud真的沒那么難以理解,如果你覺得對Cloud的認識還是雲里霧里,我希望這篇文章能幫你撥開雲霧見青天。
到底什么是雲計算
雲計算就是服務,使用雲計算平台就是購買服務。一起來看看雲計算平台分好多類,什么IaaS,PaaS,SaaS等等,最后一個S是什么,最后一個S代表Service。我們使用雲計算平台,就是購買服務,了解這個,就了解了雲計算的核心,也同時解開了很多選型上的問題,例如使用雲計算平台還是自己購買硬件來維護,就像上館子吃飯和家里弄私房菜的區別,各有千秋。
雲計算的分類
如上所述,雲計算平台分IaaS,PaaS,SaaS等等。他們的共同點就是通過服務,都像下館子吃飯,區別是你吃火鍋是自己動手,吃韓國烤肉服務員幫你烤,吃西餐是廚師做好拿出來,都是享受服務,但是享受程度有一點點區別,也沒有絕對的好與差,蘿卜白菜各有所好。
從左到右,你管理的范疇越來越少,而靈活性越來越低。第一個不是雲計算平台,是傳統的自己管理模式。
IaaS
第二種叫做Infrastructure-as-a-Service (IaaS),基礎框架作為服務,雲計算提供商只是管理網絡,物理存儲,服務器和虛擬化等部分。你可以在其基礎上選擇操作系統,例如Windows或者Linux,選擇中間件,運行時例如JVM,.NET等。IaaS最流行的平台是Amazon的AWS。由於IaaS很靈活,因此好多其他PaaS和SaaS的平台都是基於AWS。
PaaS
第三種叫做Platform-as-a-Service (PaaS),平台作為服務,這個層次的雲計算平台可以自己選擇數據層,應用程序等等,當前雲計算平台大都是以這種形式提供的,例如微軟的Azure,谷歌的GAE,HeroKu,App Harbour等等,其實界線越來越迷糊,像Azure除了不支持選擇O/S(其實可以選擇Windows的不同版本),支持多種平台,而且支持還VM mode,越來越像IaaS了。但是官方博客也說過他們不是IaaS。
Azure支持的語言與平台
在各個PaaS的雲計算平台中,我覺得Azure是最靈活的,這也是我最喜歡使用Azure的原因,靈活性與管理難度達到很好的折中。
SaaS
Software-as-a-Service(SaaS)軟件作為服務,通常提供一些特殊的軟件服務,典型的是蘋果的iCloud,微軟的SkyDrive,一般客戶化程度不高。
為什么選擇Azure
平常工作上會用到AWS,Azure和Saleforce,但是用得最多是Azure,每次給客戶推薦的也是Azure,為什么我喜歡使用Azure,主要基於以下考慮:
1. 與.NET無縫結合,Azure可以無縫地支持.NET開發環境,例如Web項目,MVC項目等等,開發的項目不需要做任何修改就可以直接部署到Azure平台上。
2. 支持Data Storage和SQL,Azure Windows自帶了Data Storage,其支持Table Storage,BLOB和Queue,也就是當前十分流行的NoSQL。同時也支持SQL Server,方便存放關系型數據。
3. 比其他PaaS好靈活,Azure除了不能選擇O/S以外,基本上什么都可以自己選擇,Azure支持多種語言,多種運行時,多種數據庫,還支持VM mode,可以自己安裝軟件。其他的PaaS遠遠沒有那么靈活,例如GAE雖然一直改進,但是與Azure相比限制性大很多。Azure還支持Cache,很多其他PaaS都沒不支持。
學習Azure有什么好處
1. PaaS的雲計算平台一般提供Web Role和Worker Role兩種角色,Web Role可以理解為一個Web服務器(例如IIS)上的一個網站,Worker Role可以理解為一個后台任務。Azure都提供了這兩種角色,為Azure開發程序,也了解到其他平台的開發模式。
2. 一般雲計算平台的管理模式與Azure類似,可以根據需求調整Role的數量,和處理能力,例如extra small,small,medium,large,extra large等等,這些東西學會了,其他平台游刃有余。
3. Azure支持靈活的數據訪問,Table Storage,SQL等等,學習Azure可以同時了解NoSQL和關系數據庫的不同應用。
4. 可以免費嘗試,普通用戶可以免費使用三個月,MSDN訂閱用戶可以免費使用一年。
免費使用三個月。
MSDN訂閱用戶免費使用一年。鏈接http://www.windowsazure.com/en-us/pricing/member-offers/msdn-benefits/
第一個Azure程序
注冊Azure帳號
要開發第一個Azure程序,其實可以使用本地模擬器,是完全不需要花錢的,但是我講述的是如果把程序部署到真正的Azure平台上去。
首先要注冊一個Azure帳號,登錄https://www.windowsazure.com/en-us/pricing/free-trial/,需要Live ID,電話和信用卡。
微軟會發送一條短信給你確認,然后需要填寫信用卡信息,如果三個月以后不使用,可以Cancel的。
注意:如果只是測試,每次部署都選擇extra small的instance,然后每次用完都把instance刪掉,這樣就不會花錢了。
安裝Azure SDK
當前Azure SDK的版本是1.6,可以在這里http://www.windowsazure.com/en-us/develop/downloads/下載,注意,如果版本更新了,請下載最新版本。對於其他語言,也可以在這里選擇下載。
新建和部署項目
下面演示如何創建和部署一個Web Role的項目,Web Role支持ASP.NET, MVC的項目,這里不講述如何創建Web項目了,與普通Web項目沒有任何區別。
安裝完Azure SDK,就可以創建Azure項目了,右鍵Solution,點擊新建項目
可以新增相應的Web Role,也可以加Worker Role,一個Role部署的時候對於一個或者多個instance,可以調整instance的處理能力。
要把Web項目部署到Azure,右擊Azure項目,選擇Public
選擇你的azure帳號,如果沒有可以選擇Manage來新增帳號。
在Manage中選擇New來新增帳號。
選擇或者新增一個證書,第一次一般選擇Create
這個證書也是可以通過命令行來生成的,步驟如下:
Open a Visual Studio Command Prompt as administrator from Start | All Programs | Microsoft Visual Studio 2010 | Visual Studio Tools | Visual Studio Command Prompt (2010) by right-clicking the Visual Studio 2010 Command Prompt shortcut and choosing Run as administrator.
makecert -r -pe -n "CN=AzureMgmt" -a sha1 -len 2048 -ss My "AzureMgmt.cer"
然后登錄Azure Management Portal,找到訂閱的ID
然后填到下面的第三個欄目里面。
填寫完畢,點擊OK。
點擊Next
然后填寫一個名稱,選擇地區,如果在中國可以選擇東亞,會host在香港。然后點擊OK。
點擊Next,如果想登錄到虛擬機,需要選擇“Enable Remote Desktop”
點擊Publish就可以部署了。
回答Azure Management Portal查看狀態,如果狀態變成Ready,就完成了,這樣就可以訪問Azure的Web Role了。
通過DNS的地址來訪問。
第一個Azure程序就部署成功了。
國內做雲計算的一些人
要關注雲計算平台,可以關注一些人,他們常常討論一些Azure等相關的事。首先我是自己,呵呵 @林永堅Jake 超級猛將:@老羊肖恩 WP達人:@納米咖啡 美國Azure Team:@billliu_seattle 各大高手: @51Aspx海峰 @Azure官方論壇支持 @xgluxv,有錯漏,請搜索#Azure#
Azure支持
在多個雲計算平台中,Azure的服務支持算是比較好的,任務問題都可以提交一個服務單(Support Ticket),網址如下:https://www.windowsazure.com/en-us/support/contact/
如下圖:
如果是注冊問題,請選擇Billing support,然后選擇Other,如果是運行時的問題,可以選擇Windows Azure或者SQL Azure等等具體的問題。
可以選擇email服務支持,如果填寫電話,一般由印度人打電話進行服務,如果email一般是北京的人回復的。