Windows Docker內部原理猜想和Azure講座錄像分享

[前言] 盆盆期待和大家分享年初在北京Microsoft MVP OpenDay上分享的講座錄像,介紹有關微軟雲計算、Docker和微信自動化聯動的技術。在這篇文章裏,還將介紹盆盆自己對Windows自己的Docker技術的猜想和展望。

 

首先要給大家分享一個盆盆在MVP Open Day上的講課錄像。

 

1月底盆盆去北京參加MVP的兩會,當時天可真藍。

wKioL1USARiQWJIVADTGh0GGQBU598.jpg

 

和張誠、蘇繁等兄弟一起晚餐。

wKiom1USAMWjYn5TAC3aJCZBmi4539.jpg

 

晚宴上,還有多才多藝的MVP兄弟表演節目哩

wKioL1USAjHyRycKACldDZSARZs631.jpg

 

第二天是週六,在王府井的一家酒店開講座,上座率不低哈。

wKioL1USAmGgfxG_AALYEG726zo076.jpg

 

講座視頻

 

前天盆盆拿到了講課的錄像,大該1小時,錄像效果較一般,大家湊合着看吧(注意有聲音,請帶耳機收看,以免影響他人哈)。


您可以訪問以下的視頻鏈接:

http://v.youku.com/v_show/id_XOTE0NTQyODY0.html

這個講座主要講什麼呢,是和Azure雲計算和自動化相關,其中涉及的一些知識點,您可以參考微信公衆號華來四里的兩篇文章(關注:sysinternal):

  • 在華來四公衆號裏回覆docker1,閱讀有趣的Windows Azure Docker演示

  • 在華來四公衆號裏回覆azure1,閱讀雲計算和自動化


Docker原理


說到Docker,今天從team內部獲悉,微軟會推出超輕量級的Windows Nano Server,作爲今後Windows Docker的底層OS,這就類似於開源社區正在推的CoreOS、輕量級Ubuntu一樣。


聯想到Linux Docker容器技術使用的六大Linux內核隔離技術:UTS/IPC/PID/Network/Mount/User。這樣進程等於在外面包了一層獨立的賬戶、主機名、進程號、網絡、進程間通信和文件系統等命名空間的殼,簡直等於一臺輕量級的小型虛擬機!
wKioL1USAz-D6E1KAAJkBsopMFs659.jpg


這裏推薦大家閱讀DaoCloud的大牛孫老師的雄文《Docker背後的內核知識—Namespace資源隔離》(您需要複製以下地址,並粘貼到瀏覽器裏查看):

http://www.infoq.com/cn/articles/docker-kernel-knowledge-namespace-resource-isolation?from=timeline&isappinstalled=0

 

其實Windows很早就有進程隔離技術,例如大家都很熟悉的終端服務(最早由Citrix研發)。終端服務實現所謂的會話隔離機制。其實質就是將 \DosDevices、\Windows和\BaseNamedObjects等幾個對象的命名空間做隔離,這和Docker的IPC隔離有幾分類似的地方。


看盆盆利用WinObj在Windows 10裏抓的截圖。終端服務通過構造新的窗口站命名空間(附圖中的Windows部分),來隔離不同用戶所看到的桌面;通過隔離的\BaseNamedObjects命名空間,則可以隔離(也叫做實例化)出自己的共享對象(例如內存段、Mutex和事件)。

wKiom1USAs6Q6a7HAAFUB4AxEoY710.jpg

 

有關終端服務的這部分原理,可以參考《Windows Internals》第173頁。不過書裏面並沒有提到附圖中看到的AppContainerNamedObjects。這是什麼東東?


原來這是Windows 8以後纔有的應用程序容器技術(Windows Internals主要以Windows 7爲主),主要是給Metro UI應用所使用。有關這個應用容器技術,可以參考以下的文章:

http://recxltd.blogspot.com/2012/03/windows-8-app-container-security-notes.html


 

盆盆感興趣的是以下的一段論述。

wKioL1USBHGBVOCqAAO5f3LNWvY801.jpg


其中有以下的一段話,大意是在權限、IC、文件訪問和網絡訪問訪問進行隔離,是不是和Docker的六大隔離有點類似??

Distilling this down they've introduced a high-level capability model that translates to a more restricted version of low integrity processes. Going further than before in restricting IPC between processes, file access and event loopback network access.


能否大膽猜測一下,微軟會不會將其原本基於MetroUI的App Container技術,加工擴展爲Windows版本的Docker?


想當年Citrix開發出終端服務,後來微軟在1998年時正式授權到Windows NT的終端服務版(那一年盆盆剛工作)。Citrix自己再對其進行深加工,成就了XenDesktop和XenApp,到現在已經風光了17年。回想起來,其盈利模式是對每個終端連接進行收費,增值的部分至少有兩點:終端連接的協議,以及管理平臺。


那麼Docker呢? 在Windows上會依賴何種模式盈利?Partner的贏利點在哪裏?和原來的虛擬化技術如何整合?留給我們的問題太多了。




  • 如果您覺得華來四還不錯,那就掃描以下的二維碼關注吧,也可以直接添加微信號:sysinternal

  • 華來四是由彭愛華、黃愛華、程尊華和祁清華四位名字中都有華的微軟MVP創立的微信公衆號,堅持分享微軟雲計算的原創文章。旨在幫助微軟IT運維人員順利實現轉型。

    wKiom1USA82CGIxnAABoxNKWhig806.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章