1. 程式人生 > >應對 Docker 網路功能難題的挑戰與思考

應對 Docker 網路功能難題的挑戰與思考

儘管圍繞容器技術出現的炒作新聞隨處可見,但這項應用程式打包技術方案也確實一直在不斷演變,特別是在網路功能層面。

在過去一年當中,Docker容器方案中的網路功能已經迎來了一系列長足進步。與此同時, Docker還建立起一套插入架構,允許開發者 將更多先進網路管理工具引入進來以實現容器控制。

解決 Docker 網路功能難題的思考與展望

而在另一方面,多家初創企業亦開始著手打造定製化容器管理平臺,而以思科與VMware為代表的各傳統廠商也開始將容器控制能力新增到自有網路管理工具當中。因此,早期出現的各類容器網路難題已經開始得到解決,不過必須承認、我們距離理想的最終目標仍有很長的道路要走。

基礎性挑戰

容器網路方面的問題似乎永遠存在而無法得到根除。託管在同一物理伺服器之上的各容器系統會彼此互動並進行資料共享。不過Docker開發人員最初並沒有提供必要的此類能力,即將一套容器由一臺主機遷移到另一臺,或者是將某套容器與執行在另一主機之上的其它容器相對接。

“最大的挑戰主要出現在跨容器通訊層面,”技術分析師兼博主Keith Townsend指出。“從一套容器到另一套,大多數網路專業人士都會在實現過程中遭遇職業生涯中最嚴重的阻礙。”

作為同名開源容器專案的開發方,Docker公司中的各位工程技術人員已經意識到了這個問題,並開始著手加以解決。

內建電池,支援更換

正是由於網路難題的存在,Docker公司於2015年3月收購了初創企業SocketPlane,後者的主要業務就是將 軟體定義網路 [注]功能以原生方式新增到Docker當中。今年6月,Docker公司宣佈將SocketPlane技術整合至其開源專案當中。新的網路功能採用基礎Linux橋接機制與VXLAN(即虛擬可擴充套件LAN),允許容器與處於同一Swarm當中的其它容器進行通訊——順帶一提,所謂Swarm是指Docker專用的容器叢集描述名稱。跨主機容器網路問題就此得到解決。

與此同時,Docker還放出了libnetwork,其旗下另一開源專案的代號。該專案允許第三方網路管理工具以“插入”方式替代Docker當中內建的網路功能。以VMware NSX、思科ACI等為代表的多款虛擬網路產品已經成為首批受支援方案。

“其建立起一套 抽象層(+微信關注網路世界),”Docker公司產品高階副總裁Scott Johnston表示。“這是一套 3層網路覆蓋體系,允許 容器與之進行對接。”

Docker目前擁有 兩種網路管理方式。其一為原生方式,即 開箱即用且受到Docker支援的現成功能——歸功於收購SocketPlane,Docker已經擁有了自己的一套跨主機容器連線機制。如果使用者需要 更多先進網路功能,例如以程式設計化方式建立起網路、設定網路政策、安裝防火牆、新增負載均衡方案或者其它虛擬應用,那麼則可以選擇多種 網路管理產品。Docker公司將其方案形容為“內建電池,支援更換”。Johnston指出,他希望能夠在未來實現類似的 容器儲存插入實現模式

技術是最容易解決的問題

解決 Docker 網路功能難題的思考與展望

Docker公司產品高階副總裁Scott Johnston指出,在容器網路方面技術是最容易解決的問題。

Johnston表示,其實這些技術能力方面的問題是最容易解決的部分。 讓開發人員在容器當中構建應用程式並推動IT部門加以使用才是更大的挑戰所在

容器化應用程式與傳統企業應用相比擁有著截然不同的特性。在過去,IT部門的目標在於提供不會出錯的彈性系統,但現在他們的首要任務變成了想辦法提供容量與敏捷效能夠即時調整的高靈活度網路體系。

“從網路的角度來看,應用程式交付與效能水平關係到網路基礎設施在支援此類新型應用以及用例時的實際表現,”思科公司雲基礎設施服務CTO Ken Owens解釋道。“網路工程師的角色負責思考可程式設計網路、軟體定義網路以及 網路功能虛擬化 [注]等技術成果能夠在這方面起到哪些積極作用。”

這些工具允許網路資源配置得以自動化完成——而不再像過去那樣以手動方式進行——這很可能會在不久的將來成為真正的市場吸引力,並促使採取此類應用範例的企業客戶在進行利弊權衡之後下決心起用上述新機制。