華為梁辰曄:OCI容器標準的社區演進和OCI方案的實戰
原創【51CTO.com原創稿件】2017年12月01日-02日,由51CTO主辦的WOTD全球軟件開發技術峰會將在深圳中州萬豪酒店隆重舉行。本次峰會以軟件開發為主題,數十位專家級嘉賓將帶來多場精彩的技術內容分享。屆時,華為主任工程師梁辰曄將在微服務與容器技術分會場與來賓分享"OCI容器標準的社區演進和OCI方案的實戰"的主題演講,為大家詳細闡述容器標準的目前發展狀況及如何打造一套完整的OCI社區方案。51CTO誠邀您蒞臨大會,與我們共享技術帶來的喜悅。
51CTO記者對即將參加大會演講的梁辰曄老師進行了專訪,讓我們先睹為快,探聽一下他是解讀OCI方案實戰的。
OCI 1.0已經發布
2015年,由Docker、IBM、微軟、紅帽及Google等廠商所組成的OCI聯盟成立,并于2016年4月推出了***個開放容器標準。除推出OCI Runtime標準,讓開發者打包、部署應用程序,并可以自由選用不同的容器Runtime外,還推出開放容器OCI鏡像標準,由容器技術社區制定規范,確立容器鏡像建立、認證、部署以及命名的方式。今年早些時候,***個標準OCI 1.0版終于正式出爐,此標準也意味容器離標準化更近一步。
時至今日,OCI容器標準發展如何了?梁辰曄老師詳細做了介紹。
runtime標準已經發布了1.0版本,相對比較成熟,當前的主流容器引擎包括runc, rkt, runv等都能兼容runtime標準。image 標準也已經發布了1.0版本,但是這個標準僅限于格式標準。OCI Image格式和Docker的鏡像格式非常相似(因為OCI Image格式完全借鑒Docker的鏡像格式),包括一個完整的分層技術和描述文件。
目前,OCI社區提供工具來驗證 “某個runtime是否符合runtime標準”, 也提供工具來驗證“某個image是否符合image標準”。
對 runtime的驗證,是用每個標準項的預期的結果和實際的結果進行對比,如果全部一致,證明符合標準,反之則會報錯。例如,要驗證一個程序執行過程中的環境變量是否和設定的一致,那么只要把運行中的環境變量和配置里的環境變量進行對比即可。對image的驗證,是判斷某個image的各層、各配置項是否符合OCI含義,如果有不合規的配置,那么說明這個鏡像 “非OCI標準”。
OCI路標
存在不可忽視的缺陷
容器標準的發展歷史尚短,目前主要存在兩個缺陷:
1. 鏡像發現獲取機制的欠缺, 這也是和主流的Docker/rkt的***差距
鏡像標準制定了鏡像的格式,但是“從哪獲取鏡像,如何獲取”,都是問題。這就限制了OCI鏡像的流行,因為用戶或開發者根本找不到一個可用的鏡像。針對于此,社區的做法是從Docker里面獲取一個Docker鏡像,然后轉化成OCI鏡像。但很明顯,這個根本無法商業化。
這也可以說明Docker為什么流行,就是Docker的鏡像應用比較豐富,鏡像的制作和發布很方便。OCI沒有了鏡像的分發機制,就只能是一個理論上的產物。
2. 無法覆蓋更多的場景
容器方案千差萬別,OCI社區無法預知到一個能夠符合所有場景的標準。比如 runV,也有一些選項是OCI無法滿足的。
梁辰曄老師表示,目前容器標準能夠相安無事還是因為社區里面Docker一家獨大,未來容器標準能否覆蓋更多的方案還未知,那個時候才是真正考驗“標準”社區的時候。
打造完整的OCI社區方案
說到如何打造一套完整的OCI社區方案,目前可以參考的還是 Docker方案。
Docker里包括:1. Hub:負責鏡像的托管。 2. Build:負責鏡像的制作。 3. Dockerfile :鏡像制作的配置文件。4. Docker pull/push:負責鏡像的傳輸 5. Image:本地管理,把獲取的鏡像在本地理起來。 6. Docker run:負責鏡像的運行。其中,4~6都是Docker命令來完成。
這里的 1~5,其實都與鏡像相關,只有6與runtime相關。因此可以看到,一個完整的 OCI方案,需要有大量的鏡像相關的操作。而這些都是OCI里沒有的,也是未來OCI社區要做的事情。
梁辰曄老師將在WOTD現場,用當前的開源項目為原型演示一個完整的OCI方案。
OCI的架構圖
向“商業成熟”努力
目前,OCI按照先易后難的原則聚焦運行時和鏡像格式的標準化,1.0標準發布之后,OCI的標準范圍會逐漸擴大到鏡像發現機制、鏡像獲取機制等內容,引入新的項目。未來OCI社區的方案肯定會越來越“商業成熟”,那個時候才能真正體現OCI的價值。
對于PaaS云開發、部署和運維人員來說,到時就可以不用特別擔心集成的runtime和選用的鏡像是否有兼容問題,只要符合OCI標準就能無縫的“獲取”和“運行”。
【講師簡介】
梁辰曄,華為主任工程師,從事容器相關的開發以及社區組織工作。現為Linux/OCI社區maintainer,華為容器OS社區(EulerOS iSula)的負責人。擁有10多年的社區布道、社區開發和商業產品的交付經驗。先后活躍于GNOME社區、openSUSE社區,對開源開發、開源到商業的轉換有深刻的理解。
使用雙十一特別優惠碼[B310BD20D337F914] 立減200元,和我一起去WOTD全球軟件開發技術峰會!詳情點擊wot.51cto.com
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】