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