解密開放容器計劃(OCI)規範
開放容器計劃 (OCI)宣布本周完成了容器運行時和鏡像的第一版規範。OCI 在是 Linux 基金會 支持下的容器解決方案標準化的成果。兩年來,為了建立這些規範已經付出了大量的努力。 由此,讓我們一起來回顧過去兩年中出現的一些誤區。
誤區:OCI 是 Docker 的替代品
誠然標準非常重要,但它們遠非一個完整的生產平台。 以萬維網為例,它 25 年來一路演進,建立在諸如 TCP/IP 、HTTP 和 HTML 等可靠的核心標準之上。再以 TCP/IP 為例,當企業將 TCP/IP 合併為一種通用協議時,它推動了路由器行業,尤其是思科的發展。 然而,思科通過專註於在其路由平台上提供差異化的功能,而成為市場的領導者。我們認為 OCI 規範和 Docker 也是類似這樣並行存在的。
Docker 是一個完整的生產平台,提供了基於容器的開發、分發、安全、編排的一體化解決方案。Docker 使用了 OCI 規範,但它大約只佔總代碼的 5%,而且 Docker 平台只有一小部分涉及容器的運行時行為和容器鏡像的布局。
誤區:產品和項目已經通過了 OCI 規範認證
運行時和鏡像規範本周剛發布 1.0 的版本。 而且 OCI 認證計劃仍在開發階段,所以企業在該認證正式推出之前(今年晚些時候),沒法要求容器產品的合規性、一致性或兼容性。
OCI 認證工作組目前正在制定標準,使容器產品和開源項目能夠符合規範的要求。標準和規範對於實施解決方案的工程師很重要,但正式認證是向客戶保證其正在使用的技術真正符合標準的唯一方式。
誤區:Docker 不支持 OCI 規範的工作
Docker 很早就開始為 OCI 做貢獻。 我們向 OCI 貢獻了大部分的代碼,作為 OCI 項目的維護者,為 OCI 運行時和鏡像規範定義提供了積極有益的幫助。Docker 運行時和鏡像格式在 2013 年開源發布之後,便迅速成為事實上的標準,我們認為將代碼捐贈給中立的管理機構,對於避免容器行業的碎片化和鼓勵行業創新將是有益的。我們的目標是提供一個可靠和標準化的規範,因此 Docker 提供了一個簡單的容器運行時 runc 作為運行時規範工作的基礎,後來又貢獻了 Docker V2 鏡像規範作為 OCI 鏡像規範工作的基礎。
Docker 的開發人員如 Michael Crosby 和 Stephen Day 從一開始就是這項工作的關鍵貢獻者,確保能將 Docker 的託管和運行數十億個容器鏡像的經驗帶給 OCI。等認證工作組完成(制定認證規範的)工作後,Docker 將通過 OCI 認證將其產品展示出來,以證明 OCI 的一致性。
誤區:OCI 僅用於 Linux 容器技術
因為 OCI 是由 Linux 基金會 負責制定的,所以很容易讓人誤解為 OCI 僅適用於 Linux 容器技術。 而實際上並非如此,儘管 Docker 技術源於 Linux 世界,但 Docker 也一直在與微軟合作,將我們的容器技術、平台和工具帶到 Windows Server 的世界。 此外,Docker 向 OCI 貢獻的基礎技術廣泛適用於包括 Linux 、Windows 和 Solaris 在內的多種操作系統環境,涵蓋了 x86、ARM 和 IBM zSeries 等多種架構環境。
誤區:Docker 僅僅是 OCI 的眾多貢獻者之一
OCI 作為一個支持成員眾多的開放組織,代表了容器行業的廣度。 也就是說,它是一個小而專業的個人技術專家組,為製作初始規範的工作貢獻了大量的時間和技術。 Docker 是 OCI 的創始成員,貢獻了初始代碼庫,構成了運行時規範的基礎和後來的參考實現。 同樣地,Docker 也將 Docker V2 鏡像規範貢獻給 OCI 作為鏡像規範的基礎。
誤區:CRI-O 是 OCI 項目
CRI-O 是 雲計算基金會 (CNCF)的 Kubernetes 孵化器的開源項目 -- 它不是 OCI 項目。 它基於早期版本的 Docker 體系結構,而 containerd 是一個直接的 CNCF 項目,它是一個包括 runc 參考實現的更大的容器運行時。 containerd 負責鏡像傳輸和存儲、容器運行和監控,以及支持存儲和網路附件等底層功能。 Docker 在五個最大的雲提供商(阿里雲、AWS、Google Cloud Platform(GCP)、IBM Softlayer 和 Microsoft Azure)的支持下,將 containerd 捐贈給了雲計算基金會(CNCF),作為多個容器平台和編排系統的核心容器運行時。
誤區:OCI 規範現在已經完成了
雖然首版容器運行時和鏡像格式規範的發布是一個重要的里程碑,但還有許多工作有待完成。 OCI 一開始著眼於定義一個狹窄的規範:開發人員可以依賴於容器的運行時行為,防止容器行業碎片化,並且仍然允許在不斷變化的容器域中進行創新。之後才將含容器鏡像規範囊括其中。
隨著工作組完成運行時行為和鏡像格式的第一個穩定規範,新的工作考量也已經同步展開。未來的新特性將包括分發和簽名等。 然而,OCI 的下一個最重要的工作是提供一個由測試套件支持的認證過程,因為第一個規範已經穩定了。
在 Docker 了解更多關於 OCI 和開源的信息:
- 閱讀關於 [OCI v1.0 版本的運行時和鏡像格式規範]的博文[1]
- 訪問 OCI 的網站
- 訪問 Moby 項目網站
- 參加 DockerCon Europe 2017
- 參加 Moby Summit LA
作者簡介:
Stephen 是 Docker 開源項目總監。 他曾在 Hewlett-Packard Enterprise (惠普企業)擔任董事和傑出技術專家。他的關於開源軟體和商業的博客發布在 「再次違約」(http://stephesblog.blogs.com) 和網站 opensource.com 上。
via: https://blog.docker.com/2017/07/demystifying-open-container-initiative-oci-specifications/
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive