DockerCon回顧(一):Docker、CoreOS握手言和,共同制定容器標準
美國時間6月22日,DockerCon 2015在美國舊金山舉行。在大會的Keynote上,Docker創始人兼CTO Solomon Hykes宣布:Docker將聯合CoreOS等公司共同創建一個完全開放的容器標準,稱之為“開放式容器項目” (Open Container Project)。包括AWS、Google、Microsoft、Redhat、VMWare、華為等超過20家業界巨頭同時宣布支持該項目,并成為開 放式容器項目創始成員。Docker率先為OCP捐獻出了Docker所基于的容器格式和運行時(Runtime)代碼及文檔,成為OCP項目的基石。同 時,由CoreOS發起的Application Container(appc)標準將與OCP整合。這也就是說OCP將會成為了首個業界開放、統一的容器標準。
近兩年多來,Docker引領了一場以容器為核心的,席卷互聯網應用乃至整個IT界的技術革新,正從根本上改變應用開發和發布的方式。經過持續爆發 式的成長,以及迅速壯大的開發者社區和上下游生態,Docker容器實際上已經成為了容器格式和運行時的標準。之前,以CoreOS為代表的容器提供商認 為,容器的標準不應該由一家公司掌控,而應更具開放性。
2014年12月,CoreOS推出自己的容器rkt,并隨后發起了一項開放式的容器標準Application Container(appc),該標準立刻受到了Google、VMWare、Redhat等重量級公司的支持。而由于有不同容器標準的存在,所以也引 發了容器戰爭,并很有可能引起社區分裂,從而減慢容器技術的發展進程。OCP的發布逆轉了這一走勢,包括Docker、CoreOS在內的公司將共同參與 開放式委員會的管理,并統一定義容器標準。社區和生態圈合作伙伴將受益于這個開放式的標準。
Docker創始人兼CTO Solomon Hykes在大會上表示,Docker一貫的方針就是要促進開放式的標準。Docker最大的價值不在于特定的技術,而是讓所有人,包括企業和用戶,對于 某些標準實現統一。既然Docker已經成為了實際上的容器標準,那么Docker也肩負著完善這一標準的使命。而Solomon認為,完善容器標準的最 好方式就是推進該標準的開放性。Solomon對此提出以下幾點原則。
- 正式的標準:開放基于Docker的容器格式,即Open Container Format(開放式容器格式),作為OCP容器格式定義的起點。
- 獨立管理:Open Container Project會成為Linux Foundation成員項目,由委員會管理。
- 中立的參考實現:Docker貢獻出其所基于runC的代碼。
- 受廣泛認同、支持:超過20家業界巨頭共同參與、支持Open Container Project。
- 廣泛接受新的意見和建議:由CoreOS主導的Application Container(appc)標準將與OCP整合,成為OCP項目的一員。
這一宣布對于容器技術今后發展的影響不可估量。畢竟,相對于容器具體的標準,以及這個標準由誰來定,我們更關心的是容器技術有一個統一的標準可循,這樣大家可以放心參考這一標準,在容器上層做更多的,真正產生價值的創新。
在Keynote大會上信息量極大,除了最重磅的OCP,還有大量新內容發布。Solomon Hykes也是以其一貫的“哲學家”的風格,為來賓細細講述Docker創始的初衷,長遠的目標,以及為了實現這些目標將在近期發布的內容。
歸根結底,Docker的使命是“創建用于超大規模創新的工具”而Solomon認為創新的最大杠桿就是互聯網應用,因此,Docker將不遺余力地幫助開發者“提升整個互聯網的可編程性”。Solomon提到了幾個層面的目標:
- 不斷對開發工具進行創新;
- 做開發者的管道工;
- 推動公開的標準;
- 幫助企業用獨到的方法解決實際的問題。
圍繞這些目標,Docker在本次大會上發布了一系列新產品和功能。
- 全新的容器網絡 (Docker Network):自并購SocketPlane后,兩個團隊馬不停蹄地將SDN與Docker容器進行集成,重寫了整個網絡模塊,并將其從Docker 代碼中剝離出來。新的Docker網絡有幾個重大的改動:a)Docker將原生支持跨主機連接;b)應用內部可定義多個容器網絡,相互之間可實現隔 離;c)支持基于DNS的服務發現機制,d)已經有11個網絡后端的插件,今后會支持更多。
- 全新的插件框架(Docker Plugins):用戶可以在保持完整的Docker體驗的同時,通過不同插件來自定義某方面功能,并不影響與其他支持Docker工具的兼容性。同時, 在多租戶環境下,不同容器可以使用不同插件來適應各個場景的需求。目前已有的插件覆蓋網絡、存儲、調度、服務發現等各個方面。
- 試驗性發布,每日更新:為了更高效、快速地采納來自社區的建議,并加快迭代速度,Docker推出“Docker試驗性發布”(Docker Experimental Releases),實現每日更新。
- Docker Plumbing Project:為了更有效、重復使用Docker某些基礎功能層面的模塊,Docker推出“Docker Plumbing Project”,會對Docker代碼做重構,剝離一些可以獨立使用的模塊,反饋到社區,用于Docker以外的項目。
- Notary:Docker對安全模塊進行重構,剝離出了名為Notary的獨立項目,用于解決互聯網內容發布的安全性。該項目不局限于容器應用,但在容器場景下可對鏡像源認證、鏡像完整性等安全需求提供很好的支持。
- runC:Docker對基本容器實現進行重構,剝離出了最底層的容器運行時runC。在架構層面,Docker本身基于這個模塊,但runC對于Docker沒有任何依賴。更重要的是,Docker將runC貢獻給了隨后發布的OCP項目,形成了該開放性容器運行時標準的基石。
第一天的Keynote,我們看到了一個更加開放的Docker,他將擁抱更多的廠商共建生態,尤其是OCP(Open Container Project)項目的誕生,相信未來社區和生態圈合作伙伴將受益于這個開放式的標準。
作者簡介
陳愷,2015年正式加盟靈雀云創 業團隊,任首席技術官。攜其十數年大規模、企業級分布式系統/云平臺研發經驗,打造基于容器技術、面向開發者的云計算平臺。加入靈雀云之前,2004年在 微軟從事Windows操作系統內核(Kernel)的研發,2010年出任微軟云平臺Windows Azure首席架構師/軟件開發部經理,專注于云計算/分布式系統的研發,組建、帶領團隊開發Azure最核心的中控系統(Fabric Controller),管理并支撐整個云平臺后端,承載千萬級規模應用。