容器已經(jīng)被普遍認(rèn)為是虛擬基礎(chǔ)設(shè)施的下一個重大改進(jìn),其實(shí)現(xiàn)虛擬化的基本方式是將多個操作系統(tǒng)共存于同一虛擬機(jī),從而讓裸機(jī)硬件實(shí)現(xiàn)虛擬化。
這對于數(shù)據(jù)管理與準(zhǔn)確來說是一個福音,因為你不必為每個新應(yīng)用都走一遍開啟新虛擬機(jī)的全套程序,但是這也對網(wǎng)絡(luò)提出了重大挑戰(zhàn)。即便是細(xì)粒度連接也需要抽象層和新的管理層。
這種情況非常適合軟件定義網(wǎng)絡(luò)(SDN),因此容器技術(shù)的主要支持者Docker引入SDN功能就一點(diǎn)也不奇怪了。Docker還在近期收購了幾個月前剛剛成立但致力于研發(fā)Docker原生網(wǎng)絡(luò)的初創(chuàng)公司SocketPlane。實(shí)際上,兩家公司一直在圍繞Docker API展開著密切合作,以為開發(fā)運(yùn)營和系統(tǒng)管理員應(yīng)用提供一個開放平臺。
Docker最終希望在應(yīng)用層部署跨主機(jī)網(wǎng)絡(luò)且同時能夠適用于所有的基礎(chǔ)設(shè)施。在這方面,企業(yè)能夠在基于容器的架構(gòu)中保留應(yīng)用的可移植性,尤其是當(dāng)應(yīng)用在多個主機(jī)或容器之間遷移時。Docker已經(jīng)有能力在不需要復(fù)雜的通信總線情況下在IP基礎(chǔ)設(shè)施間協(xié)調(diào)應(yīng)用。如今,SocketPlane將可幫助他們將這一功能拓展至SDN層,從而實(shí)現(xiàn)在不考慮底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施的情況下讓應(yīng)用能夠更大范圍的分布。
目前并不僅僅是Docker一家公司在努力提升Docker網(wǎng)絡(luò)性能,IBM也正在利用其SDN解決方案(IBM SDN VE)提升Docker環(huán)境,以解決一些特定的問題。首先,與外部主機(jī)通信的IP網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)并不允許容器內(nèi)的服務(wù)直接到達(dá)外部客戶端。其次,不同主機(jī)的容器無法共存于同一網(wǎng)絡(luò)中,這阻礙了在容器中使用標(biāo)準(zhǔn)網(wǎng)絡(luò)技術(shù)。IBM稱,通過SDN VE,他們能夠讓多個容器存在于橫跨多個服務(wù)器的不同虛擬網(wǎng)絡(luò)當(dāng)中,并且能夠讓容器通過外部網(wǎng)絡(luò)訪問,允許容器從托管在非容器架構(gòu)的資源中獲取數(shù)據(jù)。
另一家值得關(guān)注的公司是SaltStack。該公司新的Helium云自動化系統(tǒng)提供了對Docker API的完整支持,以及CPU負(fù)載追蹤和數(shù)據(jù)倉庫等關(guān)鍵的企業(yè)級功能,其中數(shù)據(jù)倉庫已經(jīng)為容器做好了準(zhǔn)備,能夠存儲用于快速配置和部署的網(wǎng)絡(luò)與端口數(shù)據(jù)。目前該公司還正在為CoreOS Rocket平臺和基于Linux的LXC系統(tǒng)等非Docker容器解決方案開發(fā)出一些獨(dú)特方案。此外,SaltStack還在借助紅帽等操作平臺和AWS等云提供商擴(kuò)展其自動化功能,以實(shí)現(xiàn)跨數(shù)據(jù)中心和云基礎(chǔ)設(shè)施的快速配置。
如今容器技術(shù)已經(jīng)通過展現(xiàn)其在分布式架構(gòu)中部署微服務(wù)的能力向企業(yè)展示了自己。網(wǎng)絡(luò)功能的提升可幫助其吸引到更多的主流企業(yè)應(yīng)用,增強(qiáng)企業(yè)對公有云和混合云的依賴度。
在Docker平臺的各方面,包括網(wǎng)絡(luò)在內(nèi),保持主導(dǎo)權(quán)對于Docker無疑有著既得利益,但是在開源領(lǐng)域內(nèi)可能并非如此。如果Docker真的成為了企業(yè)容器平臺,那么如何將第三方SDN解決方案與動態(tài)數(shù)據(jù)基礎(chǔ)設(shè)施的整體構(gòu)件便捷地混合和匹配將會成為人們的興趣所在。