云基礎(chǔ)軟件:虛擬化與容器“誰(shuí)主沉浮”?

2022-10-07    分類(lèi): 網(wǎng)站建設(shè)

在傳統(tǒng)的IT架構(gòu)中,操作系統(tǒng)扮演著管理計(jì)算機(jī)硬件與軟件資源的重要角色;而隨著IT架構(gòu)進(jìn)入云計(jì)算時(shí)代,其所需要的也是對(duì)應(yīng)的“云操作系統(tǒng)”。以虛擬化及容器為代表的云基礎(chǔ)軟件負(fù)責(zé)對(duì)數(shù)據(jù)中心存算資源進(jìn)行高效的調(diào)配管理,并合理分配給上層應(yīng)用,實(shí)現(xiàn)“軟件定義數(shù)據(jù)中心”,成為云計(jì)算時(shí)代重要的基礎(chǔ)設(shè)施。

云基礎(chǔ)軟件:虛擬化與容器“誰(shuí)主沉浮”?

在全球云基礎(chǔ)軟件的發(fā)展歷程中,誕生了VMWare、RedHat等一眾云基礎(chǔ)軟件巨頭,也孕育出了OpenStack、Kubernetes等行業(yè)標(biāo)準(zhǔn)級(jí)別的全球開(kāi)源項(xiàng)目。而隨著中國(guó)政企上云趨勢(shì)的推進(jìn),我們認(rèn)為云端國(guó)產(chǎn)化將快速進(jìn)展,云基礎(chǔ)軟件在中國(guó)將迎來(lái)新時(shí)代的新機(jī)遇。

從服務(wù)器虛擬化到容器虛擬化,云基礎(chǔ)軟件持續(xù)演進(jìn)。虛擬化與容器是兩個(gè)典型的云基礎(chǔ)軟件,虛擬化是利用軟件重新定義劃分底層硬件資源的技術(shù),面向資源層,優(yōu)化資源供給模式;容器是操作系統(tǒng)層級(jí)的虛擬化,面向應(yīng)用層,變革應(yīng)用及業(yè)務(wù)架構(gòu),而當(dāng)前的技術(shù)趨勢(shì)仍是虛擬化與容器技術(shù)的結(jié)合發(fā)展。OpenStack與VMWare是服務(wù)器虛擬化時(shí)代的兩大“云操作系統(tǒng)”,而Kubernetes則隨著容器應(yīng)用的興起逐漸開(kāi)始扮演更為重要的角色,我們認(rèn)為其將是云原生時(shí)代的“操作系統(tǒng)”有力的競(jìng)爭(zhēng)者。

軟件信息技術(shù)國(guó)產(chǎn)化正在加速進(jìn)入云時(shí)代。隨著軟件上云成為大的趨勢(shì),政企機(jī)關(guān)、金融機(jī)構(gòu)和各行業(yè)企業(yè)也在主動(dòng)提出“云端國(guó)產(chǎn)化”的訴求,希望以國(guó)產(chǎn)化和云化并行的方式進(jìn)行新一輪的數(shù)字化升級(jí)。在云端國(guó)產(chǎn)化的推動(dòng)下,國(guó)內(nèi)云基礎(chǔ)軟件廠商的空間進(jìn)一步打開(kāi),從互聯(lián)網(wǎng)行業(yè)進(jìn)一步拓展到了政府、金融等傳統(tǒng)領(lǐng)域。結(jié)合現(xiàn)有的落地案例,我們總結(jié)出“云端國(guó)產(chǎn)化”在“單機(jī)國(guó)產(chǎn)化”的基礎(chǔ)上新增的5大重要方向:私有/混合云、虛擬化軟件、容器管理軟件、桌面云、云管平臺(tái)。

云基礎(chǔ)軟件——軟件定義數(shù)據(jù)中心

何為軟件定義數(shù)據(jù)中心?軟件定義數(shù)據(jù)中心即是在底層硬件架構(gòu)之上新搭載了一層虛擬的基礎(chǔ)設(shè)施,目標(biāo)是將數(shù)據(jù)中心所有的物理硬件資源進(jìn)行虛擬化與軟件化,將底層硬件與上層硬件完全解耦,一勞永逸地解決資源性能彈性與架構(gòu)可伸縮性的問(wèn)題,其內(nèi)涵包括軟件定義計(jì)算(計(jì)算虛擬化)、軟件定義存儲(chǔ)(存儲(chǔ)虛擬化)、軟件定義網(wǎng)絡(luò)(網(wǎng)絡(luò)虛擬化)三大層級(jí)。

云基礎(chǔ)軟件是云時(shí)代的“操作系統(tǒng)”,實(shí)現(xiàn)軟件定義數(shù)據(jù)中心。在傳統(tǒng)的IT架構(gòu)中,操作系統(tǒng)扮演者管理計(jì)算機(jī)硬件與軟件資源的角色;而隨著IT架構(gòu)進(jìn)入云計(jì)算時(shí)代,其所需要的也是對(duì)應(yīng)的“操作系統(tǒng)”,通過(guò)對(duì)計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)的虛擬化,對(duì)數(shù)據(jù)中心存算資源進(jìn)行高效的調(diào)配管理,并合理分配給上層應(yīng)用,實(shí)現(xiàn)資源利用效率的大化。為了實(shí)現(xiàn)軟件定義數(shù)據(jù)中心,以虛擬化與容器技術(shù)為代表的云基礎(chǔ)軟件應(yīng)運(yùn)而生,成為云計(jì)算時(shí)代重要的基礎(chǔ)設(shè)施。

虛擬化:面向底層基礎(chǔ)設(shè)施,實(shí)現(xiàn)計(jì)算資源的彈性分配

虛擬化是利用軟件重新定義劃分底層硬件資源的技術(shù)。虛擬化技術(shù)主要應(yīng)用在服務(wù)器層面,由于x86服務(wù)器的設(shè)計(jì)存在局限性,單次僅能運(yùn)行一個(gè)操作系統(tǒng)和應(yīng)用,因此對(duì)底層硬件資源的利用率較低。虛擬化技術(shù)實(shí)際上將一臺(tái)基礎(chǔ)物理服務(wù)器的CPU、內(nèi)存、硬件、網(wǎng)卡等資源“池化”,并分配給多臺(tái)虛擬機(jī)(VM),虛擬機(jī)之間彼此獨(dú)立但又共享底層物理資源,實(shí)現(xiàn)基于單一物理設(shè)備運(yùn)行多個(gè)OS及應(yīng)用。

虛擬化技術(shù)是云計(jì)算的基礎(chǔ)。我們一般所說(shuō)的“云化”,就是將硬件資源虛擬化,并將虛擬資源集中成中央資源池,最后增加支撐系統(tǒng)后實(shí)現(xiàn)資源的調(diào)度與共享的過(guò)程。在中央資源池之上增加一層管理軟件之后,用戶(hù)就可以管控在云中需要使用的基礎(chǔ)架構(gòu)、平臺(tái)工具及應(yīng)用。而虛擬化技術(shù)在其中的作用就是將硬件資源“池化”,以便于用戶(hù)靈活彈性地按需進(jìn)行計(jì)算資源調(diào)用。

典型的虛擬化的底層技術(shù)——KVM-QEMU

KVM-QEMU是典型的虛擬化底層技術(shù)。KVM是Linux內(nèi)核中的一個(gè)模塊,將Linux內(nèi)核轉(zhuǎn)變?yōu)榭蓪?shí)現(xiàn)虛擬化的Hypervisor;QEMU是一套開(kāi)源的模擬處理器,可以獨(dú)立模擬出包括CPU、IO設(shè)備在內(nèi)的整臺(tái)計(jì)算機(jī)。由于KVM位于內(nèi)核空間,用戶(hù)無(wú)法直接控制內(nèi)核,因此開(kāi)發(fā)者選擇了相對(duì)成熟的QEMU技術(shù),借助用戶(hù)空間的管理工具與其進(jìn)行交互。

KVM和QEMU是相輔相成的關(guān)系。QEMU本身并不依賴(lài)于KVM,但僅靠QEMU自身的虛擬化效率較低。QEMU通過(guò)KVM達(dá)到了硬件虛擬化的速度,而KVM則通過(guò)QEMU來(lái)模擬設(shè)備,KVM+QEMU才能實(shí)現(xiàn)完整意義上的服務(wù)器虛擬化。在一個(gè)完整的Hypervisor中,KVM的功能是提供內(nèi)核接口以實(shí)現(xiàn)對(duì)CPU、內(nèi)存的虛擬支持虛擬機(jī)的運(yùn)行;QEMU提供對(duì)IO設(shè)備虛擬、對(duì)各種虛擬設(shè)備的創(chuàng)建、調(diào)用進(jìn)行管理。

虛擬化的多種技術(shù)路線

全虛擬化、半虛擬化是兩種典型技術(shù)路線。虛擬化是使得多個(gè)客戶(hù)操作系統(tǒng)(Guest OS)共享原始底層硬件資源的過(guò)程,其核心是如何解決Guest OS發(fā)出的特權(quán)指令執(zhí)行和對(duì)宿主機(jī)硬件資源的調(diào)用問(wèn)題。從X86服務(wù)器的架構(gòu)來(lái)看,其CPU細(xì)分了Ring 0-3四種執(zhí)行狀態(tài),其中Ring 0是操作系統(tǒng)內(nèi)核的執(zhí)行狀態(tài)——內(nèi)核態(tài)(Kernel Mode),Ring 3為用戶(hù)態(tài)(User Mode),而不同虛擬化技術(shù)之間的核心區(qū)別就是Guest OS運(yùn)行在宿主機(jī)CPU的何種執(zhí)行狀態(tài)之上。

(1) 全虛擬化 vs. 半虛擬化:

兩者之間的核心區(qū)別在于是否要對(duì)Guest OS的內(nèi)核進(jìn)行修改。全虛擬化無(wú)需對(duì)Guest OS的內(nèi)核進(jìn)行特殊配置,部署靈活便利且具有較好的兼容性好,但缺點(diǎn)在于Guest OS無(wú)法直接管理底層硬件,通過(guò)hypervisor管理底層硬件需要有轉(zhuǎn)換開(kāi)銷(xiāo),性能落后于半虛擬化。半虛擬化過(guò)事先經(jīng)過(guò)修改的客戶(hù)機(jī)操作系統(tǒng)內(nèi)核共享宿主底層硬件來(lái)實(shí)現(xiàn)的,優(yōu)點(diǎn)在于性能但同時(shí)也損失了部署的靈活性和兼容性(無(wú)法支持Windows等閉源操作系統(tǒng))。

(2) 硬件輔助的虛擬化:

通過(guò)硬件技術(shù)的輔助使得虛機(jī)性能接近物理機(jī)。在硬件輔助的虛擬化中,CPU本身就為Hypervisor提供了便利,可以識(shí)別指令,從而避免異常,可以簡(jiǎn)化指令的處理過(guò)程而提升性能。硬件輔助虛擬化擬化技術(shù)常用于優(yōu)化全虛擬化和半虛擬化產(chǎn)品,目前主要的硬件輔助虛擬化技術(shù)有Intel的VT-x和AMD的AMD-V兩種,同時(shí)市面上的主流全虛擬化和半虛擬化產(chǎn)品基本都支持硬件輔助虛擬化,包括KVM,VMware vSphere、Xen、Oracle VirtualBox等。

容器:面向應(yīng)用與進(jìn)程,操作系統(tǒng)層級(jí)的虛擬化

容器是操作系統(tǒng)虛擬化的一種實(shí)現(xiàn)途徑,負(fù)責(zé)為應(yīng)用程序的運(yùn)行提供環(huán)境。容器的目的是為進(jìn)程集合提供一個(gè)獨(dú)立的運(yùn)行環(huán)境,容器包含應(yīng)用和其所有的依賴(lài)包(類(lèi)/庫(kù)),不同容器之間共享宿主機(jī)的硬件資源及操作系統(tǒng)。通過(guò)使用容器,開(kāi)發(fā)者可以便利地打包應(yīng)用程序的代碼、配置和依賴(lài)關(guān)系,從而實(shí)現(xiàn)應(yīng)用程序快速、可靠、一致性部署。

容器的本質(zhì)是一個(gè)視圖被隔離,資源受限的進(jìn)程。容器與虛擬機(jī)的相同之處在于都是幫助用戶(hù)創(chuàng)造了隔離環(huán)境,但虛擬機(jī)與容器的隔離級(jí)別不同。虛擬機(jī)在操作系統(tǒng)層面實(shí)現(xiàn)隔離,而容器在進(jìn)程級(jí)進(jìn)行資源隔離;同時(shí)容器的大小相比虛擬機(jī)更小,這也賦予了其更為輕量、靈活的特征。

容器的底層技術(shù):容器運(yùn)行時(shí)、容器鏡像、容器引擎

容器 = Cgroup(資源控制)+Namespace(訪問(wèn)隔離)+rootfs(文件系統(tǒng)隔離)+容器引擎(用戶(hù)態(tài)工具)。Cgroups與Namespace是容器技術(shù)所應(yīng)用到的兩個(gè)Linux內(nèi)核的關(guān)鍵特性,Namespace的主要使用是實(shí)現(xiàn)進(jìn)程的隔離,而Crgourps則負(fù)責(zé)限制分配給進(jìn)程的硬件資源,由Namespace+Cgroups 構(gòu)成的隔離環(huán)境也被稱(chēng)為@quot;容器運(yùn)行時(shí)@quot;;rootfs作為L(zhǎng)inux根文件管理系統(tǒng),主要負(fù)責(zé)為容器進(jìn)程提供隔離后執(zhí)行環(huán)境的文件系統(tǒng),也就是所謂的“容器鏡像”。

容器引擎負(fù)責(zé)準(zhǔn)備運(yùn)行容器所需要的資源,對(duì)容器生命周期進(jìn)行管理。容器負(fù)責(zé)與內(nèi)核Namespace和CGroup等功能直接交互,并提供相應(yīng)API使得外部能夠與之進(jìn)行集成。容器引擎的功能是對(duì)容器生命周期進(jìn)行管理,包括鏡像管理(Image service)、運(yùn)行管理(runtime service)、容器網(wǎng)絡(luò)(CNI)等;而上層的容器編排管理系統(tǒng)(如知名的Kubernetes項(xiàng)目“k8s”)則會(huì)通過(guò)CRI接口對(duì)容器引擎進(jìn)行調(diào)用。目前行業(yè)中較為活躍的容器引擎主要包括Docker、rkt、Pouch、Containerd和Cri-o等。

容器的上層建筑:容器編排管理系統(tǒng)

容器編排是從容器向容器云跨越的關(guān)鍵。在實(shí)際應(yīng)用的過(guò)程中,通常會(huì)由大量容器構(gòu)建成容器集群,以支撐復(fù)雜的應(yīng)用程序體系結(jié)構(gòu),此時(shí)便需要相應(yīng)的系統(tǒng)對(duì)容器集群進(jìn)行統(tǒng)一的編排、管理、調(diào)度。以k8s為代表的容器編排管理系統(tǒng)在容器引擎的基礎(chǔ)上,為容器化的應(yīng)用提供部署運(yùn)行、資源調(diào)度、服務(wù)發(fā)現(xiàn)和動(dòng)態(tài)伸縮等一系列完整功能,提高了大規(guī)模容器集群管理的便捷性。從一個(gè)開(kāi)發(fā)者和單一的容器鏡像,到無(wú)數(shù)開(kāi)發(fā)者和龐大的容器集群,容器技術(shù)實(shí)現(xiàn)了從@quot;容器@quot;到@quot;容器云@quot;的飛躍。

Kubernetes是容器編排領(lǐng)域的事實(shí)標(biāo)準(zhǔn)。Kubernetes(簡(jiǎn)稱(chēng)k8s)是由Google在2014年發(fā)起的開(kāi)源項(xiàng)目,具有輕量級(jí)、高便攜、可擴(kuò)展、自修復(fù)等優(yōu)勢(shì),在2015年開(kāi)始迅速拉開(kāi)與Meso、Docker Swarm等競(jìng)爭(zhēng)對(duì)手之間的差距。目前k8s已經(jīng)基本成為了容器編排領(lǐng)域的行業(yè)標(biāo)準(zhǔn),AWS、Azure、Google、阿里云、騰訊云等公有云廠商均提供基于 k8s的容器服務(wù);Red Hat、Rancher、IBM、Mirantis等廠商也在大力推廣基于 Kubernetes 的容器產(chǎn)品,Docker/Containerd+k8s成為全球主流的容器產(chǎn)品路線。

Kubernetes是云原生時(shí)代新的“操作系統(tǒng)”。k8s集群由Master節(jié)點(diǎn)和Node節(jié)點(diǎn)構(gòu)成:Master節(jié)點(diǎn)主要負(fù)責(zé)管理和控制,包括API Server(對(duì)外接口)、Scheduler(資管調(diào)度)、Controller Manager(管理控制器);Node節(jié)點(diǎn)主要是工作負(fù)載節(jié)點(diǎn),包含Pod(基本操作單元,內(nèi)部封裝容器)、Docker(容器引擎)、Kubulet(負(fù)責(zé)Pod的監(jiān)視)。在應(yīng)用容器化部署的云原生時(shí)代,k8s可以實(shí)現(xiàn)對(duì)容器集群的自動(dòng)化部署、自動(dòng)擴(kuò)縮容以及高效靈活的管理,我們認(rèn)為其已經(jīng)成為了新一代的云操作系統(tǒng)以及云原生時(shí)代的基石。

CNCF圍繞Kubernetes建立起繁榮的云原生生態(tài)。2015年,Google與RedHat牽頭成立了以 Kubernetes 項(xiàng)目為基礎(chǔ)CNCF社區(qū),之后數(shù)年中CNCF逐漸發(fā)展壯大,而Docker由于現(xiàn)實(shí)問(wèn)題也逐步放棄開(kāi)源社區(qū),在2017年將Containerd捐贈(zèng)給CNCF,并在Docker企業(yè)版中內(nèi)置k8s,CNCF自此成為全球容器生態(tài)的核心。截至2020年,CNCF已經(jīng)囊括了全球1,381個(gè)項(xiàng)目,按功能分為29個(gè)模塊,分屬與9中不同類(lèi)別(應(yīng)用定義與開(kāi)發(fā)、編排與管理、運(yùn)行時(shí)、配置、平臺(tái)、可觀察性與分析、Serverless、會(huì)員和其它),這1,381個(gè)項(xiàng)目共同構(gòu)建起了恢宏的“云原生世界”。

虛擬機(jī)與容器:當(dāng)前趨勢(shì)仍是結(jié)合應(yīng)用下的共同發(fā)展

容器和虛擬機(jī)相比各有優(yōu)劣

? 容器的優(yōu)勢(shì)在于敏捷和高性能:Hypervisor架構(gòu)下,在虛擬服務(wù)器上運(yùn)行單個(gè)應(yīng)用程序意味著需要運(yùn)行完整操作系統(tǒng)(Guest OS)及依賴(lài)環(huán)境,這為主機(jī)增加了大量的系統(tǒng)資源消耗。而容器相比之下占用空間更小,其在底層資源和上層應(yīng)用之前具有更少的抽象層級(jí),且多個(gè)應(yīng)用程序可通過(guò)容器技術(shù)共享操作系統(tǒng)內(nèi)核,進(jìn)一步提高了資源利用率;同時(shí)容器在應(yīng)用遷移、快速拓展以及持續(xù)集成和持續(xù)部署(CI/CD)實(shí)施等方面也更為靈活便捷。

? 虛擬機(jī)的優(yōu)勢(shì)在于更強(qiáng)的隔離性和運(yùn)維的簡(jiǎn)單性:基于Hypervisor的虛擬機(jī)可以實(shí)現(xiàn)系統(tǒng)層面的資源隔離,虛擬機(jī)之間完全獨(dú)立,安全性高,可用于備份、容災(zāi);而容器實(shí)際上僅實(shí)現(xiàn)了應(yīng)用層面的隔離,安全和穩(wěn)定性相對(duì)較低。尤其是在多租戶(hù)的環(huán)節(jié)下,由于不同容器共享主機(jī)的內(nèi)核,如果某個(gè)容器應(yīng)用需要配置內(nèi)核參數(shù),則會(huì)導(dǎo)致“牽一發(fā)而動(dòng)全身”。此外,虛擬化技術(shù)經(jīng)過(guò)多年應(yīng)用,已經(jīng)是企業(yè)運(yùn)維人員較為熟悉的一種技術(shù),同時(shí)雙層架構(gòu)也具備運(yùn)維上更加簡(jiǎn)單的優(yōu)勢(shì)。

用戶(hù)可根據(jù)自身的偏好來(lái)選擇適合的云資源管理方案。在實(shí)際應(yīng)用的過(guò)程中,注重于安全性、穩(wěn)定性的用戶(hù)往往仍會(huì)以Hypervisor作為主要的“云操作系統(tǒng)”以實(shí)現(xiàn)對(duì)底層計(jì)算資源的管理,比如金融、運(yùn)營(yíng)商等傳統(tǒng)行業(yè)在大量使用傳統(tǒng)的VMWare或者OpenStack(基于KVM);而對(duì)于那些追求云原生,要求更高的資源利用率,以及更加靈活便捷架構(gòu)的客戶(hù),Docker/Containerd+k8s的容器方案是更優(yōu)解,事實(shí)上目前容器在互聯(lián)網(wǎng)行業(yè)已經(jīng)得到了廣泛的應(yīng)用,傳統(tǒng)行業(yè)的應(yīng)用廠商也在積極的對(duì)新一代引用進(jìn)行容器化改造,我們相信容器的普及和滲透只是時(shí)間問(wèn)題。

容器與虛擬機(jī)的結(jié)合應(yīng)用仍是當(dāng)前主流

容器與虛擬機(jī)在公有云多租戶(hù)場(chǎng)景中通常是結(jié)合應(yīng)用的。從云計(jì)算的概念提出開(kāi)始,虛擬機(jī)一直是云平臺(tái)的基礎(chǔ),平臺(tái)的本身服務(wù)以及用戶(hù)的使用基本都是從通用虛擬機(jī)的創(chuàng)建開(kāi)始。因此目前大部分的容器應(yīng)用均是基于虛擬機(jī)而運(yùn)行的,通常的做法是建一批虛擬機(jī)作為運(yùn)行容器的節(jié)點(diǎn),然后再在基于虛擬機(jī)Guest OS創(chuàng)建容器應(yīng)用,如圖表18左側(cè)就是常見(jiàn)的公有云容器服務(wù)的提供形式。

安全容器進(jìn)一步將虛擬機(jī)級(jí)別的隔離直接引入容器應(yīng)用。在公有云多租戶(hù)場(chǎng)景中,上述方案面臨的問(wèn)題是相同主機(jī)需要運(yùn)行不同租戶(hù)的應(yīng)用,而容器的隔離級(jí)別依然采用了共內(nèi)核的機(jī)制,導(dǎo)致了其存在著廣泛的攻擊面。而所謂的安全容器,則是通過(guò)硬件虛擬化等技術(shù)實(shí)現(xiàn)對(duì)各個(gè)容器內(nèi)核層面的隔離,每一個(gè)容器都是基于一個(gè)獨(dú)立的內(nèi)核實(shí)例來(lái),形成一個(gè)輕量級(jí)的虛擬機(jī)(Micro-VM)。

安全容器在容器的高效便捷與虛擬機(jī)的穩(wěn)定安全之前取得平衡。安全容器的定位位于容器和虛擬機(jī)之間(The speed of containers, the security of VMs):安全容器兼容容器的操作方法,在啟動(dòng)速度、內(nèi)存開(kāi)銷(xiāo)等性能指標(biāo)上也高度接近容器;同時(shí)安全容器通過(guò)引入虛擬機(jī)級(jí)別的隔離,顯著提升了容器的隔離層級(jí)和安全性。目前行業(yè)中常見(jiàn)的安全容器實(shí)現(xiàn)方式包括Kata-containers、Google gVisor、AWS Firecracker-containerd、IBM Nabla、VMware CRX等,其中Kata-containers是目前具有較佳兼容性,得到了較為廣泛的應(yīng)用。

云基礎(chǔ)軟件的演變——?dú)v史變遷與未來(lái)趨勢(shì)

云基礎(chǔ)軟件的市場(chǎng)現(xiàn)狀:虛擬化進(jìn)入成熟階段,容器應(yīng)用蓬勃發(fā)展

虛擬化技術(shù)滲透率已接近飽和,市場(chǎng)規(guī)模趨于穩(wěn)定。根據(jù)Statista數(shù)據(jù),全球虛擬化市場(chǎng)規(guī)模將從2018年的57億美元增長(zhǎng)至2025年的90億美元,2018-2025年CAGR為7%。Spicework的調(diào)查顯示,2020年已有92%的企業(yè)使用服務(wù)器虛擬化技術(shù),虛擬化技術(shù)在企業(yè)的運(yùn)用已基本達(dá)到飽和,市場(chǎng)增長(zhǎng)放緩。

容器應(yīng)用快速普及,市場(chǎng)規(guī)模持續(xù)增長(zhǎng)。根據(jù)Gartner預(yù)測(cè),全球容器編排系統(tǒng)市場(chǎng)國(guó)模將從2020年的4.7億美元的增長(zhǎng)到2024年的9.4億美元,2020-2024年CAGR可達(dá)20%。全球企業(yè)對(duì)容器技術(shù)的需求也在快速增長(zhǎng),Gartner預(yù)計(jì)2022年超過(guò)75%的全球企業(yè)將在運(yùn)營(yíng)中使用容器化應(yīng)用程序,而2020年使用容器的企業(yè)占比不到30%;到 2024年,高達(dá)15%的企業(yè)應(yīng)用程序?qū)⒃谌萜鳝h(huán)境中運(yùn)行,這一比例在2020年小于5%。

全球云基礎(chǔ)軟件的主要玩家

虛擬化:全球虛擬化市場(chǎng)的主要參與者可以被劃分為兩派——開(kāi)源和閉源。其中VMWare及微軟是閉源虛擬化軟件廠商中的代表,而剩下大部分的廠商的產(chǎn)品則是基于開(kāi)源的KVM或者Xen技術(shù),

? 閉源虛擬化的代表是VMWare的ESXi及微軟的Hyper-V:ESXi是使用全虛擬化技術(shù)的Type I Hypervisor,是VMware虛擬化套件vSphere中的重要組件。由于VMware是首個(gè)基于x86服務(wù)器提供服務(wù)器虛擬化解決方案的公司,ESXi得到了廣泛運(yùn)用。Hyper-V是半虛擬化Hypervisor,可內(nèi)嵌于Windows系統(tǒng)中,用戶(hù)可選擇免費(fèi)發(fā)布版或付費(fèi)企業(yè)版。

? 開(kāi)源虛擬化的代表是KVM和Xen:KVM是內(nèi)嵌于Linux內(nèi)核中的開(kāi)源虛擬化技術(shù),可將Linux操作系統(tǒng)轉(zhuǎn)為T(mén)ype I Hypervisor。RedHat、Oracle等廠商是基于KVM虛擬化領(lǐng)域的領(lǐng)導(dǎo)者,同時(shí)AWS、阿里云、華為云等云廠商也主要是提供基于KVM的虛擬化服務(wù)。Xen是一種由劍橋大學(xué)研發(fā)的半虛擬化技術(shù),2005年,經(jīng)過(guò)Intel修改后的Xen 3.0變?yōu)槿摂M化,可支持Intel硬件輔助虛擬化。Citrix于2007年收購(gòu)XenSource,但選擇將服務(wù)器虛擬化產(chǎn)品XenServer繼續(xù)開(kāi)源。

VMWare仍是企業(yè)級(jí)應(yīng)用的選,KVM在云廠商中應(yīng)用廣泛。Spicework的調(diào)查顯示,目前閉源的Hyper-V和vSphere仍然在企業(yè)級(jí)市場(chǎng)占據(jù)主導(dǎo)地位,VMWare在商用虛擬化軟件市場(chǎng)的龍頭地位依然穩(wěn)固;但近年來(lái),隨著OpenStack作為開(kāi)源的云計(jì)算管理項(xiàng)目到行業(yè)越來(lái)越廣泛的應(yīng)用,KVM作為OpenStack主流的Hypervisor選擇,其市場(chǎng)影響力正在快速提升,除了RedHat、Oracle等廠商之外,AWS、阿里云、華為云等云廠商目前主要也是提供基于KVM的虛擬化服務(wù)。

OpenStack是全球的開(kāi)源云計(jì)算管理項(xiàng)目。OpenStack是由Rackspace和NASA成立的開(kāi)源項(xiàng)目,目前已經(jīng)是是僅次于Linux的全球第二大開(kāi)源社區(qū),OpenStack提供了一個(gè)部署云的操作平臺(tái)或工具集,覆蓋了計(jì)算、存儲(chǔ)等10個(gè)核心組件和眾多附加組件。用戶(hù)可以基于OpenStack對(duì)物理集群上的所有虛擬機(jī)進(jìn)行管理,實(shí)現(xiàn)公有、私有云的搭建與運(yùn)維,且OpenStack現(xiàn)已實(shí)現(xiàn)對(duì)容器的支持。

OpenStack本身并不具備虛擬化的能力,KVM是其主流的Hypervisor選擇。作為云管理平臺(tái),OpenStack本身不提供虛擬化功能,真正的虛擬化能力是由底層的Hypervisor提供,其支持包括開(kāi)源的KVM、Xen,也包括廠商的Hyper-V等。但由于最初版本OpenStack的虛擬化技術(shù)即是基于KVM的,兩者都使用相同的開(kāi)放源理念與開(kāi)發(fā)方法,因此KVM目前仍是OpenStack主流的Hypervisor選擇。2020年的OpenStack用戶(hù)調(diào)查顯示94%的用戶(hù)選擇KVM作為Hypervisor。

OpenStack與KVM彼此成就,相互輝映。OpenStack目前已經(jīng)發(fā)展成為全球大的開(kāi)源云計(jì)算管理項(xiàng)目之一,截至2020年其生態(tài)系統(tǒng)已囊擴(kuò)了超過(guò)850家企業(yè)及機(jī)構(gòu),我們認(rèn)為OpenStack與VMWare實(shí)際上的服務(wù)器虛擬化時(shí)代的兩大主流“云操作系統(tǒng)”。而OpenStack的興起也帶動(dòng)了KVM的快速發(fā)展,目前KVM已經(jīng)成為全球開(kāi)源虛擬化技術(shù)中的主流,2020年AWS、華為云宣布將物理服務(wù)器的Hypervisor從Xen轉(zhuǎn)為KVM,我們認(rèn)為未來(lái)KVM甚至?xí)M(jìn)一步挑戰(zhàn)VMWare等廠商在企業(yè)級(jí)市場(chǎng)的地位。

容器:正如我們?cè)谏弦徽鹿?jié)中的討論,目前Docker/Containerd+k8s已經(jīng)成為了全球容器技術(shù)的事實(shí)標(biāo)準(zhǔn),由于開(kāi)源的容器引擎基本不進(jìn)行商業(yè)化變現(xiàn),因此我們對(duì)于容器市場(chǎng)的規(guī)模和市場(chǎng)份額討論集中于容器編排管理軟件市場(chǎng)層面,根據(jù)艾瑞咨詢(xún)發(fā)布的數(shù)據(jù)顯示,k8s占據(jù)了2019年全球Docker容器編排管理工具份額的77%,市場(chǎng)上大部分的容器編排軟件均是基于k8s的商業(yè)發(fā)行版。

隨著全球容器市場(chǎng)的快速發(fā)展,各廠商積極推動(dòng)收購(gòu)及合作。目前全球容器基礎(chǔ)軟件市場(chǎng)份額Top 5分別是Red Hat(于2019年被IBM收購(gòu)),Mirantis(于2019年收購(gòu)Docker),VMware,Rancher(于2020年被SUSE收購(gòu))和Canonical。其中Red Hat推出的OpenShift目前是全球應(yīng)用最為廣泛的企業(yè)級(jí)k8s版本。

傳統(tǒng)虛擬化廠商也在積極擁抱容器技術(shù)。全球容器編排管理軟件收入Top3的紅帽、Mirantis和VMware,目前也推出了具有代表性的虛擬化產(chǎn)品,如VMware的vSphere,Mirantis將原有的OpenStack平臺(tái)與K8S融合形成新的云平臺(tái)。全球的云廠商等也在積極推出容器產(chǎn)品:如華為云的虛擬化套件Fusion Sphere中包含了支持K8S的Fusion Container容器模塊。云廠商們正致力于將容器技術(shù)與虛擬化技術(shù)結(jié)合以提供系統(tǒng)化的解決方案。

云操作系統(tǒng)的歷史變遷:從服務(wù)器虛擬化到容器虛擬化

云基礎(chǔ)軟件的發(fā)展歷程實(shí)際上是云操作系統(tǒng)的變遷。傳統(tǒng)操作系統(tǒng)的定義是管理計(jì)算機(jī)硬件和軟件資源的計(jì)算機(jī)程序。在計(jì)算資源虛擬化的云計(jì)算時(shí)代,擔(dān)任這一角色的是管理虛擬化硬件資源的Hypervisor、OpenStack或是Kubernetes?;乜礆v史,我們認(rèn)為在虛擬化時(shí)代,VMWare和OpenStack實(shí)際上扮演的就是“云操作系統(tǒng)”的角色;而在未來(lái)的云原生時(shí)代,Kubernetes有望成為新一代的“云操作系統(tǒng)”。

VMWare與OpenStack是服務(wù)器虛擬化時(shí)代主要的兩大“云操作系統(tǒng)”。VMWare在產(chǎn)品成熟度和穩(wěn)定性上,目前在企業(yè)級(jí)市場(chǎng)依舊占據(jù)主導(dǎo)地位,是數(shù)據(jù)中心虛擬化領(lǐng)域的“王者”;但其封閉的軟件系統(tǒng)架構(gòu)也決定了其并不具有開(kāi)放性,軟件的發(fā)展路線是完全遵循VMware自身的發(fā)展目標(biāo)。OpenStack作為開(kāi)源的系統(tǒng),其天生的優(yōu)勢(shì)在于其多遠(yuǎn)化的發(fā)展路線以及廣闊的發(fā)展?jié)摿Γ晨勘姸嘣朴?jì)算產(chǎn)業(yè)巨頭的支持,其在功能完整性、穩(wěn)定性、易用性上近年來(lái)也在快速提升,其作為開(kāi)源項(xiàng)目的中立性也使其成為AWS、阿里云等眾多公有云廠商的選。

Kubernetes是容器虛擬化時(shí)代新的“云操作系統(tǒng)”。隨著應(yīng)用進(jìn)程容器化部署的普及,負(fù)責(zé)容器調(diào)度、編排、監(jiān)控的Kubernetes自然成為了容器應(yīng)用時(shí)代重要的“云操作系統(tǒng)”。而從Kubernetes而OpenStack的關(guān)系上看,我們認(rèn)為目前兩者之間仍是互補(bǔ)大于競(jìng)爭(zhēng)。Kubernetes面向應(yīng)用層,實(shí)現(xiàn)應(yīng)用及業(yè)務(wù)架構(gòu)的變革;OpenStack 面向資源層,實(shí)現(xiàn)資源供給模式的優(yōu)化。短期來(lái)看,我們認(rèn)為OpenStack仍將是構(gòu)建云基礎(chǔ)設(shè)施的一個(gè)重要工具,與k8s在企業(yè)云及數(shù)據(jù)中心應(yīng)用中互補(bǔ)共存。

云操作系統(tǒng)的未來(lái)展望:Kubernetes邁入云原生時(shí)代

Kubernetes是云原生時(shí)代的“操作系統(tǒng)”有力的競(jìng)爭(zhēng)者。虛擬化技術(shù)是云計(jì)算的基礎(chǔ),而容器應(yīng)用也將是云原生時(shí)代的基石。在云原生時(shí)代,我們認(rèn)為容器將是最為基本的進(jìn)程單位,而負(fù)責(zé)容器調(diào)度、編排、監(jiān)控的容器編排管理系統(tǒng)(k8s),實(shí)質(zhì)上扮演就是服務(wù)器時(shí)代操作系統(tǒng)(Linux)的角色,向上調(diào)度編排應(yīng)用進(jìn)程,向下調(diào)配管理底層資源。未來(lái)如果Kubernetes能夠進(jìn)一步發(fā)展成熟,解決其現(xiàn)有在多租戶(hù)設(shè)計(jì)方面存在的一些問(wèn)題,我們認(rèn)為其將可能進(jìn)一步發(fā)展成為云原生時(shí)代唯一的“操作系統(tǒng)”。

文章標(biāo)題:云基礎(chǔ)軟件:虛擬化與容器“誰(shuí)主沉浮”?
文章出自:http://www.bm7419.com/news44/202794.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、商城網(wǎng)站、App設(shè)計(jì)、網(wǎng)站改版、網(wǎng)頁(yè)設(shè)計(jì)公司、定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)