全面解讀Moby和LinuxKit,Docker稱溝通不善招致誤解

責任編輯:editor004

作者:木環(huán)

2017-05-03 11:47:08

摘自:INFOQ

這段時間,開源圈子有一股怒火, Docker公司發(fā)表聲明稱會將原有的Docker開源項目停掉,另起爐灶開了Moby項目。這兩個項目的核心在于利用可互換的容器組件打造各類新型系統(tǒng),Docker公司希望提供一種構(gòu)建定制化容器系統(tǒng)的新途徑。

開源圈的一股怒火

這段時間,開源圈子有一股怒火, Docker公司發(fā)表聲明稱會將原有的Docker開源項目停掉,另起爐灶開了Moby項目。

這番聲明居然的正面反饋(280票)和負面反饋(1198),好評率居然僅有18.9%。大家紛紛譴責“Docker直接把原Docker項目改名成Moby,開源突然商業(yè)化”的行為。

而另一方面,Docker公司又在解釋:Moby并不是Docker的替代品,它的本意是希望幫助系統(tǒng)工程師使用Moby這個工具集去構(gòu)建類似于Docker的平臺。(Moby is not a replacement for Docker: it's a framework to help system engineers build platforms like Docker out of many components.)

Docker的CTO Solomon Hykes稱此舉是為了更好地打造并豐富開放容器生態(tài),并不是走向封閉;圈內(nèi)的誤解都是公司溝通不善的鍋。

面對爭執(zhí),Docker表示很無辜。

不是走向封閉,而是更開放

一位michaelfavia網(wǎng)友表示Docker項目的今天是社區(qū)努力的共同結(jié)果;同時,他所在的公司目前重度使用Docker項目,轉(zhuǎn)變技術(shù)棧為時已晚。雖然從Docker的商業(yè)利益角度而言,這無可厚非;但是他不贊同這種做法。

Docker的CTO Solomon Hykes則回復(fù)到其實項目并沒有走向閉源,所有過去開源的會繼續(xù)開源,甚至?xí)懈嗟拈_源出來。事實上,如果某家公司業(yè)務(wù)是基于此,Moby的變化反而是好事;Docker公司會更多地致力場景的定制化。

Moby的定位

Solomon表示Moby項目是產(chǎn)品鏈路中的一環(huán),從上游到下游的項目依次為:

上游組件(containerd,linuxkit等)-> Moby -> Docker CE -> Docker EE

短期內(nèi), Docker CE和EE的用戶不會受到影響

隨后一位frekele的網(wǎng)友表示感謝后續(xù)的解釋,但是希望可以讀到docker to moby的指導(dǎo)指南,這樣大家在下一個發(fā)布版本之前可以更清楚地了解發(fā)生了什么,會有哪些影響。

Solomon Hykes表示短期內(nèi)Docker CE和EE的用戶不會受到影響,下一個二進制發(fā)行版本不會發(fā)生變化。Moby會有自己的發(fā)布流程,會在后續(xù)討論。

  求證,Moby項目究竟意欲何為?

那么不如,擺事實講道理,看看究竟是怎樣一回事。

Docker聲明1Moby并不是Docker的替代品。將引擎拆分為更多開放組件,對我們用于組裝Docker產(chǎn)品的各新型工具與組件進行開源并供技術(shù)社區(qū)使用。

事實1:

分解Docker工作已經(jīng)進行一段時間了,比如已經(jīng)完成的runC和containerd。其中containerd已經(jīng)捐獻給了CNCF。

Docker 1.11版本起,即2016年5月,Engine開始基于containerd、runC,可看作Moby項目緣起。而再往前追溯,OCI協(xié)會于2015年6月,呼吁業(yè)界制定容器運行時和格式的規(guī)范。

判斷1DIY式工具集——Docker公司將原來大家熟知的Docker開源項目的拆分成不同模塊,然后形成一個樂高式的容器化工具集。Moby并不完全等同于原來的Docker項目,Docker公司不是強取豪奪,它確實還付出了一番努力的。

Docker聲明2:本意是希望幫助系統(tǒng)工程師使用Moby這個工具集去構(gòu)建類似于Docker的平臺。

事實2:

Moby項目包含三大元素:一款用于對系統(tǒng)進行組裝、實驗與測試的工具鏈框架; 一套包含約80種容器化組件的庫(適用平臺包括裸機,如x86與ARM; Linux、Mac與Windows可執(zhí)行文件; 面向各主流云及虛擬化供應(yīng)商產(chǎn)品的虛擬機鏡像); 以及一份“參考藍圖”,即提供細節(jié)信息以幫助用戶了解如何利用眾多組件片段組合系統(tǒng)方案。其中部分組件片段可同時用于容器化應(yīng)用堆棧以及Linux發(fā)行版——例如Redis或Nginx。其中亦包括Docker公司過去幾個月間向開源社區(qū)貢獻的部分成果,包括containerd及LinuxKit。還有一個事情注意的是,除了Moby項目之外,Docker還同期發(fā)布了另外一個新項目LinuxKit。LinuxKit可以對多款工具進行綁定以構(gòu)架定制化Linux子系統(tǒng)。此前由Docker公司與芯片合作伙伴ARM、HPE等多家基礎(chǔ)設(shè)施供應(yīng)商以及微軟與IBM等云廠商協(xié)作開發(fā)。作為成果,LinuxKit作為開源項目由Linux基金會負責管理,同時遵循其開放治理實踐。LinuxKit中運行軟件的唯一方式即為使用容器。(這或?qū)⒁馕吨到y(tǒng)的攻擊面將大幅減小,用戶可更輕松地根據(jù)安全需求對任意軟件進行更換)

判斷2:以往Docker公司對Linux強依賴,但是現(xiàn)在Docker決定利用容器元素組成新的Linux發(fā)行版。誠如Docker公司市場營銷與技術(shù)社區(qū)高級副總裁David Messina所說表示目標受眾為要求以Linux作為產(chǎn)品運行基礎(chǔ)

Docker聲明3:受Fedora項目啟發(fā)定義一整套開放、以社區(qū)為中心的治理政策開源容器技術(shù)早期階段

先驅(qū)者們開始率先使用容器技術(shù),并通過開源代碼庫、Docker以及其它相關(guān)項目進行協(xié)作以推動相關(guān)工具發(fā)展成熟。

  第二階段:進入云原生程序的生產(chǎn)環(huán)境

在這一階段,用戶社區(qū)開始成長并立足數(shù)百個生態(tài)系統(tǒng)項目與成千上萬貢獻者支持其大規(guī)模部署活動。與此同時,Docker亦將其基本生產(chǎn)模式轉(zhuǎn)變?yōu)榛陂_放組件的形式,旨在增加創(chuàng)新能力并進一步拓展合作范疇。

提取Docker代碼庫中的組件并進行快速創(chuàng)新,以幫助系統(tǒng)開發(fā)商在構(gòu)建自有容器系統(tǒng)時對其進行單獨復(fù)用,具體包括:runc、HyperKit、VPNKIt、SwarmKit、InfraKit以及containerd等等。

  第三階段:2017 構(gòu)建容器生態(tài)

Docker認為容器化將成為市場主流,并逐步擴展至各類計算環(huán)境當中——包括服務(wù)器、數(shù)據(jù)中心、云計算、桌面、物聯(lián)網(wǎng)乃至移動端。各個行業(yè)與垂直市場、金融、醫(yī)療衛(wèi)生、政府、旅行以及制造業(yè)亦參與其中。同樣的,包括現(xiàn)代Web應(yīng)用、傳統(tǒng)服務(wù)器應(yīng)用、機器學(xué)習(xí)、工業(yè)控制系統(tǒng)以及機器人等層面亦成為其具體用例形式。作為一大共性,剛剛加入容器生態(tài)系統(tǒng)的參與者往往會建立與特定基礎(chǔ)設(shè)施、行業(yè)或者用例相適配的專用系統(tǒng)。

Docker會利用開源體系作為產(chǎn)品的創(chuàng)新實驗環(huán)境,并與整個生態(tài)系統(tǒng)開展密切合作。目前,Docker公司稱針對Mac、Windows桌面、Windows Server以及AWS、Azure和Google Cloud Platform等發(fā)布了十余種特定Docker版本。

Docker公司稱為了能夠在短期內(nèi)通過小型團隊以可擴展的方式有效復(fù)用既有開發(fā)成果,非常需要一種新的方法開發(fā)各種專用型版本。Docker團隊不僅需要有能力組合各類組件,同時亦應(yīng)借鑒汽車行業(yè)的運營思路,即在不同車型(或者說版本)當中復(fù)用同樣的組件。

  第四階段:未來在路上

Docker認為將容器生態(tài)系統(tǒng)推向下一個發(fā)展階段以實現(xiàn)容器主流化的最佳途徑,在于立足生態(tài)系統(tǒng)層面實現(xiàn)通力協(xié)作。

正是基于此,Docker公司正式公布Moby項目——全新開源項目,提供數(shù)十款“樂高”形式的組件,用戶可將其組裝至基于容器的定制化系統(tǒng)框架當中,并立足于此進行實驗并與其他容器技術(shù)參與者交流思路。Docker公司解釋稱不妨將Moby項目視為容器系統(tǒng)版本的“樂高俱樂部”。

Moby項目專為系統(tǒng)構(gòu)建者(而非主要使用Docker或者其它容器平臺的應(yīng)用程序開發(fā)者)設(shè)計,旨在幫助其打造自有基于容器技術(shù)的系統(tǒng)。Moby項目的參與者可以從Docker提供的組件庫中選擇自己需要的選項,亦可通過“自帶組件(簡稱BYOC)”機制利用更多其它組件創(chuàng)建與眾不同的定制化容器系統(tǒng)。

Docker將Moby項目作為開放性研發(fā)實驗室,供各位生態(tài)系統(tǒng)參與者立足未來容器技術(shù)發(fā)展構(gòu)思進行實驗、新組件開發(fā)以及協(xié)作。我們的全部開源協(xié)作成果還將逐步被引入Moby項目之內(nèi)。Docker公司稱其誠摯邀請社區(qū)人士加入以推動軟件容器主流化運動,并共同將生態(tài)系統(tǒng)與用戶群體規(guī)模擴展至更高層次。

更名是因為Docker已經(jīng)成為了注冊商標;將項目模塊化是為了更易用。

Docker一定知道社區(qū)的重要性,其目標也是建立更大的容器生態(tài);同時,它也希望更多的行業(yè)應(yīng)用場景,不然不會布局為物聯(lián)網(wǎng)做準備。

面對投資人壓力,Docker公司在戴著腳銬跳舞;也許后來,它會成為下一個RedHat。

參考文章

https://thenewstack.io/docker-seeds-two-new-projects-building-containerized-infrastructure/

http://www.infoworld.com/article/3190611/open-source-tools/docker-debuts-containerized-construction-kit-for-building-linux-distros.html

http://www.linuxinsider.com/story/84474.html

https://blog.docker.com/2017/04/introducing-the-moby-project/

https://yq.aliyun.com/articles/74440

https://yq.aliyun.com/articles/74437

附文:Moby項目的官方聲明

Moby項目——面向容器生態(tài)系統(tǒng)以建立組合式容器系統(tǒng)的協(xié)作項目

Moby是Docker公司開發(fā)的全新開源項目,旨在進一步推動軟件容器化運動的前進步伐。其以“樂高式”思路提供數(shù)十款組件選項,配合一款能夠?qū)⒏鹘M件組合為定制化容器系統(tǒng)的框架,同時亦可作為容器技術(shù)參與者們實驗靈感并交流思路的協(xié)作平臺。

Moby項目概述

Moby項目的核心是一套用于組裝定制化容器系統(tǒng)的框架,其具體特性包括:

一套涵蓋各類容器系統(tǒng)組成元素的容器化組件庫,具體包括操作系統(tǒng)、容器運行時、編排、基礎(chǔ)設(shè)施管理、網(wǎng)絡(luò)、存儲、安全、構(gòu)建以及鏡像發(fā)布等等。將各組件組裝為面向多種平臺及架構(gòu)之可運行元素的工具,適用平臺包括裸機(x86與ARM); Linux、Mac與Windows可執(zhí)行文件; 面向各主流云及虛擬化供應(yīng)商產(chǎn)品的虛擬機鏡像。一組參考組合方案,可用于直接使用、修改或者啟發(fā)您創(chuàng)建自己的容器系統(tǒng)。

Moby項目中的全部組件皆以容器形式存在,因此新組件的創(chuàng)建難度等同于構(gòu)建新的OCI兼容型容器。

設(shè)計原則

Moby為基于明確原則指導(dǎo)的開放項目,但同時亦擁有模塊化、高度靈活性且無硬性使用方式規(guī)定等優(yōu)勢,因此容器技術(shù)社區(qū)可充分參與并為其設(shè)定下一步發(fā)展方向。Moby項目的設(shè)計原則包括:

內(nèi)置組件并允許替換:Moby中包含大量組件選項以構(gòu)建全功能容器系統(tǒng),但其模塊化架構(gòu)亦可確保大部分組件可通過其它不同實現(xiàn)方案進行替換。實用性與安全性齊備:Moby項目提供安全默認選項,且不會對實用性產(chǎn)生負面影響。以容器為核心:Moby項目利用容器構(gòu)建,且用于運行容器。

利用Moby項目,您將能夠描述分布式應(yīng)用程序中的全部組件——包括高級配置文件到底層內(nèi)核——并利用其輕松構(gòu)建并部署應(yīng)用成果。

Moby項目利用containerd作為默認容器運行時。

受眾

Moby項目適用于任何希望利用現(xiàn)有或定制化組件組裝容器系統(tǒng)的用戶,具體包括:

希望對其Docker構(gòu)建方案進行定制或者調(diào)整的技術(shù)愛好者負責構(gòu)建容器系統(tǒng)的系統(tǒng)工程師或者集成商希望將現(xiàn)有容器系統(tǒng)與其實際環(huán)境進行適配的基礎(chǔ)設(shè)施供應(yīng)商希望體驗最新容器技術(shù)的容器技術(shù)愛好者希望立足多種不同系統(tǒng)測試其項目的開源開發(fā)人員任何希望了解Docker內(nèi)部架構(gòu)及構(gòu)建方式的朋友

Moby項目不推薦以下用戶使用:

對于希望尋求便捷方式在容器中運行應(yīng)用程序的應(yīng)用開發(fā)者,我們建議您使用Docker CE。對于希望尋求可直接使用的商用支持型容器平臺的企業(yè)IT與開發(fā)團隊,我們建議您使用Docker EE。對于希望了解容器技術(shù)并尋求簡單學(xué)習(xí)方法的朋友,我們向您推薦docker.com網(wǎng)站。

過渡至Moby項目

Docker公司正在將全部開源協(xié)作成果逐步引入Moby項目。在這一過渡期間,全部開源貢獻活動皆可照常進行。

以下為具體變更說明:

將引擎拆分為更多開放組件移除docker UI及SDK等,并將其轉(zhuǎn)入Docker內(nèi)部進行保留強調(diào)此項目不僅限于此引擎,亦適用于Docker平臺之上各獨立組件的組合對我們用于組裝Docker產(chǎn)品的各新型工具與組件進行開源并供技術(shù)社區(qū)使用受Fedora項目啟發(fā)定義一整套開放、以社區(qū)為中心的治理政策(Fedora項目在平衡社區(qū)需求與主要企業(yè)贊助商要求之間獲得了巨大成功)

法律問題

若您有任何相關(guān)疑問,請與我們的法律顧問聯(lián)系。欲獲取更多背景信息,請參閱本資源庫中的NOTICE文檔。Moby項目的使用與轉(zhuǎn)讓可能受到美國及其它政府某些法律條款之限制。您有責任確保您的Moby項目使用及/或轉(zhuǎn)讓行為遵循適用法律之具體要求。欲了解更多信息,請參閱:https://www.bis.doc.gov。

許可Moby項目基于Apache License v2.0許可。欲了解完整許可內(nèi)容,請參閱LICENSE。原文鏈接:https://github.com/moby/moby

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號