|
到目前為止,介紹關(guān)于Azure平臺的底層架構(gòu)的文章一直都不多,可以說少的跟“國寶大熊貓”似的。所幸在PDC2008上有一些相關(guān)的信息(主要是一些SESSION和相關(guān)的PPTX)。今天就先整理一下,希望有哪位在微軟從事相關(guān)工作的兄臺出手(在不違反保密協(xié)議的前提下)將更多的信息發(fā)出來,讓大家一起學(xué)習(xí)進(jìn)步。
費(fèi)話不多說了,開始今天的正文。
Session 1:Windows Azure: Architecting & Managing Cloud Services
PPTX下載鏈接:http://mschnlnine.vo.llnwd.NET/d1/pdc08/PPTX/ES02.pptx
在該SESSION中最讓人印象深刻的是對Fabric Controller(FC)的講解,這里暫且稱之為“組織控制器”吧。其所要做的事件就是對發(fā)布的服務(wù)進(jìn)行資源分派,管理服務(wù)生命周期,維護(hù)系統(tǒng)正常運(yùn)轉(zhuǎn)。
如下圖所示:
圖中左上角的“What” is needed,按我的理解應(yīng)該“你想要得到的東西”,換句話說是你的需求是什么。因?yàn)槲④浽谥暗男麄髦刑岢鲞^一些信息,即:
Windows Azure管理服務(wù)并不僅僅是服務(wù)器,它是“告之它你想要的,然后它就會自己實(shí)現(xiàn)相關(guān)細(xì)節(jié)”的這樣一個平臺。
而Fabric Controller就是在對這些需求進(jìn)行分析整理并加以布署實(shí)現(xiàn),在該圖的下方我們看到有兩塊內(nèi)容,一個是load-balancers(負(fù)載均衡),另一個是switches.
除了Fabric Controller(FC)之外,該Session還講了關(guān)于服務(wù)(托管代碼)的隔離和安全性問題,如下圖:
然后就是在布署服務(wù)時,平臺是采用負(fù)載均衡方式來路由那些有效的活動節(jié)點(diǎn),同時會跨越那些失效的域。
FC提供了狀態(tài)檢查點(diǎn)(state check-pointed),其實(shí)現(xiàn)的功能包括:
- 用于回滾到前一個檢查點(diǎn)。(按我的理解:服務(wù)的執(zhí)行可能會出現(xiàn)中斷或失敗,當(dāng)出現(xiàn)這種情況時,可以回滾到最近的成功執(zhí)行的檢查點(diǎn)繼續(xù)執(zhí)行)。
- 同時預(yù)防中斷或FC狀態(tài)的丟失。
- 跨失效域(faultdomain)的存儲(注:失效域應(yīng)該是指在Azure平臺上那些服務(wù)器或主機(jī)出現(xiàn)硬軟故障或進(jìn)行升級服務(wù)時節(jié)點(diǎn))
最后該SESSION還發(fā)布了在2009年度要做的工作,包括:
- 暴露更多的基礎(chǔ)服務(wù)模型
- 更加豐富的服務(wù)生命周期管理
Session 2:Under the Hood: Inside the Windows Azure Hosting Environment
PPTX下載鏈接:http://mschnlnine.vo.llnwd.NET/d1/pdc08/PPTX/ES19.pptx
看了上面的Session1如果感覺還不過癮的話,可以看看這個課程,這個Session可以看過是對之前課程的高級版講解。里面對FC的講解要更加透徹(我目前還在看,所以就先不
多說了)
Session 3:Windows Azure: Essential Cloud Storage Services
PPTX下載鏈接:http://mschnlnine.vo.llnwd.NET/d1/pdc08/PPTX/ES04.pptx
該Session講解的是關(guān)于云存儲服務(wù)相關(guān)的內(nèi)容,因?yàn)樵谥拔铱催^Azure tookit開發(fā)包中的一些例子,然而卻不能完全搞懂Azure平臺上是如何存儲結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的,所以才專門看了這個課程,一看之下,還真發(fā)現(xiàn)了不少門道,下面簡要?dú)w納一下:
在Azure平臺上要存儲數(shù)據(jù)要使用帳號進(jìn)行存儲。當(dāng)用戶創(chuàng)建相應(yīng)帳戶后,會得到一個256位的加密串(開發(fā)時使用)。在Azure平臺上有三個基本的數(shù)據(jù)(層)抽象,分別是:
- Blobs:提供一個簡單接口來用戶存儲非結(jié)構(gòu)化數(shù)據(jù)文件(圖片,普通文件等)和相關(guān)的元數(shù)據(jù)(我想可能會用于數(shù)據(jù)文件同步的需要)
- Tables:提供結(jié)構(gòu)化存儲。該Table是一組entities,該entities包括一系列的屬性
- Queues:提供可靠的數(shù)據(jù)存儲并對相應(yīng)的應(yīng)用(服務(wù))發(fā)送消息(messages)
關(guān)于Blobs (非結(jié)構(gòu)化文件存儲),其提出了下面的概念:
即:一個存儲帳號可以有許多的Blob Containers(容器),而一個Container即是一組blob的集合。所謂的共享策略需被施加于容器(container)級別之上。
同時該Session也解釋了Azure平臺上進(jìn)行服務(wù)請求時的URL串的結(jié)構(gòu),如下圖:
當(dāng)然該Session的精彩之處還不在于此,其所提出的“使用Blocks機(jī)制上傳大文件”是一個不錯的亮點(diǎn)。如下圖:
1.原理分析:
2.使用PutBlockList 的例子:
3.然后是上傳之后的圖形講解:
通過這些可以看出,blob結(jié)構(gòu)由一個Blocks列表所組成的。每個block是通過blockid進(jìn)行標(biāo)識的,其ID發(fā)布為64字節(jié)長。其次每個BLOCK之間是彼此關(guān)聯(lián),互相影響的。且每個block的最大長度是4M,但每個BLOCK的大小可以不同。在BLOB講解最后就是解釋了如何使用RESTAPI來操作管理BLOB(更新,添加,拷貝等)。
而對于Tables存儲(結(jié)構(gòu)化數(shù)據(jù))的講解,因?yàn)橹拔乙恢辈惶澩瑢?strong>核心數(shù)據(jù)移入到云平臺之后,所以就沒過多關(guān)注,但從其介紹的內(nèi)容中還是可以看出一些很好的地方的,比如數(shù)據(jù)起碼被拷貝三次(冗余的需要),可以隨時訪問您的數(shù)據(jù),提供以TB為單位的存儲空間等等,如下:
對于Queues應(yīng)該是Azure平臺的一個重點(diǎn),因?yàn)橄⑦@種數(shù)據(jù)結(jié)構(gòu)在ServiceBus中是核心數(shù)據(jù),可以說服務(wù)總結(jié)本身就是消息驅(qū)動的。當(dāng)然在 Azure平臺上所提供的異步的消息發(fā)送機(jī)制,并確保每個消息至少被處理一次,參見下圖:
該圖演示當(dāng)consumer1當(dāng)機(jī)后,消息msg1在30秒之內(nèi)還是可見(即要求被其它c(diǎn)onsumer處理)
用戶可以使用當(dāng)前帳戶創(chuàng)建多個Queues,每個Queues由一系列消息組成,每個消息長度小于8K.
在該SESSION最后,作者用一張圖來總結(jié)blobs,tables,queues三種數(shù)據(jù)抽象所存儲結(jié)構(gòu)信息類型。我想只要記住這張圖,這節(jié)SESSION應(yīng)用就沒白聽了。
好了,今天的內(nèi)容就先到這里了。
更多關(guān)于Azure平臺的Session可以訪問:http://channel9.msdn.com/tags/pdc2008.azure/
NET技術(shù):推薦三個關(guān)于Azure的Session(pdc2008大會),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。