2018年12月份,微軟和Docker宣佈了一個新的聯合開源項目,Cloud Native Application Bundle(CNAB),旨在簡化雲原生應用程序的生命週期管理。從本質上講,CNAB 只是一個規範,允許開發人員聲明如何打包和運行應用程序。有了CNAB ,開發人員可以定義資源,將應用程序部署到本地工作站或公共雲。
該規範誕生於微軟內部,但當團隊和Docker 交流時發現,Docker的 工程師正在開展一個類似的項目。雙方決定將力量結合起來,並將結果作爲一個開源項目推出。“大約一年前,我們意識到我們都在做同樣的事情,”微軟的Gabe Monroy 說。“我們決定將力量結合起來,並將其作爲行業標準彙集在一起。”
作爲其中的一部分,微軟推出了自己的CNAB 客戶端參考實現,叫做Duffle,它允許用戶執行所有常規生命週期步驟(安裝、升級、卸載),創建新的CNAB 包並以加密方式對其進行簽名。Docker 正在努力將CNAB 集成到自己的工具中。
微軟還推出了用於構建和託管這些軟件包的Visual Studio 擴展,以及一個軟件包存儲庫服務器和一個Electron 安裝程序的示例實現,它允許你在GUI 的幫助下安裝軟件包。
現在值得注意的是,我們在這裏談論的是規範和參考實現。顯然,當今市場上存在一個龐大的生命週期管理工具生態系統,這些工具都有自己的優點和缺點。“我們無法統一這種工具,”Monroy 說。“我認爲這不是一個可行的目標。但我們可以做的是我們可以統一模型,特別是生命週期管理經驗以及打包和發佈體驗。這實際上是Docker 能夠處理單工作負載的情況。“
隨着時間的推移,微軟和Docker 希望規範最終成爲供應商無關的基礎。哪一個還有待觀察,不過似乎開放式容器計劃看起來天然就是類似項目的歸屬。