解密開放容器計劃(OCI)規範

Stephen發表於2017-08-09

開放容器計劃Open Container Initiative(OCI)宣佈本週完成了容器執行時和映象的第一版規範。OCI 在是 Linux 基金會Linux Foundation支援下的容器解決方案標準化的成果。兩年來,為了建立這些規範已經付出了大量的努力。 由此,讓我們一起來回顧過去兩年中出現的一些誤區。

OCI

誤區: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 基金會Linux Foundation 負責制定的,所以很容易讓人誤解為 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 是雲端計算基金會Cloud Native Computing Foundation(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 和開源的資訊:


作者簡介:

Stephen 是 Docker 開源專案總監。 他曾在 Hewlett-Packard Enterprise (惠普企業)擔任董事和傑出技術專家。他的關於開源軟體和商業的部落格釋出在 “再次違約”(http://stephesblog.blogs.com) 和網站 opensource.com 上。


via: https://blog.docker.com/2017/07/demystifying-open-container-initiative-oci-specifications/

作者:Stephen 譯者:rieonke 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章