最近一兩年來,以容器為代表的云原生技術(shù)一直是IT行業(yè)最為熱門的話題。隨著云原生技術(shù)的崛起,有企業(yè)甚至跳過了IaaS層直接在物理機(jī)上部署容器。容器的風(fēng)頭幾乎蓋過云計(jì)算,甚至引發(fā)了OpenStack的未來堪憂的說法,容器與虛擬化誰(shuí)將會(huì)是市場(chǎng)主流的話題時(shí)常被提起。現(xiàn)在還看不到答案,但市場(chǎng)有些了變化。4月底,紅帽在其一年一度的技術(shù)大會(huì)Red hat Summit 2020上宣布推出OpenShift虛擬化的預(yù)覽版,支持在容器里部署虛擬機(jī),更早些時(shí)候,VMware宣布其最新一代云平臺(tái)vSphere 7提供原生地管理容器和虛擬機(jī)的能力。雖然出發(fā)點(diǎn)不同,一個(gè)是從容器出發(fā)兼容虛機(jī),一個(gè)是從虛機(jī)出發(fā)兼容容器,但殊途同歸,兩者都能實(shí)現(xiàn)容器與虛機(jī)的同時(shí)管理。現(xiàn)在看起來,容器與虛擬機(jī)之間有融合和和平共存之勢(shì)。
云原生“來勢(shì)洶洶”
云原生技術(shù)的興起是這幾年軟件行業(yè)比較新的變化之一,它給該行業(yè)也帶來不小的沖擊,或者說帶來顛覆也不為過。它讓應(yīng)用程序有了明顯的代際之分:傳統(tǒng)應(yīng)用與現(xiàn)代應(yīng)用,也讓越來越多的企業(yè)選擇了擁抱現(xiàn)代應(yīng)用。
容器是云原生技術(shù)的關(guān)鍵技術(shù),今天微服務(wù)、DevOps以及CI/CD等都建立在容器之上。作為一種輕量級(jí)的虛擬化技術(shù),相比于虛擬機(jī),容器擁有更高的資源使用效率,因?yàn)樗⒉恍枰獮槊總€(gè)應(yīng)用分配單獨(dú)的操作系統(tǒng),因此實(shí)例規(guī)模更小、創(chuàng)建和遷移速度也更快。
總體上說,容器有三大核心價(jià)值,即敏捷、彈性、可移植性。在敏捷方面,容器能夠讓軟件開發(fā)交付效率提升10倍,這意味著這個(gè)企業(yè)能具備更高的速度去進(jìn)行快速迭代,以及有更低試錯(cuò)成本幫助企業(yè)在經(jīng)營(yíng)中贏得先機(jī)。在彈性方面,云計(jì)算已經(jīng)利用虛擬化技術(shù)帶來了一定的彈性可以有效控制成本,而利用容器可以實(shí)現(xiàn)秒級(jí)彈性擴(kuò)縮容進(jìn)一步優(yōu)化成本,節(jié)省達(dá)50%以上。而在可移植方面,基于容器可以在不同云環(huán)境之間遷移實(shí)現(xiàn)無邊界的計(jì)算。
因此,容器很自然地成為當(dāng)下最受關(guān)注的軟件技術(shù)之一,特別是隨著Kubernetes(K8s)成為容器編排的事實(shí)標(biāo)準(zhǔn),進(jìn)一步加速了容器的普及。如果說容器為應(yīng)用的快速開發(fā)和彈性奠定了基礎(chǔ),那么K8s就為容器的大規(guī)模模式和運(yùn)維提供了保證。
Gartner曾預(yù)測(cè),到2022年全球有75%的企業(yè)會(huì)使用基于云原生的容器技術(shù)構(gòu)建它們的應(yīng)用系統(tǒng)。而市場(chǎng)也有了一些跡象,IDC 發(fā)布的2019年第一季度公有云市場(chǎng)數(shù)據(jù),IaaS市場(chǎng)增速有所減緩,同比增長(zhǎng)74.1%;但PaaS市場(chǎng)依然保持高增長(zhǎng),增速為101.9%。各大云提供商也十分熱衷于容器技術(shù),AWS、微軟Azure、谷歌云、阿里云都推出了容器相關(guān)服務(wù),并作為重點(diǎn)市場(chǎng)。
容器與虛擬機(jī)之爭(zhēng)
容器的普及對(duì)虛擬機(jī)形成了沖擊,也就有了容器與虛擬機(jī)之爭(zhēng)。容器與虛擬機(jī)本質(zhì)上都屬于虛擬化技術(shù),所不同的是兩者所在層級(jí)不同,容器在操作系統(tǒng)至上,與虛擬機(jī)相比少了操作系統(tǒng),不同容器之間能共享操作系統(tǒng),因此更輕量,啟動(dòng)更快,效率更好。也正因?yàn)槿绱耍c虛擬機(jī)相比容器的隔離性要差,安全性不如虛擬機(jī)。另一方面,虛擬機(jī)應(yīng)用得更普及,相關(guān)工具也更為成熟和完善。
總體而言,容器和虛擬機(jī)有著各自的優(yōu)勢(shì),雖然在應(yīng)用場(chǎng)景上有一些重疊,但主要應(yīng)用場(chǎng)景還是有區(qū)別的。比如,虛擬機(jī)更適合當(dāng)應(yīng)用程序運(yùn)行時(shí)需要所有操作系統(tǒng)資源和功能的場(chǎng)景,如果需要運(yùn)行多個(gè)這樣的應(yīng)該,使用虛擬機(jī)更為合適。相比較而言,容器更適合在更少的服務(wù)器上運(yùn)行更多的應(yīng)用。大部分情況下大多數(shù)企業(yè)會(huì)同時(shí)使用虛擬機(jī)和容器。鑒于此,容器和虛擬化應(yīng)當(dāng)會(huì)在相當(dāng)長(zhǎng)時(shí)間內(nèi)共存,特別是考慮到大多數(shù)企業(yè)此前已經(jīng)廣泛部署虛擬化技術(shù)的現(xiàn)實(shí)。
實(shí)際上,如何同時(shí)管理虛擬化和容器技術(shù)就成為企業(yè)的一個(gè)普遍的需求。作為虛擬化技術(shù)的最主要推手VMware很早就做出了反映,此前VMware通過在虛擬化平臺(tái)上外掛PKS(Pivotal與VMware共同推出的一個(gè)K8s平臺(tái))來實(shí)現(xiàn)虛機(jī)與容器的同時(shí)管理,但畢竟是外掛,其效率和管理方便性上都有不足。去年的VMworld大會(huì)上,VMware發(fā)布Tanzu 品牌計(jì)劃,宣布在虛擬化技術(shù)中原生地提供對(duì)容器技術(shù)的支持。VMware的Tanzu把虛擬機(jī)和Kubernetes結(jié)合起來,對(duì)虛擬機(jī)和容器以及物理機(jī)統(tǒng)一進(jìn)行管理,它能實(shí)現(xiàn)跨物理機(jī)、虛擬機(jī)以及內(nèi)部數(shù)據(jù)中心、跨多個(gè)云來管理應(yīng)用,從而為工作負(fù)載提供一個(gè)統(tǒng)一的支撐。
今年3月Tanzu正式亮相,VMware最新一代虛擬化平臺(tái)vSphere 7對(duì)外發(fā)布,vSphere 7迎來了近10年很大的變革,VMware對(duì)vSphere進(jìn)行了重構(gòu),將K8s嵌入vSphere的控制平面,讓它成為一個(gè)K8s原生平臺(tái),從而原生地支持K8s。這樣,那些VMware的傳統(tǒng)用戶無需在虛擬機(jī)和K8s容器環(huán)境之間做出選擇,從而能自由在vSphere上進(jìn)行現(xiàn)代應(yīng)用程序開發(fā)和運(yùn)營(yíng),同時(shí)繼續(xù)利用現(xiàn)有的技術(shù)、工具和技能組合投資。
另一方面,容器廠商也認(rèn)識(shí)到了虛擬化的客觀存在,也在擁抱虛擬化技術(shù),kubevirt 就是基于這個(gè)目的推出的。kubevirt是 Red hat 開源的以容器方式運(yùn)行虛擬機(jī)的項(xiàng)目,使用容器的Image Registry去創(chuàng)建虛擬機(jī)并提供虛機(jī)的生命周期管理。在紅帽4月底舉行的年度技術(shù)大會(huì)Red Hat Summit 2020大會(huì)上,紅帽宣布推出OpenShift 虛擬化的技術(shù)預(yù)覽,OpenShift 虛擬化就源自KubeVirt開源項(xiàng)目。企業(yè)可以通過這一功能,在整合了云原生與傳統(tǒng)工作負(fù)載的OpenShift上開發(fā)、部署和管理由虛擬機(jī)、容器和無服務(wù)器構(gòu)成的應(yīng)用。
雖然VMware和紅帽的從不同出發(fā)點(diǎn)出發(fā),但目的是一樣的,而這背后的推動(dòng)力則是企業(yè)的現(xiàn)實(shí)需求。對(duì)用戶而言它們的行動(dòng)無疑是受歡迎的,因?yàn)檫@能讓企業(yè)少了后顧之憂,不再需要進(jìn)行非此即彼的選擇,不用糾結(jié)容器究竟應(yīng)該部署在虛擬機(jī)還是裸機(jī)上,從而可以更靈活支持未來的各種應(yīng)用。