新一年,Docker技術(shù)路線圖中包含了Microsoft技術(shù)支持、開源編輯工具以及更新后的容器產(chǎn)品。
貌似Docker前兩年的發(fā)展步伐并沒有足夠快,因此,在2015年應(yīng)用容器供應(yīng)商開始準(zhǔn)備發(fā)布一款針對(duì)Linux顧客的開源編輯工具以及Microsoft Azure和Hyper-V的測(cè)試版編輯工具。Docker公司首席執(zhí)行官Ben Golub說,該工具的發(fā)布取得了很不錯(cuò)的成果。他說:“我們從2013年就開始著手,截止2014年共有7000萬的下載量,從一個(gè)很棒的產(chǎn)品逐漸發(fā)展成為一個(gè)大型的生態(tài)系統(tǒng),呈旋風(fēng)式增長(zhǎng)。”在本次SearchSOA訪問中,他向我們概述了Docker公司的技術(shù)路線。
作為一個(gè)分布式應(yīng)用的開放平臺(tái),Docker可以為開發(fā)人員和系統(tǒng)管理員提供哪些核心價(jià)值?
Ben Golub說:Docker不僅僅是描述了應(yīng)用程序,而且還描述了其對(duì)所需運(yùn)行軟件的所有依賴關(guān)系。如果你描述了容器內(nèi)所需運(yùn)行軟件的所有細(xì)節(jié),并且將該容器轉(zhuǎn)移到另外一個(gè)新服務(wù)器中,那么,你不必?fù)?dān)憂其是否適配于該服務(wù)器、依賴關(guān)系是否相配,所有問題都會(huì)得到解決。
今年Docker的技術(shù)發(fā)展路線包含哪些內(nèi)容?
Golub說:我們是開源應(yīng)用,因此,路線圖中實(shí)際上幾乎包含了所有技術(shù)。截止去年六月份,客戶可以在我們這免費(fèi)獲得任何應(yīng)用程序,將該應(yīng)用程序放到Docker容器中,就可以在Linux服務(wù)器中運(yùn)行該應(yīng)用程序(任何Linux應(yīng)用程序都可以在Linux服務(wù)器上運(yùn)行)。
去年年末,我們宣布了與Microsoft建立合作伙伴關(guān)系。我們與Microsoft合作的目的是要讓客戶可以在Windows和Docker界面下都可以使用Linux和Docker。這將是一個(gè)龐大的實(shí)施過程。
據(jù)我所知,可擴(kuò)展性也在Docker路線圖中。
Golub說:我們打算從以前的在一個(gè)服務(wù)器的容器中開發(fā)應(yīng)用程序改變?yōu)榭梢钥缍鄠€(gè)不同服務(wù)器在包含不同組件的容器中開發(fā)應(yīng)用程序。事到如今,我們必須確保這些容器能與其他部分很好地配合,安全性、存儲(chǔ)功能良好,同時(shí)網(wǎng)絡(luò)也要保持良好的狀態(tài)。
今年的Docker路線圖中為什么提供管理和編程解決方案?
Golub說:我們想要幫助企業(yè)擴(kuò)大Docker容器的容量。他們從最初的由幾十名開發(fā)人員在幾十個(gè)服務(wù)器上開發(fā)幾十個(gè)容器,發(fā)展到如今,由幾千名開發(fā)人員在幾千個(gè)服務(wù)器上開發(fā)成千上萬的容器。
通過Docker開放資源,編程過程發(fā)生了許多明顯的變化。其中包括集群,例如Docker Swarm的集群功能。Swarm向Docker容器的調(diào)度和執(zhí)行工作中提供本地集群。同樣,Docker Compose 幫助開發(fā)人員將不同的配件組合成一種應(yīng)用程序,例如,當(dāng)他們正在準(zhǔn)備構(gòu)建設(shè)備讓其可以在Docker上運(yùn)行時(shí),其中包括網(wǎng)絡(luò)和存儲(chǔ)模塊。
你的開放API如何改進(jìn)Docker向管理解決方案發(fā)展?
Golub:我們正在采取措施來定義更高水平的API,并邀請(qǐng)大量的來自于社區(qū)的人員,不僅幫助我們定義API,還構(gòu)建他們自己的類型的插件。這樣,如果你喜歡谷歌式的編排,你可以使用Kubernetes,如你喜歡Twitter式的,你可以使用Mesos等等。在網(wǎng)絡(luò)和存儲(chǔ)方法也一樣。從商業(yè)的角度,我們采用了非常流行的Docker Hub服務(wù),它是一個(gè)托管服務(wù),可用于尋找、發(fā)布、消費(fèi)不同類型的容器,使之變得更加商業(yè)可用;這樣,你就會(huì)了解誰發(fā)布了什么,以及它的來源;給你希望運(yùn)行的容器設(shè)置規(guī)則;如你認(rèn)為哪個(gè)容器是無用的,或者有安全缺陷之類的問題,你就摧毀它。
Docker容器在Linux、Apache、MySQL和PHP的LAMP堆中如何發(fā)揮作用?
Golub說:比如說,我正在籌建一款LAMP應(yīng)用程序,因此,就會(huì)需要L、A、M和P,無論我正在做哪一個(gè)模塊。
有了Docker,我就能夠分享每一個(gè)服務(wù)器上的L,或者稱其為L(zhǎng)inux。但是,如果已經(jīng)有三個(gè)LAMP應(yīng)用程序在同一個(gè)服務(wù)器中運(yùn)行的話,那么,我就不需要A、M和P了。我僅僅是把這三個(gè)模塊應(yīng)用到其他應(yīng)用程序中即可。
Docker所做的事就是為開發(fā)人員排憂艱難。開發(fā)人員不用再擔(dān)心每個(gè)服務(wù)器的樣子、服務(wù)器的配置、運(yùn)行的是哪一個(gè)版本的操作系統(tǒng)、是實(shí)際的操作系統(tǒng)還是虛擬操作系統(tǒng)、是屬于亞馬遜還是其他公司。他們只需要全身心地投入到應(yīng)用程序中就行,這才是開發(fā)人員想要做的事情。
對(duì)于剛使用Docker容器和服務(wù)器的公司來說,您有什么意見及建議嗎?
Golub說:最好首先只邁一小步。Docker的好處之一就是,一天之內(nèi),一名開發(fā)者通過使用Docker就可以完成任務(wù),而無需企業(yè)的其他開發(fā)人員幫忙,或者也不需要幾個(gè)月的時(shí)間去完成這個(gè)項(xiàng)目。開發(fā)人員一般也都會(huì)從簡(jiǎn)單的開始入手,從無狀態(tài)的應(yīng)用程序開始開發(fā)。起始于開發(fā),經(jīng)歷開發(fā)-開發(fā)測(cè)試-開發(fā)測(cè)試-構(gòu)建,然后我們就會(huì)考慮將其轉(zhuǎn)移到產(chǎn)品中去。我認(rèn)為,處理這件事正確的方法是,尋找一種演進(jìn)的方法,從中獲取價(jià)值,那么或多或少,事情就會(huì)有機(jī)地進(jìn)行著,而并不是要做一個(gè)涉及到許多部門的大項(xiàng)目。這是一種反向思維。