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