西班牙巴塞羅那 - 微軟和Docker公司于12月5日在DockerCon Europe 2018聯(lián)合宣布了一項名為Cloud Native Application Bundles(CNAB)的新規(guī)范,旨在讓開發(fā)人員和組織更輕松地部署包含簡化包裝的完整應(yīng)用程序系統(tǒng)。
CNAB目前提供包裝分布式應(yīng)用程序的初始早期規(guī)范。根據(jù)Microsoft和Docker的說法,該規(guī)范的目標(biāo)是促進(jìn)容器本機應(yīng)用程序及其耦合服務(wù)的捆綁,安裝和管理。
“我們問......如果我們能夠安裝云本機應(yīng)用程序,安裝和安裝桌面應(yīng)用程序一樣容易嗎?” 微軟首席軟件開發(fā)工程師Matt Butcher在DockerCon主題演講中表示。“我們正在發(fā)布云原生應(yīng)用程序包的規(guī)范,這是非常重要的第一步。”
今天,容器和微服務(wù)應(yīng)用程序有多種打包和分發(fā)方式,包括dockerfiles,Docker Compose和Helm chart等。CNAB旨在回答與現(xiàn)有包裝系統(tǒng)不同的挑戰(zhàn)。
“這[CNAB]是描述具有大量資源的分布式應(yīng)用程序的有價值的方式,它可以是容器或無服務(wù)器對象,可以部署在云端,邊緣或本地,”Scott Docker首席產(chǎn)品官約翰斯頓告訴eWEEK。“使用CNAB,運營商可以獲得一個不可變的捆綁包,從而更容易部署應(yīng)用程序。”
Johnston解釋說,今天Docker看到組織復(fù)制并粘貼Docker Compose文件以捆綁應(yīng)用程序。他指出,通過Compose,組織通常會為特定環(huán)境所需的資源進(jìn)行硬連接。使用CNAB可以消除復(fù)雜性,為操作員提供可用于多種方案的單個應(yīng)用程序包。
Docker已經(jīng)成為Open Container Initiative(OCI)app圖像格式規(guī)范的支持者。約翰斯頓說,CNAB使用OCI圖像,以及Docker Compose文件和Helm圖表。
“在這種情況下,這些文物仍然可用和有用,”約翰斯頓說。“Docker鏡像是單容器應(yīng)用程序映像,而我們試圖用CNAB解決的是分布式多服務(wù)類型的應(yīng)用程序。”
舵
在Kubernetes領(lǐng)域,開源Helm項目和相關(guān)的Helm圖表已成為定義Kubernetes應(yīng)用程序部署的標(biāo)準(zhǔn)方法。微軟Azure云本地計算的首席項目經(jīng)理Gabe Monroy告訴eWEEK,建立Helm的同一團(tuán)隊參與了CNAB的開發(fā)。
“通過Helm體驗已經(jīng)學(xué)到了很多可以應(yīng)用于這項工作的教訓(xùn),”Monroy說。
從Helm學(xué)到的一個例子是CNAB處理參數(shù)化的方式。Monroy說,使用Docker Compose文件,開發(fā)人員可以選擇使用不同的參數(shù)來指定不同環(huán)境的值。
“我們看到的問題是沒有與該參數(shù)化相關(guān)的模式,并且無法保證我們可以驗證,”Monroy說。“在CNAB規(guī)范中,基于參數(shù)對模式有一流的支持,因此我們可以獲得參數(shù)化的好處,并且可以很好地保證數(shù)據(jù)的良好性。”
Monroy補充說,雖然Helm適用于Kubernetes,但軟件開發(fā)的世界不僅僅是Kubernetes和容器。
“我們希望在這里做的是采取容器包裝,分銷和安全模式的神奇之處,但將其應(yīng)用于企業(yè)今天必須管理的多樣化資源,”Monroy說。