Docker
「這是有史以來,Docker最重要的專案,可以將Docker生態系帶向下一個階段。」Docker創辦人兼技術長Solomon Hykes最後如此介紹,「從今天開始,所有Docker的一切程式碼、工程師資源、所有元件,甚至是Docker自身的程式碼,都將屬於這個新的開源專案Moby。」他強調:「這也是我心中最想要的容器專案。」
4月18日早上9點,5,500人齊聚美國奧斯汀,參加容器圈年度最重要的技術大會DockerCon,在主要演講結束的最後半小時,Solomon宣布了Moby專案的消息,臺下似乎還沒意識到這是一個影響全球所有Docker開發者、使用者、貢獻者的一個新專案。連Solomon都不得不中斷演講,提醒臺下與會者,別分心發訊息或看郵件,因為這是一個影響所有容器生態系的新計畫。
Solomon沒有明講,而是等到了演講結束後,眾人才發現,在GitHub開源專案代管平臺上最火紅的這個Docker專案網頁,竟然換了名字,不再叫做「Docker」,而是變成了「Moby」。
這個從2013年1月13日開始啟用的容器開源專案Docker,超過3,300名開源開發者共同貢獻,部署到1,400萬臺容器主機上,開發出90萬個Docker應用,累計超過120億次映象檔下載數的Docker專案,從此,變成了Moby專案。
使Docker公司極力澄清,舊有Docker專案還在沒有刪除,只是搬回Docker公司網站上維護,但所有Docker擁護者未來唯一的主要容器技術來源就是Moby,這個消息大大震撼了各大容器社群和開發社群,甚至引起了Docker該不該改名的網路論戰,連Solomon都在Docker專案,喔,現在應該說Moby專案網站上一一回覆開發者的質疑,「最常用的啟動指令docker Run是否從此要改成moby run呢?」,不,Solomon強調:「一切都沒變,對開發者而言,什麼都不會改變,」他解釋,只是存放Docker程式碼的目錄名稱換了,就像多年前,Docker 專案從dotCloud網站,搬到GitHub網站上一樣。
3年前,因為Docker太過火紅,甚至專案發起者Solomon都將自家公司dotCloud名稱改以Docker為名。第二次改名更大膽地,事前一點通知都沒有,Solomon就將這個在全球擁有17萬人社群規模的專案名稱,換成了Docker公司吉祥物的小名Moby,也就是Docker Logo圖案上的藍鯨,牠的全名是Moby Dock,參考自知名小說白鯨記(Moby Dick)。
就像如果Linux或Android哪一天若是改名,勢必會衝擊全球開發圈一樣,這類幾乎成了IT技術根本基石之一的火紅開源專案,一舉一動都格外令人注意,更遑論是徹底換掉名稱。為何Solomon寧可冒著惹惱開發社群的風險,也要改名?Solomon給的理由是,Docker生態系,需要一個新的架構,才能繼續擴大,而Moby就是那個答案。
雖然在2013年時,Docker一問世,不論是雲端龍頭或軟體巨頭都紛紛支援,如Amazon、微軟Azure、IBM Softlayer、Rackspace、Google、Heroku、OpenStack等,連十年前就開始採用容器技術,一周就要啟用20億個Container的Google,都公開力讚Docker公司,才真正讓容器技術容易可用,而決定力挺。而傳統虛擬化技術龍頭VMware更是在2014年8月的VMworld年度大會上宣布擁抱Docker。
這時的Docker,不過是一家問世不到2歲的年輕新創,就立刻成了最火紅的雲端技術。不過,Solomon打從一開始釋出Docker時,他就相當清楚,「唯有Container生態系成功,Docker才會成功。」他強調。
Docker將原有Docker專案更名為新的Moby開源專案,並提出了一套組合容器化應用系統的組合框架,要讓企業能夠快速打造一個專屬的客製化容器系統。
開拓期(2013~2014):開源模式
Solomon將過去幾年來的Docker發展分成三個階段,第一階段,2013~2014年是開拓階段(Pioneers Age)。Docker開源釋出後,不只是Docker公司成員,連帶吸引了上百位開發者投入,發展出了十多個相關專案,全球實際部署Docker的系統也有上千套。開發者最常從Docker Hub上下載映像檔來部署環境,從Docker Hub下載次數更容易反映出Docker使用的熱度,2年下來,映象檔下載次數很快達到1億次,「這時期帶動容器生態發展的動力是開源生產模式。」Solomon表示。
嚐鮮期(2015~2016):開放元件模式
2015年到2016年則是初期採用者為主(Early Adopters)的嚐鮮期,看好者居多,但真正敢在正式環境採用Docker的企業仍是少數。不過,越來越多人開始發現,在Linux伺服器上打造雲端原生應用是一個不錯的選擇,這也成了Docker生態系中最大宗的應用情境。Solomon採取了新的戰略來推動容器生態系,他解釋,開放元件(Open Components)生產模式是第二階段的發展關鍵。
Docker開始以打造開放元件為重心,推出了如libcontainer、libnetwork、Notary、runC,都是為了將Docker容器技術打造成更開放,可以支援更多平臺的架構。
開放元件模式果然也帶動了容器生態的第二波成長。相關專案數從2位數增加到了3位數,超過1百項,貢獻者也比第一階段暴增了近10倍,超過了1千人,全球部署主機數量達到上萬個,而Docker Hub的下載次數更是驚人,從2015年初的10億次,在2016年中達到了60億次下載量。
第一階段的開源策略,Docker社群成功吸引到了頂尖技術高手而茁壯,如不少Go語言知名開發者或科技龍頭內部高手都參與了Docker專案。而第二階段的開放元件策略,讓Docker不只是一項產品,而成了一個由多種容器元件組合而成的平臺,打造出了更專業分工、精緻化的功能元件,一來吸引了更多開發者的加入,另一方面也更能符合不同應用,甚至是不同平臺的特殊需求。連微軟都大力投入,要將Docker容器技術帶進Windows世界。
但是,從開拓期的開源模式,到嚐鮮期的開放元件模式,Solomon以汽車產業的發展來比喻,就像是手工打造汽車,才剛邁進了機器化生產階段,但距離便宜、大量生產,甚至可以大量客製化的階段,還有一段距離。
爆發期(2017~2018):共享元件和通用組合
Solomon認為,2017到2018年是容器技術成為主流應用的關鍵階段,需要將容器技術拓展到每一種運算類型,不只是資料中心、伺服器,還要能運用在桌上型PC或手機裝置,甚至也要能運用在IoT裝置上。
他想將容器打造成可以運用在各種運算情境的核心引擎,就像汽車產業已經細分成更多類型的車輛,跑車、房車、休旅車、遊覽車、貨車,甚至兩輪的機車和四輪的汽車一樣,關鍵元件都是汽油引擎。
在主流應用階段,Solomon預估,將會有1千個相關專案,貢獻者將再提升一個量級,達到1萬人,而部署量則將倍增到百萬套系統的規模,更重要的一點是,得打造出「高度專殊化參與」的模式(Highly Specialized Participants)。意思是,可以讓每一個人打造出各自專屬的容器化環境,但彼此又有一套互通或共用的樣版或規範以快速借鏡。
「需要新的架構,才能創造出一個具備高度擴充力的新Docker生態。」他說,而且主要運用情境更為複雜,必須能通吃不同桌面環境(Mac OS和Windows 10),不同伺服器環境(Linux和Windows Server)以及不同雲端平臺(AWS、Azure和GCP)。
原有開放元件,儘管有大量開發者,推出多種功能元件,但每個人各自推出了自己的容器化系統建置或部署方式,彼此不易快速複製和擴散,而拖慢了生態系的擴大速度。因此,借鏡高度自動化的汽車產業作法,Solomon認為,必須推出通用組合方法(Common Assembles)才能解決。
Moby專案最大特色不只是新的專案名稱,還提出了一套組合容器化應用系統的組合框架(A Framework to assemble)。Moby除了涵蓋了原有Docker開源專案的所有程式碼,多達80多個元件函式庫之外,還提供了一個將自製元件打包成容器化元件的工具,以及Docker從百萬個Docker節點部署經驗中,歸納出來的容器系統組建參考文件,等於是提供了一套內有全套容器工具和容器系統建置方法學(和通用範本)的懶人包。
Solomon以自家經驗舉例,建立一個容器系統的開發專案,包括系統架構、開發環境準備、專案規畫等,現在只要一個周末就可以完成。目前Docker公司內部若有新研發專案時,已經採用了Moby框架來組建。
過去Docker專案以服務開發者和Docker使用者為主,但是Moby專案更進一步要服務系統設計者,Solomon表示,要讓系統管理者或架構者,更容易打造出容器化的應用系統。過去可能得花上好幾個月來建立一個研發專案所需的軟體環境,「現在就只是一個周末專案。因為Moby專案提供了常用容器化系統設計參考,不用重頭開始規畫。」
不過,推出通用組合框架的策略下,仍然可以沿用舊名,為何非要將Docker專案改名為Moby?Solomon沒有正面回答,只說這樣的開放管理(Open Governance)專案模式,是借鏡於Fedora的成功經驗。
Solomon沒說出口的是,Fedora經驗的另一個重點,就是紅帽的開源商業模式。紅帽早在1994年就釋出了Red Hat Linux 1.0版,以桌面環境使用者為主,但是到了2003年,紅帽推出Red Hat Linux 9.0版後,就決定轉而專注於伺服器版本,也就是後來的Red Hat Enterprise Linux(RHEL),自己不再推出桌面版本,反而改由Fedora開源社群接手桌面版本,以Fedora Linux(第七版前稱為Fedora Core)為名免費釋出。
不過,紅帽仍是Fedora Linux的主要贊助者,甚至紅帽將Fedora Linux版本視為練兵場,來測試許多新功能,經過社群試用確認可行後,才正式納入企業版RHEL中來銷售。儘管紅帽產品仍堅持全面開源,但紅帽將商業產品和社群專案區隔成不同的品牌,並在企業級產品則提供了更多技術支援和顧問服務,以訂閱制度的收費模式來獲利,這也讓紅帽在2012年時,成為第一家營收超過10億美元的開源軟體業者,去年營收更是突破了20億美元,甚至得到了單筆1億美元的訂單。
開源軟體目前常見的商業模式有好幾種,除了紅帽模式之外,以開源XEN技術,打造出AWS雲端服務來收費的Amazon是另一種成功模式,不過Amazon是在EC市場站穩腳跟之後,才投入雲端服務市場,就算因大舉將營收繼續投入研發和業務推廣,AWS很長一段時間處於獲利負成長的情況,Amazon也絲毫不擔心,因為持續成長的用戶租金,仍可維持AWS營運所需的現金流,甚至還可以憑電商營收來支撐。
將核心產品開源的Docker公司,一開始看似要效法AWS模式,將核心技術開源,並以Docker Hub雲端服務來收費,但又為了推廣,Docker Hub還效法GitHub開源專案代管平臺的作法,採取了公開免費而私有需付費的策略,只對不想公開自家Docker Image的使用者收取代管租金。
儘管Docker Hub下載數快速暴增,代管的映象檔數量也越來越多,但Docker雲端服務項目,仍只有少數幾項,沒有向AWS那樣發展成數百、甚至上千項的雲端服務種類。經過3年,即使Docker再火紅,仍對實際營收數字秘而不宣,僅暗示仍處於赤字階段。
大舉借鏡紅帽開源商業模式
但最近2年,Docker商業模式有點不一樣了,開始提供收費的官方技術支援Docker Commercially Supported,甚至推出搭配官方技術支援的Commercially Supported Docker Engine版本,採年費訂閱制,越來越像紅帽的商業模式,甚至在今年3月時,直接推出了Docker Enterprise Edition(Docker EE),來取代Docker Commercially Supported版本,並將免費的Docker Engine更名為Docker Community Edition(Docker CE),等於將Docker產品分成了企業版和社群版兩種。依技術支援等級不同,Docker企業版還分成三款,EE基本方案、EE標準方案和EE進接方案,年費從750美元到2,000美元不等。至此,Docker效法紅帽模式,只剩下了關鍵一步。在DockerCon大會上,Docker正式將開源專案改名為Moby,就如同紅帽RHEL和Fedora Linux的關係一樣,將開源專案品牌和商業產品品牌切割,這正是Solomon沒說出口的另一個原因。
Docker越來越像是效法紅帽RHEL和Fedora的雙軌模式,一方面區分商業產品和社群品牌,另一方面開始以付費訂閱制來提供商業級產品和技術支援。(圖片來源/Docker)
2017年將主推Docker商業版
在DockerCon第二天,當時仍是Docker執行長的Ben Golub,就完全聚焦在Docker企業布局的說明,他將2017年視為Docker推出商業級產品的關鍵一年,也意味著,如何搶攻企業市場,將成為Docker今年的年度目標。這也反映在Solomon Hykes揭露了產品戰略方向上,不只聚焦於開發者,開始擴大到服務系統管理者,系統架構者,要從更大的企業架構來研發Docker產品的策略。
拉攏更多指標性商業軟體廠商的支援,也是Docker接下來的目標,要讓大型企業慣用的產品能支援Docker,來吸引更多大型企業的採用,不只是微軟站臺力挺,甲骨文也成了Docker陣線的成員,甚至甲骨文將主力產品Jave環境、Oracle Database和中介軟體平臺Weblogic Server都放上了Docker線上商店,提供甲骨文官方打造的Docker映像檔版本,這不僅宣示了甲骨文環境正式擁抱Docker,也是Docker影響力,不只深耕IT基礎架構,也開始向上拓展到更多企業關鍵應用生態鏈的起步。
除了繼續擴大原有Docker生態系之外,Docker也開始透過認證制度,來建立一個企業級產品的生態系。(圖片來源/Docker)
熱門新聞
2024-11-25
2024-11-25
2024-11-15
2024-11-15
2024-11-26