容器與虛擬機,替代還是融合
最近一兩年來(lai),以容(rong)器(qi)(qi)為代表的(de)(de)云(yun)(yun)原(yuan)生技(ji)術(shu)一直是IT行業(ye)最為熱門的(de)(de)話(hua)(hua)題。隨著(zhu)云(yun)(yun)原(yuan)生技(ji)術(shu)的(de)(de)崛(jue)起(qi),有(you)(you)企(qi)業(ye)甚至跳過(guo)了(le)(le)IaaS層直接在物理(li)機上(shang)部署容(rong)器(qi)(qi)。容(rong)器(qi)(qi)的(de)(de)風頭幾(ji)乎(hu)蓋過(guo)云(yun)(yun)計算(suan),甚至引(yin)發了(le)(le)OpenStack的(de)(de)未(wei)來(lai)堪憂的(de)(de)說法(fa),容(rong)器(qi)(qi)與(yu)虛(xu)擬化誰將會(hui)是市(shi)場主(zhu)流的(de)(de)話(hua)(hua)題時常被提(ti)起(qi)。現(xian)(xian)在還看(kan)不(bu)到(dao)答案,但市(shi)場有(you)(you)些了(le)(le)變化。4月底,紅帽在其(qi)一年一度的(de)(de)技(ji)術(shu)大會(hui)Red hat Summit 2020上(shang)宣(xuan)布推出OpenShift虛(xu)擬化的(de)(de)預覽版,支持在容(rong)器(qi)(qi)里部署虛(xu)擬機,更早些時候,VMware宣(xuan)布其(qi)最新一代云(yun)(yun)平臺vSphere 7提(ti)供原(yuan)生地管(guan)理(li)容(rong)器(qi)(qi)和(he)(he)虛(xu)擬機的(de)(de)能(neng)力。雖然出發點不(bu)同,一個(ge)(ge)是從容(rong)器(qi)(qi)出發兼(jian)容(rong)虛(xu)機,一個(ge)(ge)是從虛(xu)機出發兼(jian)容(rong)容(rong)器(qi)(qi),但殊途(tu)同歸,兩者(zhe)都能(neng)實現(xian)(xian)容(rong)器(qi)(qi)與(yu)虛(xu)機的(de)(de)同時管(guan)理(li)。現(xian)(xian)在看(kan)起(qi)來(lai),容(rong)器(qi)(qi)與(yu)虛(xu)擬機之間有(you)(you)融合(he)和(he)(he)和(he)(he)平共存(cun)之勢。
云原生“來勢洶洶”
云原(yuan)生技術(shu)的(de)(de)興起(qi)是這幾年軟件行業(ye)最新的(de)(de)變化之(zhi)一,它(ta)給(gei)該行業(ye)也(ye)(ye)帶來(lai)不小的(de)(de)沖擊,或(huo)者說帶來(lai)顛(dian)覆也(ye)(ye)不為過。它(ta)讓(rang)應(ying)用(yong)(yong)程序有了明顯的(de)(de)代際之(zhi)分(fen):傳統應(ying)用(yong)(yong)與現代應(ying)用(yong)(yong),也(ye)(ye)讓(rang)越來(lai)越多(duo)的(de)(de)企業(ye)選擇了擁抱(bao)現代應(ying)用(yong)(yong)。
容器(qi)是云原生技術的關鍵技術,今天微服務、DevOps以及CI/CD等都(dou)建立在容器(qi)之上。作(zuo)為一種輕量級(ji)的虛擬化技術,相比于虛擬機(ji),容器(qi)擁有更高的資源使用效率,因(yin)為它并不需(xu)要(yao)為每(mei)個應用分配(pei)單(dan)獨的操作(zuo)系(xi)統,因(yin)此實例(li)規模更小(xiao)、創建和遷移速(su)度也更快。
總體上(shang)說,容(rong)(rong)(rong)器(qi)有三(san)大核心價值,即敏捷、彈性(xing)、可(ke)移(yi)植(zhi)性(xing)。在(zai)敏捷方面(mian)(mian),容(rong)(rong)(rong)器(qi)能(neng)夠(gou)讓軟件開(kai)發交付效率(lv)提升10倍,這意味(wei)著(zhu)這個企業能(neng)具備更高的(de)速度(du)去進行快速迭(die)代(dai),以(yi)及有更低試錯成本幫助企業在(zai)經營中贏得(de)先(xian)機(ji)。在(zai)彈性(xing)方面(mian)(mian),云計(ji)算已經利用虛(xu)擬化技術帶來(lai)了一定的(de)彈性(xing)可(ke)以(yi)有效控制(zhi)成本,而利用容(rong)(rong)(rong)器(qi)可(ke)以(yi)實現秒(miao)級(ji)彈性(xing)擴縮容(rong)(rong)(rong)進一步優化成本,節(jie)省(sheng)達50%以(yi)上(shang)。而在(zai)可(ke)移(yi)植(zhi)方面(mian)(mian),基(ji)于容(rong)(rong)(rong)器(qi)可(ke)以(yi)在(zai)不同云環境之間遷移(yi)實現無邊(bian)界的(de)計(ji)算。
因此,容器(qi)(qi)很(hen)自(zi)然地(di)成為(wei)當下最(zui)受關注的(de)軟件技術之一(yi),特(te)別是(shi)隨(sui)著Kubernetes(K8s)成為(wei)容器(qi)(qi)編(bian)排的(de)事實標準,進一(yi)步加速了容器(qi)(qi)的(de)普(pu)及。如果說容器(qi)(qi)為(wei)應用(yong)的(de)快(kuai)速開發和彈(dan)性奠定了基礎(chu),那(nei)么K8s就為(wei)容器(qi)(qi)的(de)大規模模式和運(yun)維提供(gong)了保證。
Gartner曾預(yu)測,到2022年全(quan)球(qiu)有75%的(de)企業(ye)會使用基于云原生的(de)容器(qi)技(ji)術(shu)構建(jian)它們的(de)應用系統。而市(shi)場(chang)也有了(le)一些跡(ji)象,IDC 發布的(de)2019年第一季度(du)公有云市(shi)場(chang)數據,IaaS市(shi)場(chang)增速(su)有所減(jian)緩(huan),同比增長74.1%;但PaaS市(shi)場(chang)依(yi)然保持高增長,增速(su)為101.9%。各大(da)云提(ti)供商(shang)也十(shi)分(fen)熱衷(zhong)于容器(qi)技(ji)術(shu),AWS、微(wei)軟(ruan)Azure、谷(gu)歌云、阿里云都推出了(le)容器(qi)相(xiang)關服務,并作為重(zhong)點市(shi)場(chang)。
容器與虛擬機之爭
容(rong)器(qi)(qi)的(de)普(pu)及(ji)(ji)對虛(xu)(xu)(xu)擬(ni)機(ji)(ji)(ji)(ji)形(xing)成了沖擊,也(ye)就有了容(rong)器(qi)(qi)與(yu)(yu)虛(xu)(xu)(xu)擬(ni)機(ji)(ji)(ji)(ji)之爭。容(rong)器(qi)(qi)與(yu)(yu)虛(xu)(xu)(xu)擬(ni)機(ji)(ji)(ji)(ji)本質上都(dou)屬于虛(xu)(xu)(xu)擬(ni)化技術,所不同(tong)(tong)的(de)是兩(liang)者所在層(ceng)級不同(tong)(tong),容(rong)器(qi)(qi)在操作系(xi)統至上,與(yu)(yu)虛(xu)(xu)(xu)擬(ni)機(ji)(ji)(ji)(ji)相比(bi)少了操作系(xi)統,不同(tong)(tong)容(rong)器(qi)(qi)之間能(neng)共享操作系(xi)統,因此更(geng)(geng)輕量,啟動更(geng)(geng)快,效率更(geng)(geng)好(hao)。也(ye)正因為如(ru)此,與(yu)(yu)虛(xu)(xu)(xu)擬(ni)機(ji)(ji)(ji)(ji)相比(bi)容(rong)器(qi)(qi)的(de)隔(ge)離性要差,安全性不如(ru)虛(xu)(xu)(xu)擬(ni)機(ji)(ji)(ji)(ji)。另一方(fang)面,虛(xu)(xu)(xu)擬(ni)機(ji)(ji)(ji)(ji)應用(yong)得更(geng)(geng)普(pu)及(ji)(ji),相關工具也(ye)更(geng)(geng)為成熟和完善(shan)。
總體(ti)而言(yan),容器(qi)(qi)和(he)(he)虛擬(ni)機有著各(ge)自的(de)優勢,雖(sui)然在應(ying)(ying)(ying)用(yong)場景上(shang)有一些重疊,但主要(yao)應(ying)(ying)(ying)用(yong)場景還是有區別的(de)。比如,虛擬(ni)機更(geng)適(shi)合(he)當應(ying)(ying)(ying)用(yong)程序運行時(shi)需要(yao)所有操作系統資源和(he)(he)功能(neng)的(de)場景,如果需要(yao)運行多(duo)(duo)個這樣的(de)應(ying)(ying)(ying)該(gai),使(shi)用(yong)虛擬(ni)機更(geng)為合(he)適(shi)。相比較而言(yan),容器(qi)(qi)更(geng)適(shi)合(he)在更(geng)少的(de)服務(wu)器(qi)(qi)上(shang)運行更(geng)多(duo)(duo)的(de)應(ying)(ying)(ying)用(yong)。大部(bu)分情況下(xia)大多(duo)(duo)數企業會同時(shi)使(shi)用(yong)虛擬(ni)機和(he)(he)容器(qi)(qi)。鑒(jian)于此(ci),容器(qi)(qi)和(he)(he)虛擬(ni)化(hua)應(ying)(ying)(ying)當會在相當長時(shi)間內共存,特別是考慮到(dao)大多(duo)(duo)數企業此(ci)前已經廣泛部(bu)署虛擬(ni)化(hua)技術(shu)的(de)現實。
實際上(shang)(shang)(shang)(shang),如何同(tong)時(shi)管(guan)理(li)虛(xu)擬(ni)化和(he)容(rong)(rong)器(qi)技術就成為企(qi)業的(de)(de)一(yi)個(ge)普遍的(de)(de)需求。作為虛(xu)擬(ni)化技術的(de)(de)最(zui)主(zhu)要推手VMware很(hen)早就做出了反映,此前VMware通過在虛(xu)擬(ni)化平臺(tai)(tai)上(shang)(shang)(shang)(shang)外掛(gua)(gua)PKS(Pivotal與(yu)(yu)VMware共同(tong)推出的(de)(de)一(yi)個(ge)K8s平臺(tai)(tai))來實現虛(xu)機(ji)與(yu)(yu)容(rong)(rong)器(qi)的(de)(de)同(tong)時(shi)管(guan)理(li),但畢竟是(shi)外掛(gua)(gua),其效率(lv)和(he)管(guan)理(li)方便性上(shang)(shang)(shang)(shang)都(dou)有不(bu)足。去年的(de)(de)VMworld大會上(shang)(shang)(shang)(shang),VMware發布Tanzu 品牌計劃,宣(xuan)布在虛(xu)擬(ni)化技術中(zhong)原生地提供對容(rong)(rong)器(qi)技術的(de)(de)支(zhi)持(chi)。VMware的(de)(de)Tanzu把虛(xu)擬(ni)機(ji)和(he)Kubernetes結(jie)合起來,對虛(xu)擬(ni)機(ji)和(he)容(rong)(rong)器(qi)以及物理(li)機(ji)統一(yi)進行管(guan)理(li),它能實現跨(kua)物理(li)機(ji)、虛(xu)擬(ni)機(ji)以及內(nei)部數(shu)據中(zhong)心、跨(kua)多個(ge)云來管(guan)理(li)應(ying)用,從而為工作負載(zai)提供一(yi)個(ge)統一(yi)的(de)(de)支(zhi)撐。
今年3月Tanzu正式亮相,VMware最新一(yi)代虛擬(ni)化平(ping)臺vSphere 7對外(wai)發布,vSphere 7迎來了(le)近10年最大的(de)變革(ge),VMware對vSphere進(jin)行(xing)(xing)了(le)重構,將K8s嵌入vSphere的(de)控(kong)制平(ping)面,讓它成為一(yi)個K8s原生平(ping)臺,從而(er)原生地支持K8s。這樣,那些VMware的(de)傳統用(yong)戶(hu)無需在虛擬(ni)機(ji)和K8s容器環境之間做出選擇,從而(er)能自由在vSphere上進(jin)行(xing)(xing)現(xian)代應用(yong)程序(xu)開發和運營,同時繼續利用(yong)現(xian)有的(de)技術、工具和技能組合投(tou)資。
另一方(fang)面,容(rong)(rong)器廠(chang)商也(ye)認識到了(le)虛(xu)(xu)(xu)擬(ni)(ni)化(hua)的(de)(de)客觀存在(zai),也(ye)在(zai)擁(yong)抱虛(xu)(xu)(xu)擬(ni)(ni)化(hua)技(ji)術(shu),kubevirt 就是(shi)基于這(zhe)個目(mu)的(de)(de)推出(chu)的(de)(de)。kubevirt是(shi) Red hat 開(kai)源(yuan)的(de)(de)以容(rong)(rong)器方(fang)式運行虛(xu)(xu)(xu)擬(ni)(ni)機的(de)(de)項目(mu),使用容(rong)(rong)器的(de)(de)Image Registry去創建虛(xu)(xu)(xu)擬(ni)(ni)機并提供虛(xu)(xu)(xu)機的(de)(de)生(sheng)命周期管理(li)。在(zai)紅帽4月底舉行的(de)(de)年度技(ji)術(shu)大會(hui)Red Hat Summit 2020大會(hui)上,紅帽宣(xuan)布(bu)推出(chu)OpenShift 虛(xu)(xu)(xu)擬(ni)(ni)化(hua)的(de)(de)技(ji)術(shu)預(yu)覽,OpenShift 虛(xu)(xu)(xu)擬(ni)(ni)化(hua)就源(yuan)自KubeVirt開(kai)源(yuan)項目(mu)。企業可以通過這(zhe)一功能,在(zai)整合了(le)云原生(sheng)與傳統工作(zuo)負載(zai)的(de)(de)OpenShift上開(kai)發(fa)、部(bu)署和管理(li)由虛(xu)(xu)(xu)擬(ni)(ni)機、容(rong)(rong)器和無服務(wu)器構成的(de)(de)應用。
雖然VMware和紅帽的(de)(de)(de)從不(bu)同出發點出發,但目的(de)(de)(de)是一樣的(de)(de)(de),而這(zhe)背后的(de)(de)(de)推(tui)動力則是企業的(de)(de)(de)現實(shi)需求。對用戶而言它們的(de)(de)(de)行動無疑是受歡迎的(de)(de)(de),因為這(zhe)能讓企業少了后顧之(zhi)憂(you),不(bu)再需要進行非此(ci)即彼的(de)(de)(de)選擇,不(bu)用糾(jiu)結(jie)容(rong)器究(jiu)竟應該部署在虛(xu)擬機還是裸(luo)機上,從而可以更靈活(huo)支持未來的(de)(de)(de)各種應用。

