關於微軟容器戰略,你須要知道的十件事

自從微軟和Docker宣佈合做以來,微軟Redmond一直在容器上面的戰略可謂穩紮穩打。最近,微軟加入Open Container Initiative (OCI),並做爲創始成員承諾支持常見容器的格式和運行。在最新的Windows Server 2016技術預覽版中,微軟終於將本地的Windows Container技術提供給開發人員和系統管理員。數據庫

因爲媒體的關注和用戶的積極反響,對於許多消費者來講,容器就等因而Docker的代名詞。並且它只在Linux上運行。鑑於這些事實,在開發者社區裏,對於微軟支持容器技術也一直比較混亂。在不一樣的博客文章中,微軟強調其投資容器。微軟高管並不羞於告訴咱們他們有多麼愛Docker和其背後的團隊。這種定位致使你們對於微軟容器戰略的認識模糊。我不止一次聽到開發商詢問他們是否能夠在Windows上運行Linux容器,反之亦然。在Docker、Windows Containers,以及Hyper-V Containers領域一樣很是混亂,下面我就試圖詳細闡明微軟的容器戰略。安全

1.微軟的容器策略並非可移植性

說的直白一點。你不能從Linux中push Docker Image而且pull它到Windows machine來啓動容器。這兩個操做系統之間底層內核的差別使它很難讓容器可移植。過去,微軟試圖將一個POSIX兼容UNIX子系統Services for Unix。可是,這不一樣。回到容器中,你沒法使用微軟容器模仿Package once deploy everywhere」。服務器

2.微軟有兩種類型的容器

Microsoft Windows Server 2016可以運行兩種不一樣類型的容器Windows Containers 和 Hyper-V Containers.。爲何咱們須要兩種類型的容器?由於他們是專爲單獨的用例和場景。Windows Server 2016技術預覽版3僅僅支持Windows Containers。最終版本將包括兩種。架構

3. Windows Containers是輕量級和極速的

這種優點保留了容器的優點——速度、敏捷性和性能。這是一個已知的事實,容器比虛擬機啓動快得多。這是由於它們共享底層操做系統的內核。微軟爲容器設計Windows Server 2016來支持共享內核模型。Windows Containers依賴操做系統共享服務。這個設計天然致使更輕、更快的容器。他們很是相似於Linux容器。Windows Containers提供低級隔離,這在必定程度上下降運行異構工做負載的安全性。微服務

4. Hyper-V Containers使用虛擬化

若是你認爲由於隔離級別,Windows容器不太安全,那麼您應該考慮Hyper-V Containers。他們不共享操做系統相同的內核,於是帶來強壯的隔離級別,相似於虛擬化。在幕後,Hyper-V Containers使用VM在他們本身的namespace運行專用容器。這種架構致使更重的容器大小和更長的啓動時間。因此,你還須要使用它們嗎?若是你有敏感的工做負載須要更健壯的隔離和安全,Hyper-V Containers是最好的。在多租戶環境中像公共雲,他們提供最好的安全性和聽從性。工具

5. Docker Engine暴露兩容器實現

若是微軟有本身的本地容器實現,Docker的做用是什麼?
讓咱們仔細分析Docker的架構。性能

Docker做爲一個平臺有三個組件:spa

  1. Docker Engine操作系統

  2. Docker Tools命令行

  3. Docker Registry

Docker Engine在expose API過程當中擔當大任。DockerCLI是管理容器生命週期的工具鏈。Docker Registry是存儲圖像的中央位置。
微軟和Docker密切合做從Windows Containers和Hyper-V Containers中提供相同的API。這就使得微軟的容器和Docker的巨大生態系統彼此協做,命令行接口也移植到Windows。

6.DockerCLI可用於控制Microsoft Containers和Linux Containers

命令行接口能夠在Windows10和Windows Server 2016操做系統上獲取。開發人員和管理員能夠將客戶端指向到一個運行的Docker Engine而且控制它。這意味着它能夠從Windows10上管理運行在Red Hat服務器上的Linux容器。自微軟決定讓它的容器引擎兼容Docker Engine,相同的客戶端被用來管理Windows Containers 以及Hyper-V Containers。從技術上講,只要CLI能和遠程引擎對接,它也能夠從Ubuntu 或者 OS X上管理微軟容器。

7. PowerShell Cmdlets可以和Microsoft Containers一塊兒使用

除了使用DockerCLI和工具,用戶可使用本身喜歡的PowerShell環境來自動化容器管理。微軟已經帶來一套Cmdlets處理方Windows 和Hyper-V Containers。這對本地工具和容器的集成有着重要做用。

8.Azure Service Fabric將編排Windows Containers

Azure Service Fabric是微軟對於Kubernetes的對標。這是一個設計和部署微服務的平臺。當多個同質容器管理和編排在一塊兒,造成一個微服務應用程序。微軟聲稱Service Fabric是Azure核心基礎設施的基本技術。目前支持的服務包括Skype、InTune、Azure Data Factory、Azure DocumentDB。它在Azure SQL Database 和Bing Cortana上被用來管理超過140萬客戶數據庫。開發者可以將他們的代碼做爲容器打包,將由Service Fabric編排。這種技術如今就能夠在Windows和 Azure上獲取可是將移植到Linux和其餘雲平臺。

9. Kubernetes 和 Mesosphere能夠在Azure上管理容器

Service Fabric服務可能還處在早期,但這並不能阻止微軟用戶在Azure上使用編排工具Kubernetes和Mesosphere。由於自從Windows Containers, Hyper-V Containers提供相同的DockerAPI,這些工具就能夠與微軟容器協同工做。它能夠混合、匹配Linux容器和Windows容器構建一個複合的微服務應用。Docker Swarm, Kubernetes, Mesosphere以及 CoreOS Fleet可能不區分容器。這對微軟用戶和Docker用戶來講是共贏。

10.Azure不提供CaaS(至少到目前沒有)

微軟落後於亞馬遜和谷歌的一個主要領域就是容器託管服務或容器做爲服務(CaaS)。亞馬遜在上一屆re:Invent上宣佈EC2 Container Service (ECS),最近已經提供這種服務。谷歌將它專業的Kubernetes與Google Compute Engine結合提供Google Container Engine (GKE)。其餘平臺如Tutum 和Joyent 也提供CaaS等。微軟也許是等待它的容器技術穩定以後才發佈,當它準備好了,Azure雲平臺將成爲第一個管理Linux和Windows容器的雲平臺。

本文由張鵬程編譯整理

原文連接: http://blog.tenxcloud.com/?p=462

相關文章
相關標籤/搜索