張炫燦
虛擬化正在進(jìn)入一個新時代,這是第4個進(jìn)化時代,在這個時代,數(shù)據(jù)中心整合和工作負(fù)載標(biāo)準(zhǔn)化的好處正在加速向云原生環(huán)境遷移。
虛擬化的第一個時代是數(shù)據(jù)中心概念的飛躍。VMware率先使用ESX虛擬機(jī)監(jiān)控程序?qū)崿F(xiàn)虛擬化,并主導(dǎo)了市場,迅速為世界各地的企業(yè)帶來了虛擬機(jī)等諸多好處。盡管出現(xiàn)了許多挑戰(zhàn)者,但沒有一個能夠在傳統(tǒng)虛擬化市場上奪得一席之地。
虛擬化的第2個時代是向云轉(zhuǎn)移。它不再是只在本地運(yùn)行虛擬機(jī),而是在AWS、Azure、谷歌等公共云中運(yùn)行它們。用戶可以按需將其虛擬機(jī)運(yùn)送到云端,而不是提交工單,等待IT部門在數(shù)據(jù)中心基礎(chǔ)設(shè)施上提供虛擬機(jī)。
整個開發(fā)團(tuán)隊(duì)與內(nèi)部IT部門分道揚(yáng)鑣,開始逃往云供應(yīng)基礎(chǔ)設(shè)施的“我現(xiàn)在就想要”世界。對于仍與數(shù)據(jù)中心綁定的應(yīng)用程序,出現(xiàn)了OpenStack等替代方案,以實(shí)現(xiàn)私有云和許多公共云基礎(chǔ)設(shè)施即服務(wù)部署的擴(kuò)展虛擬化基礎(chǔ)設(shè)施。
虛擬化的第3個時代實(shí)際上是從虛擬機(jī)監(jiān)控程序和傳統(tǒng)虛擬機(jī)的轉(zhuǎn)變———容器時代。正如虛擬化通過利用虛擬機(jī)監(jiān)控程序的功能將物理服務(wù)器拆分為許多單獨(dú)的虛擬服務(wù)器,每個虛擬服務(wù)器都運(yùn)行自己的操作系統(tǒng)一樣,容器化也將在這些虛擬機(jī)上運(yùn)行的單個Linux操作系統(tǒng),或直接在裸金屬服務(wù)器上運(yùn)行的Linux操作系統(tǒng),拆分為更小的應(yīng)用程序沙盒,現(xiàn)在通過開放式容器倡議實(shí)現(xiàn)了標(biāo)準(zhǔn)化。
這使得先驅(qū)開發(fā)人員能夠在本地機(jī)器上構(gòu)建和提供容器化的微服務(wù),并根據(jù)需要將其推廣到測試、stage和生產(chǎn)環(huán)境中。Kubernetes成為容器編排和管理的行業(yè)標(biāo)準(zhǔn)平臺,并使這個時代蓬勃發(fā)展。
這些技術(shù)的不斷發(fā)展,再加上Broadcom宣布收購VMware,許多客戶正在評估其現(xiàn)有虛擬化基礎(chǔ)架構(gòu)的未來,并想知道接下來會發(fā)生什么?相信現(xiàn)在已經(jīng)進(jìn)入了第4個虛擬化時代———云原生平臺上的進(jìn)化和融合時代。
在人類歷史的各個時代,尤其是在計(jì)算歷史的各個時期,變化都是恒定的。甚至在虛擬化和容器化之前,大型一體式分時UNIX系統(tǒng)都被更小、更便宜的X86服務(wù)器所取代。
本人對這種不斷發(fā)展的虛擬化環(huán)境以及它對客戶現(xiàn)有的虛擬化產(chǎn)業(yè)意味著什么有很多疑問。我們在4年前就要決定繪制一條新的云原生路徑,該路徑圍繞Linux、KVM和 Kubernetes構(gòu)建。
Kubernetes已成為云原生應(yīng)用程序開發(fā)的關(guān)鍵推動者,并正在企業(yè)數(shù)據(jù)中心和所有主要公共云中普及。
盡管Kubernetes支持的容器采用正在加速,但絕大多數(shù)企業(yè)應(yīng)用程序仍在虛擬機(jī)中運(yùn)行,容器和虛擬機(jī)將共存很長一段時間。
4年前,我們啟動了KubeVirt項(xiàng)目,在Kubernetes中管理虛擬機(jī)和容器。KubeVirt利用KVM管理程序本身就是一個可以被容器化的Linux進(jìn)程這一事實(shí),使基于KVM的虛擬機(jī)工作負(fù)載能夠在Kubernetes中作為pod進(jìn)行管理。
但從架構(gòu)的角度來看,這意味著什么?這意味著可以將虛擬機(jī)帶入一個現(xiàn)代的基于Kubernetes的云原生環(huán)境,而無需實(shí)際應(yīng)用程序跳轉(zhuǎn)到容器本身。
盡管許多基于虛擬機(jī)的應(yīng)用程序已經(jīng)遷移到容器,但并非所有在虛擬機(jī)中運(yùn)行的應(yīng)用程序都已遷移,其中有些甚至不適合在容器化環(huán)境中運(yùn)行。虛擬化的第三個時代是將容器移動到虛擬機(jī)中,但這個新時代是將Kubernetes和云原生平臺的好處帶到所有應(yīng)用程序中,無論它們位于何處。
雖然能夠在一個通用的Kubernetes平臺上同時管理容器和VM是強(qiáng)大的,但更強(qiáng)大的是,這使得VM工作負(fù)載能夠利用CNCF云原生環(huán)境中圍繞Kubernete構(gòu)建的所有新功能。Prometheus,Istio,Knative,Tekton,ArgoCD等創(chuàng)新項(xiàng)目已經(jīng)從這個生態(tài)系統(tǒng)中脫穎而出,并在Kubernetes中為基于容器和虛擬機(jī)的應(yīng)用程序提供了全面支持。
這意味著開發(fā)人員可以使用監(jiān)控、管道、GitOps、無服務(wù)器、服務(wù)網(wǎng)格等功能,無論目標(biāo)工作負(fù)載是容器還是虛擬機(jī)。這能夠?qū)M與容器一起帶到云原生平臺。
云原生思維方式有很多進(jìn)步,但讓公司開始轉(zhuǎn)型的最好方法可能是了解容器和Kubernetes在當(dāng)今環(huán)境中的使用情況。許多公司可能已經(jīng)在Kubernetes服務(wù)中運(yùn)行容器,這時,你做了什么?
了解容器和Kubernetes在組織內(nèi)部的使用情況,可能有助于找到轉(zhuǎn)換一些現(xiàn)有虛擬機(jī)的良好起點(diǎn)。對于在數(shù)據(jù)中心中運(yùn)行的工作負(fù)載,Red Hat OpenShift可以安裝在裸金屬服務(wù)器環(huán)境中,以運(yùn)行容器和VM工作負(fù)載。
雖然虛擬機(jī)不會消亡,但它們將逐漸成為現(xiàn)有傳統(tǒng)應(yīng)用程序的象征,而不是新的云原生應(yīng)用程序正在登陸的地方。
我們期待著虛擬化的第5個時代及其以后。