隨著企業(yè)上云成為趨勢(shì),如何在本地?cái)?shù)據(jù)中心與公有云之間為應(yīng)用遷移構(gòu)建橋梁,讓大家再次想到了容器。說到容器,很多人會(huì)先想到集裝箱,為什么這么說?因?yàn)閺谋举|(zhì)來看,容器的打包交付方式與碼頭工人裝箱上船很類似。這樣的好處在于,既節(jié)省了分批搬運(yùn)的時(shí)間,又有效降低了遷移成本。
容器在云時(shí)代迸發(fā)活力(圖片來自docker)
從技術(shù)的角度來看,Docker基于沙箱機(jī)制可將任何應(yīng)用集成在一個(gè)輕量化、可移植、標(biāo)準(zhǔn)化的容器中,核心問題就是利用Linux容器技術(shù)實(shí)現(xiàn)類似虛擬機(jī)的功能。通常,企業(yè)內(nèi)部對(duì)數(shù)據(jù)在本地和云端之間的遷移要求是無縫即時(shí)的,而容器要做的就是基于底層提供一個(gè)抽象層讓應(yīng)用“隨意交互”。
不過,Docker并不會(huì)重寫代碼,只是讓跨平臺(tái)部署變得容易了,想具有擴(kuò)展性還是要由開發(fā)者親自動(dòng)手。同時(shí),Docker也不是橫跨所有系統(tǒng),畢竟系統(tǒng)層的軟件泊接不是停船裝貨那么簡(jiǎn)單。
對(duì)于任何一家企業(yè)而言,打包交付的方式都是首選,但遺憾的是現(xiàn)有工具無法在用戶使用容器時(shí)提供完全自動(dòng)化的方案。能力越大,需要注意的點(diǎn)就越多,容器可以將package直接從開發(fā)環(huán)境搬到生產(chǎn)環(huán)境,但在生產(chǎn)環(huán)境仍有要完善的地方。
在編排層面,常見的編排工具包括Kubernetes(谷歌開源工具)、Docker Swarm、Apache Mesos、Rancher等,它們能夠處理復(fù)雜任務(wù),例如查找最優(yōu)運(yùn)行位置、處理失敗任務(wù)、分享儲(chǔ)存卷或創(chuàng)建負(fù)載均衡與容器間通訊的覆蓋網(wǎng)絡(luò)。
據(jù)了解,Kubernetes使用了計(jì)算集群部署并管理容器,通過均衡工作負(fù)載來維護(hù)性能。在集群中運(yùn)行時(shí),Kubernetes的自復(fù)制性可以從橫向或縱向擴(kuò)展容器數(shù)量,以滿足多應(yīng)用遷移的需求。
從容器的發(fā)展來看,其在生產(chǎn)環(huán)境、安全性等方面仍有不小的完善空間,要想將整個(gè)環(huán)境變得更加成熟,離不開生態(tài)的打造,其中要升級(jí)上下游的合作伙伴,包括設(shè)計(jì)和制造商。任何一項(xiàng)技術(shù)的普及都不是一帆風(fēng)順的,容器也是如此。