Windows Azure - Overview of Caching in Windows Azure

16 June 2012 — Written by Sky Chang
#Azure

這次2012年6月的Windows Azure的大更新,小朱前輩也很快的幫大家整理最新消息,也很感謝小朱前輩的文章,讓小弟能快速掌握新的Windoes Azure趨勢;而這幾天,也把部分的新功能玩了一下,並且用破破的英文加上Google翻譯XDD讀了一下文章,所以也在這邊做個筆記與整理。

這次我們要看的是這裡,也就是紅色圈起來的地方。( 圖片來自MSDN )

image

Windows Azure Caching

Caching大家應該就會直接聯想到記憶體( Memory ),當然,Windows Azure Caching也就是記憶體,不過他是一種分散式的記憶體 ( 畢竟在雲端嘛 ),而Windows Azure Caching當然就會給多台的機器做使用;講到這,我想大家應該都沒有問題,反正就是雲端用的Caching。

既然如此,為啥要介紹呢?

因為既然談到雲,就會有商機新技術,Windows Azure Caching當然也和一般Server的Caching架構有點不一樣嚕。

Shared Caching

Windows Azure Shared Caching是之前就活在Windows Azure下的產品,也就是貴死人不償命的產品XDD;Shared Caching不是存在於Role之中,也就是說,Shared Caching並不是存在每一個Web Role或是Work Role,而是有自己獨立的環境 ( 像Windows Azure Storage ),當我們痛心地刷下去,並且使用Shared Caching的時候,就可以使用URL來進行訪問、存取,然後就會收到貴森森的帳單。

Caching (Preview) on Roles

這裡加個Preview,就代表這是新推出的Caching機制,也是小朱前輩文中介紹到的新東西,我們就稱為Caching on Roles吧 ( 未來不知道會用哪個名… );就如前面所說,Shared Caching是個貴森森的東西,並不是一般小老百姓用得起的東西;其次,對於現有程式要搬上雲端,步驟上也比較麻煩 ( 其實感覺也還好 ),所以又多了一種新的Caching,叫做Caching on Roles,而Caching on Roles和Shared Caching有甚麼不一樣呢!?其實很簡單,Caching on Roles就是使用目前的Web Role或是Work Role中的記憶體當做Caching,畢竟原本使用的Web Role和Work Role本身就有部分的記憶體了,不用白不用XDD,而微軟為了讓大家能更加平民的使用XDD,所以推出了這個機制,而Caching on Roles又稱為role-based Caching

Caching on Roles 有兩種

其實沒有想像中的複雜,第一種是co-located Caching ( 或稱為Caching on Existing Role) ,如下圖 (此圖來自ScouttGu’s Blog),簡單的說,就是拿你目前使用的Web Role和Work Role的其中一部份的記憶體,來當作Cache,而這些Cache會形成一個大的分散式Cache ( 就當成大的游泳池吧=v= ),而每個Role都可以去存取這個游泳池,所以當其中一個Role將資料放到這個游泳池時,其他的Role也可以讀到資料 ( 但只限於同一個Applicaion,如果是不同的Application,當然還是讀不到 ),當然,最重要的是,它是"免費"的,而且可以自行的動態調整,希望使用的百分比為多少,也讓原本每台Role用不完的記憶體,有新的去處!! ( 重點是免費喔!! )( P.S 在ScouttGu的Blog,Scoutt把兩種都稱為是Distributed cache,其實這樣講也沒錯,因為都是分散式的Cache,但為了讓大家比較清楚,小弟就使用MSDN的命名吧,MSDN則是稱為co-located Caching和Distributed Caching )

image

第二種叫做Dedicated Caching ( 又稱 Caching on Dedicated Role ),上面是將目前Role中,部分的記憶體拿來應用,但對大型公司來說,Role本身的記憶體就已經不夠了阿,怎麼可能還拿得出來哩!?所以第二種Dedicated Caching,就是新建一個Cache Worker Role來當作記憶體,如下圖,建立了兩個12G的Cache Worker Role來當作Cache,當然,多新增加的Cache Worker Role,就要多付錢了,不過還是比貴森森的Share Caching便宜。

image

下一篇,我們來看看,原本的ASP.NET Session問題,該如何使用新的Cache架構來解決。

參考資料

Sky & Study4.TW