容器的歷史,可能比你想象的更為久遠(yuǎn)
人們常說,IT的腳步日新月異,每天都有新的技術(shù)被創(chuàng)造、應(yīng)用,每天也有舊的技術(shù)被淘汰,逐漸消失在人們的視野。但事實真的是這樣嗎?也許,這些新技術(shù)并沒有那么“新”,那些“舊技術(shù)”也只是在等待破繭成蝶的那一天。
舉個“栗子”,1999年VMware推出了第一個x86虛擬化產(chǎn)品VMware Virtual Platform并大獲成功,繼而成為當(dāng)今虛擬化市場的領(lǐng)導(dǎo)者。對于一款產(chǎn)品來說,VMware的虛擬化確實是新的,但對于虛擬化本身來說,VMware虛擬化則是一種繼承和突破,有關(guān)虛擬化的概念與早期產(chǎn)品,可以追溯到1960年代,這中間整整相差了39年。
容器技術(shù)也是一樣,今天人們普遍將Docker視為容器的代名詞,但其實容器要比Docker古老得多了。
1979年,在Unix V7操作系統(tǒng)的開發(fā)中,為隔離出可供軟件進(jìn)行構(gòu)建和測試的環(huán)境,chroot(change root)系統(tǒng)調(diào)用程序橫空出現(xiàn),這是容器史上第一道乍現(xiàn)的靈光。
接著到2000年,互聯(lián)網(wǎng)開始繁榮,納斯達(dá)克綜合指數(shù)站到了5132.52的峰值,在這一年,一家小型的共享環(huán)境托管提供商提出了FreeBSD Jails,以實現(xiàn)服務(wù)與客戶服務(wù)之間的明確區(qū)分。
FreeBSD Jails允許管理員將FreeBSD計算機(jī)系統(tǒng)劃分為幾個獨立的,較小的系統(tǒng),稱為“Jails”,并能夠為每個系統(tǒng)和配置分配IP地址,真正意義上實現(xiàn)了進(jìn)程的沙盒化。從而成為容器發(fā)展史上的一個重要轉(zhuǎn)折點。
此后,又經(jīng)過了13年的蟄伏,直到2013年,隨著開源Docker項目容器鏡像格式和運(yùn)行時的橫空出世,容器才真正廣受歡迎。
Docker誕生在云計算繁榮的背景下,這種使應(yīng)用程序部署更精簡,更方便的方式,恰好符合云時代人們對于敏捷和靈活的要求。
Docker鏡像是一種標(biāo)準(zhǔn)化、輕量級、獨立、可執(zhí)行的軟件包,其中包含運(yùn)行一項功能所需的一切組件,例如代碼、運(yùn)行時間庫、環(huán)境變量以及配置文件。從而避免了依賴運(yùn)行容器的各種服務(wù)器的操作系統(tǒng),實現(xiàn) “build once,run anywhere”。
容器和Kubernetes
說到容器,不少人也把Kubernetes與Docker相提并論。其實兩者沒有直接的可比性,根基不同,解決的問題也不同。
Kubernetes最初由谷歌開發(fā)而來,目前由云原生計算基金會(Cloud Native Computing Foundation, CNCF)管理。Kubernetes的目的是為了解決容器不易于批量管理的問題,實現(xiàn)容器集群的自動化部署、自動擴(kuò)縮容、維護(hù)等功能。
今天,Kubernetes已成為構(gòu)建容器化平臺體系的默認(rèn)抽象方案,從更大的意義上來說,Kuberntes也是容器發(fā)展的重大貢獻(xiàn)者之一。
試想一下,容器(Container)就是集裝箱,本身就是個大鐵盒子,其實沒有太多價值,單單靠它提高不了社會協(xié)作的效能。它只有流動起來,把貨物從一個車間運(yùn)到另一個車間,從一個國家運(yùn)送到另一個國家,才能極大提高生產(chǎn)力,這種連接才是其價值所在。
而Kubernetes就是這樣一個容器編排工具。在既有硬件資源的基礎(chǔ)上,啟動容器不需要關(guān)注具體運(yùn)行的節(jié)點,各個容器之間仍能保持通信,信息在容器之間依然可以流動。這樣容器技術(shù)便可以付諸商用,整個軟件的開發(fā)交付流程就會變得高效和顛覆。
在具體操作中,Kubernetes使用主節(jié)點來調(diào)度和管理容器應(yīng)用的執(zhí)行過程。主節(jié)點提供環(huán)境來執(zhí)Kubernetes控制面板,搭建集群,以及安排容器執(zhí)行日程。Kubernetes容器在工作節(jié)點中的pod下執(zhí)行。
一般情況下,每個pod運(yùn)行一個容器實例,或者少數(shù)選定的實例——這些少數(shù)實例共享著需要共同執(zhí)行的資源。一個Kubernetes pod包含操作系統(tǒng)和運(yùn)行時間環(huán)境,該環(huán)境使容器應(yīng)用能夠運(yùn)行。容器網(wǎng)絡(luò)由Kubernetes控制面板、主節(jié)點和工作節(jié)點配置和管理,旨在提供容器應(yīng)用所需的IP連接。
容器離不開編排
容器也離不開IT基礎(chǔ)架構(gòu)
正如容器在Kubernetes的推動下得到了極大發(fā)展,一個位于底層的IT基礎(chǔ)架構(gòu)如果對于容器有很好的支持,也必將為開發(fā)人員帶來事半功倍的效果。
去年,VMware發(fā)布的全新解決方案——VMware Tanzu和VMware Cloud Foundation 4,通過將容器與虛擬機(jī)統(tǒng)一為一體,用戶可以在vSphere7.0下大規(guī)模地并行運(yùn)行Kubernetes服務(wù)和虛擬化應(yīng)用,從而為應(yīng)用的開發(fā)和運(yùn)維帶來極大便利。
而作為市面上唯一全面集成VMware、預(yù)先配置VMware軟件的超融合一體機(jī),VxRail也已同步升級到7.0版本,通過大幅降低使用Kubernetes和基于Kubernetes的開發(fā)者工具的復(fù)雜性,為用戶提供了從單一環(huán)境到Kubernetes的簡單直接路徑。
*戴爾易安信VxRail采用英特爾®至強(qiáng)®可擴(kuò)展處理器,該處理器可以優(yōu)化工作負(fù)載,可靠性強(qiáng),還有高計算力、高穩(wěn)定性和高效敏捷性,不僅幫助VxRail輕松滿足既定工作負(fù)載,也在云領(lǐng)域有極大的應(yīng)用潛力。
從此IT管理員可以在熟悉的vSphere客戶端環(huán)境中使用Kubernetes,同時啟動并運(yùn)行所有的關(guān)鍵應(yīng)用程序。企業(yè)在一個統(tǒng)一平臺逐步實現(xiàn)應(yīng)用現(xiàn)代化和新應(yīng)用持續(xù)交付,獲得了更好的云原生體驗,為業(yè)務(wù)創(chuàng)新賦能。
此外,VxRail也支持獨立的開源Kubernetes。開發(fā)人員可選擇下載和配置Kubernetes版本,將節(jié)點作為虛擬機(jī)在vSphere上運(yùn)行。使用獨立的Kubernetes集群來運(yùn)行容器,需要手動下載、安裝、配置、檢驗和管理 Kubernetes軟件。
當(dāng)然,更推薦的還是戴爾科技和VMware 聯(lián)合提供最佳技術(shù)解決方案來運(yùn)行容器應(yīng)用,用戶能夠更快速地采用云原生技術(shù),并且更進(jìn)一步采用數(shù)字化業(yè)務(wù)項目。VxRail和vSphere已成為在數(shù)據(jù)中心運(yùn)行云原生Kubernetes容器應(yīng)用的優(yōu)選平臺。
容器or虛擬化?
兩者不是二選一
最后,不得不提的是容器與虛擬化的關(guān)系,不少人把容器當(dāng)成是輕量級的虛擬化,由此難免與傳統(tǒng)虛擬化技術(shù)進(jìn)行比較。其實,兩者并不等同。
傳統(tǒng)虛擬化是硬件的虛擬化,目標(biāo)是建立一個完全獨立的沙箱式操作系統(tǒng)環(huán)境。而容器技術(shù)則純粹只是將應(yīng)用系統(tǒng)相關(guān)的代碼、運(yùn)行時間庫、環(huán)境變量以及配置文件打包成隔離的可執(zhí)行沙箱環(huán)境,并沒有做任何硬件虛擬化。
也就是說,傳統(tǒng)虛擬化可以很容易地部署一臺VM,但仍需安裝各種執(zhí)行環(huán)境所需要的程序并設(shè)定正確的環(huán)境參數(shù)才能運(yùn)行應(yīng)用,而容器可以大幅簡化并自動化這些工作。所以容器和虛擬化非但不是競爭關(guān)系,而且還是互補(bǔ)而共生的。這也是VMware將兩者合二為一的重要意義。
容器和虛擬化好比是企業(yè)邁向數(shù)字化未來“左膀右臂”,VMware為開發(fā)者掃清了障礙,而VxRail就是那個堅實底座!
尊敬的讀者
戴爾科技云平臺線上講堂
開課啦
6月2日 14:00
戴爾科技集團(tuán)和VMware專家
在線與大家探討
容器的部署應(yīng)用
如何在VxRail和
VMware上運(yùn)行K8S