盡管圍繞容器技術出現的炒作新聞隨處可見,但這項應用程序打包技術方案也確實一直在不斷演變,特別是在網絡功能層面。
在過去一年當中,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公司產品高級副總裁Scott Johnston指出,在容器網絡方面技術是最容易解決的問題。
Johnston表示,其實這些技術能力方面的問題是最容易解決的部分。讓開發人員在容器當中構建應用程序并推動IT部門加以使用才是更大的挑戰所在。
容器化應用程序與傳統企業應用相比擁有著截然不同的特性。在過去,IT部門的目標在于提供不會出錯的彈性系統,但現在他們的首要任務變成了想辦法提供容量與敏捷性能夠即時調整的高靈活度網絡體系。
“從網絡的角度來看,應用程序交付與性能水平關系到網絡基礎設施在支持此類新型應用以及用例時的實際表現,”思科公司云基礎設施服務CTO Ken Owens解釋道。“網絡工程師的角色負責思考可編程網絡、軟件定義網絡以及網絡功能虛擬化等技術成果能夠在這方面起到哪些積極作用。”
這些工具允許網絡資源配置得以自動化完成——而不再像過去那樣以手動方式進行——這很可能會在不久的將來成為真正的市場吸引力,并促使采取此類應用范例的企業客戶在進行利弊權衡之后下決心起用上述新機制。