2022-07-08 分類: 虛擬主機(jī)
在過去的幾年中,Kubernetes已經(jīng)成為了數(shù)不多的,使自己成為所屬領(lǐng)域的行業(yè)標(biāo)準(zhǔn)的新技術(shù)之一。為了理解Kubernetes帶來如此變革的原因,我們需要沿著虛擬化內(nèi)存之路回顧一番。為方便敘述,本文中會簡化各種體系結(jié)構(gòu)類型,突出其核心特征和演變。
一對一(One to One)
在微型計(jì)算機(jī)之初,物理硬件主要使用一個且僅有一個操作系統(tǒng),而且大多數(shù)應(yīng)用程序(如數(shù)據(jù)庫,Web服務(wù)器和網(wǎng)站)通常只有一個最終用戶應(yīng)用程序——至少在生產(chǎn)中。
這意味著當(dāng)企業(yè)需要交付或host一個“pet.com”和“food.com”最終用戶應(yīng)用程序時(shí),通用的生產(chǎn)體系結(jié)構(gòu)就是為每個應(yīng)用程序提供專用服務(wù)器。隨著最終應(yīng)用程序負(fù)載需求的增加,水平層在其自身的服務(wù)器中被拆分; 但總的來說,一對一的關(guān)系仍然存在。
網(wǎng)站建設(shè)哪家好" />
專用服務(wù)器
雖然這對于更大、更簡單的三層體系結(jié)構(gòu)應(yīng)用程序來說效果相當(dāng)好,但是低服務(wù)(即每個應(yīng)用程序的專用服務(wù)器)使資源利用率不夠優(yōu)化,擴(kuò)展速度慢且成本高,因?yàn)樘砑有沦Y源往往需要數(shù)天時(shí)間,且過量配置硬件資源是緩解處理峰值需求的常見做法。簡而言之,那段時(shí)間,構(gòu)建互聯(lián)網(wǎng)服務(wù)是非常昂貴的。
“應(yīng)用程序虛擬化”(如虛擬主機(jī),Virtual Host)
為了提高服務(wù)粒度,大多數(shù)基礎(chǔ)架構(gòu)應(yīng)用程序(如Web服務(wù)器和數(shù)據(jù)庫)都提供了一些排序應(yīng)用程序劃分功能,允許一個基礎(chǔ)架構(gòu)應(yīng)用程序進(jìn)程支持多個前端應(yīng)用程序。在Web服務(wù)器領(lǐng)域,這稱為虛擬主機(jī),其中一個Web服務(wù)器可以基于域名服務(wù)多個網(wǎng)站。而在數(shù)據(jù)庫領(lǐng)域,單個數(shù)據(jù)庫服務(wù)器可以在同一服務(wù)器/端口上提供完全隔離的邏輯數(shù)據(jù)庫實(shí)例。
這些應(yīng)用程序虛擬化功能允許企業(yè)部署邏輯上隔離的應(yīng)用程序,或者至少在利用相同的物理資源時(shí)提供隔離的錯覺。
“應(yīng)用程序虛擬化”(例如虛擬主機(jī),Virtual Host)
與之前的模型一樣,當(dāng)吞吐量要求增加時(shí),每個水平層都在自己的服務(wù)器中拆分,同時(shí)仍然為多個應(yīng)用程序提供服務(wù)。某些應(yīng)用程序(如數(shù)據(jù)庫)開始提供更高級的水平擴(kuò)展及其群集功能,允許一個邏輯數(shù)據(jù)庫跨越多個資源,從而實(shí)現(xiàn)進(jìn)一步的硬件專業(yè)化和更優(yōu)化的資源利用。
雖然這些技術(shù)提高了服務(wù)粒度并提高了資源利用率,但卻是以軟件架構(gòu)和部署的復(fù)雜性為代價(jià)的。這增加了復(fù)雜性和相互依賴性,使得擴(kuò)展服務(wù)更像是完成一件復(fù)雜的藝術(shù)品,而不是一個優(yōu)秀的工程。雖然早期的托管公司確實(shí)設(shè)法提供網(wǎng)絡(luò)托管作為服務(wù),但仍沒有避免這種復(fù)雜性。
換句話說,這斷時(shí)間,是互聯(lián)網(wǎng)復(fù)雜而脆弱的日子。
虛擬機(jī)(Virtual Machine)
隨著Linux在服務(wù)器上越來越受歡迎,操作系統(tǒng)虛擬化也越來越受歡迎,這使得單個硬件可以托管多個操作系統(tǒng)。使用這種新模型,每個系統(tǒng)或應(yīng)用程序可以擁有自己的操作系統(tǒng)和環(huán)境,同時(shí)仍然共享相同的硬件資源。
虛擬機(jī)
注:從技術(shù)上講,虛擬機(jī)技術(shù)是60年代由IBM開創(chuàng)的。但公平地說,Linux(以及Windows,某些情況下)普及了操作系統(tǒng)虛擬化的概念。
這個新模型通過消除系統(tǒng)間的依賴性,大限度地提高了資源利用率并簡化了應(yīng)用程序架構(gòu),恢復(fù)了原始形式,但這些新功能帶來的最具變革性的結(jié)果是由如AWS等驅(qū)動的新IT運(yùn)營模式的形成,此類服務(wù)抽象了所有硬件配置和網(wǎng)絡(luò)復(fù)雜性,從而將連接的互聯(lián)網(wǎng)操作系統(tǒng)作為服務(wù)提供。通過這些新的托管或內(nèi)部部署服務(wù),軟件企業(yè)可以專注于他們最熟悉的工作: 軟件,讓少數(shù)硬件和網(wǎng)絡(luò)專家構(gòu)建并擴(kuò)展這些服務(wù)的主干。
然而,隨著托管基礎(chǔ)架構(gòu)服務(wù)變得越來越復(fù)雜,應(yīng)用程序開始從傳統(tǒng)的三層單塊體系結(jié)構(gòu)轉(zhuǎn)向多服務(wù)體系結(jié)構(gòu)(如,微服務(wù)),以具有成本效益的方式進(jìn)行設(shè)計(jì)、部署和管理可擴(kuò)展的多服務(wù)的應(yīng)用程序變得相對復(fù)雜且具有高度特定于云。
容器
業(yè)界使用相當(dāng)古老的Linux功能解決了微服務(wù)體系結(jié)構(gòu)的虛擬機(jī)模型限制,該功能允許將操作系統(tǒng)進(jìn)程封裝到單個操作系統(tǒng)上的操作系統(tǒng)資源子集中,因此,虛擬化的下一個“章節(jié)”,容器化,誕生了,而且主要是由現(xiàn)在幾乎無處不在的Docker容器格式占據(jù)主流。
有了容器化,應(yīng)用程序現(xiàn)在可以根據(jù)其需求使用最優(yōu)的服務(wù)集進(jìn)行架構(gòu)設(shè)計(jì),同時(shí)相信技術(shù)將以最有效的方式劃分這些服務(wù)。過去在舊的物理硬件中需要幾天,在虛擬機(jī)中需要幾分鐘,現(xiàn)在只需要幾秒鐘,占用的內(nèi)存非常少(即合理)。
容器
雖然容器化顯著改善了服務(wù)粒度(即資源利用率),優(yōu)化了復(fù)雜應(yīng)用程序體系結(jié)構(gòu)并且在開發(fā)和生產(chǎn)的過程中規(guī)范化了服務(wù)運(yùn)行時(shí),但這些新部件的龐大數(shù)量增加了部署管理復(fù)雜性和配置挑戰(zhàn)。擴(kuò)展生產(chǎn)系統(tǒng)時(shí),仍然需要特定于云的技術(shù)來擴(kuò)展底層虛擬機(jī),這增加了決定在何處以及何時(shí)創(chuàng)建新服務(wù)容器的復(fù)雜性。
總之,容器化是有幫助的,但它需要其他一些東西來實(shí)現(xiàn)真正的價(jià)值主張。
Kubernetes
這就是Kubernetes走上舞臺并完成這副“拼圖”的地方。基于容器,Kubernetes是一種服務(wù)(有時(shí)稱為“引擎”),它提供了一種以標(biāo)準(zhǔn)和環(huán)境可移植的方式描述、管理和運(yùn)行包含其所有部分(即微服務(wù))、交互和伸縮規(guī)則的完整系統(tǒng)的方法。
Kubernetes
以前開發(fā)、分段和生產(chǎn)環(huán)境差別很大,而Kubernetes的新方法規(guī)范化并簡化了如何描述、運(yùn)行和擴(kuò)展整個系統(tǒng),從而大大降低了構(gòu)建和管理多服務(wù)系統(tǒng)的成本。
重要的是要理解所有這些技術(shù)的里程碑,都是演進(jìn)式和附加式的,并且通常彼此協(xié)同使用。從純粹的技術(shù)角度來看,革命是在“進(jìn)化”而不是在“顛覆”。容器通常在虛擬機(jī)上運(yùn)行,虛擬機(jī)仍在物理服務(wù)器上的主操作系統(tǒng)(稱為主機(jī))上運(yùn)行,并且許多基礎(chǔ)架構(gòu)應(yīng)用程序(如數(shù)據(jù)庫,Web服務(wù)器和高速緩存)仍提供有用的、且有時(shí)是非常關(guān)鍵的、特定于應(yīng)用程序的群集和分區(qū)能力。
將以上所有里程碑式的變化放在一起,我們可以看到所有虛擬化技術(shù)是如何附加演進(jìn)的。
雖然Kubernetes是進(jìn)化而非顛覆的結(jié)果,但其商業(yè)價(jià)值仍具有變革性。以下是Kubernetes的主要商業(yè)價(jià)值:
將Dev規(guī)范化為Ops:由于Kubernetes是獨(dú)立于基礎(chǔ)設(shè)施的(即它可以在云上、本地部署,甚至在筆記本電腦上運(yùn)行),它提供了一種非常強(qiáng)大而靈活的方式來規(guī)范化開發(fā)和運(yùn)營環(huán)境,這可能是實(shí)現(xiàn)“高速開發(fā)”中最重要的一個方法。
消除多服務(wù)開銷:就在幾年前,許多企業(yè)開始從整體架構(gòu)轉(zhuǎn)向微服務(wù)架構(gòu),而架構(gòu)遷移確實(shí)帶來了重大的開發(fā)和運(yùn)營設(shè)置阻力。Kubernetes的設(shè)計(jì)從一開始就致力于以詳盡而相對簡單的方式解決這些要求,并且只要正確使用,就完全消除了這些開銷。
大限度地提高云端的可移植性: Kubernetes最令人印象深刻的成就之一就是在短短幾年內(nèi)掀起了整個行業(yè)的風(fēng)潮,讓所有人——從主要的云提供商到混合云技術(shù)提供商,都爭相在新標(biāo)準(zhǔn)中加入支持。這使得Kubernetes成為云端可移植性的基石,并允許大多數(shù)現(xiàn)代云應(yīng)用可以表達(dá)其系統(tǒng)的80%到90%,并且能夠以云可移植的方式進(jìn)行可伸縮性拓?fù)洹?/p>
簡化和標(biāo)準(zhǔn)化可擴(kuò)展性:云可移植性的部分價(jià)值在于對通用和自定義伸縮規(guī)則進(jìn)行標(biāo)準(zhǔn)化,這些規(guī)則使多服務(wù)系統(tǒng)的伸縮按指數(shù)級簡化,同時(shí)在需要時(shí)仍然能夠進(jìn)行定制化。
筆者通常會以非常謹(jǐn)慎的態(tài)度對待最新的技術(shù),因?yàn)樗鼈冸m然感到興奮,但往往是相對短暫的。不過,Kubernetes是少數(shù)幾個被鞏固為Linux、OS虛擬化和Git等基礎(chǔ)技術(shù)的技術(shù)之一因?yàn)樗_實(shí)能帶來看得見的價(jià)值。簡而言之,Kubernetes可能是對于當(dāng)今任何云應(yīng)用程序開發(fā)企業(yè)而言最安全的投資,如果運(yùn)用得當(dāng),它可以顯著提高開發(fā)和交付的速度和質(zhì)量。
原文來源:Medium 作者:Jeremy Chone
網(wǎng)頁名稱:從虛擬主機(jī)到Kubernetes帶來的變革
新聞來源:http://www.rwnh.cn/news/175569.html
網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項(xiàng)目有虛擬主機(jī)等
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容