微軟與Docker本周二(12/4)共同發表了雲端原生程式包(Cloud Native Application Bundle,CNAB),這是一個用來包裝分散式程式的規格,Docker則將它稱為「各種容器的容器」(A container of containers),可用來包裝、安裝或管理容器程式及與之相關的服務。

根據TechCrunch的報導,微軟一年前就開始打造CNAB,當時發現Docker也在開發類似的專案,於是雙方一拍即合,決定結合彼此的力量來推動CNAB,目標是讓它成為業界標準。

CNAB奠基於JSON、Docker容器及OpenPGP等技術上,定義包裝、安裝及管理分散式程式的格式,透過CNAB,開發人員只要利用單一的安裝檔就能管理各種分散式程式,確實地供應來自不同環境的應用程式資源,也方便管理應用程式生命周期。

此外,CNAB可適用於各種平台,從雲端的Azure到就地部署的OpenStack,從Kubernetes到Swarm,或是從Ansible到Terraform,而且它能在工作站上、公有雲上、氣隙網路(air-gap network)上,或是資源受限的IoT環境中執行。

Docker營運長Scott Johnston在接受The Register專訪時描述,Docker解決了單一元件應用程式的問題,而CNAB則可用來解決分散式應用程式,Docker內部將它稱之為「各種容器的容器」。

微軟首席軟體開發工程師Matt Butcher指出,CNAB帶來了許多現代分散式應用生態體系所缺乏的功能,例如它能把促成一個程式的離散資源當作單一邏輯單元來管理;或是定義及使用各種操作動詞來管理程式的生命周期,如安裝、升級或卸載;能夠在底層技術不支援的情況下簽署及驗證程式包;可輸出程式包及所有的相依性以於其它環境重現,包含離線環境;還能將程式包存放在儲存庫中以執行遠端安裝。

為了示範CNAB,微軟本周還釋出了Duffle,此為CNAB客戶端的開源參考實作,可用來安裝、升級與卸載CNAB程式包,也能建立新的程式包,執行加密簽章或是驗證程式包的完整性。

現階段Docker將允許用戶將CNAB格式打包成Docker影像,可透過Docker Hub與Docker Trusted Registry等工具分享,幾個月後即會開發Docker Enterprise用戶部署及管理CNAB應用程式。除了Docker之外,HashiCorp與Bitnami也都準備要提供標準化的CNAB程式包供客戶下載。


Advertisement

更多 iThome相關內容