當(dāng)下,企業(yè)正加快上云步伐,以提高自身運(yùn)營效率、靈活性與敏捷性,同時(shí)簡化并降低基礎(chǔ)設(shè)施中的復(fù)雜性與運(yùn)營成本。這種向云端遷移的整體趨勢,也加速了企業(yè)內(nèi)部對自動(dòng)化方案的采用,讓容器、DevOps及敏捷工作方式成為新的運(yùn)營常態(tài)。
為什么容器能夠橫空出世,并快速征服整個(gè)世界?簡而言之,容器屬于軟件的可執(zhí)行單元,應(yīng)用程序代碼連同庫及依賴項(xiàng)被一并打包起來,確保能夠以通用方式在筆記本電腦乃至云端的幾乎任何位置快速運(yùn)行。
但如今的企業(yè)往往掌握著成千上萬個(gè)容器,運(yùn)營團(tuán)隊(duì)自然需要規(guī)劃并自動(dòng)處理容器部署、相關(guān)網(wǎng)絡(luò)、可擴(kuò)展性與可用性問題。為此,在這些可擴(kuò)展IT基礎(chǔ)設(shè)施當(dāng)中,對容器進(jìn)行編排就成了一種前提性要求。這方面,Kubernetes憑借出色的表現(xiàn)向企業(yè)IT部門證明了自己的價(jià)值。
Kubernetes能夠在企業(yè)內(nèi)部自動(dòng)部署、管理并擴(kuò)展容器化應(yīng)用程序。Kubernetes已經(jīng)迅速成為開源軟件歷史上增長最快、應(yīng)用最廣的容器化平臺(tái)。CIO、CTO以及開發(fā)者們之所以選擇Kubernetes,看重的就是它廣泛的功能、龐大且不斷增長的開源支持工具生態(tài)系統(tǒng),以及在多種云服務(wù)及云供應(yīng)商之間的支持及可移植性。那么,為什么要選擇企業(yè)級(jí)Kubernetes平臺(tái),而不是自行組裝開源Kubernetes工具?
提供盡可能多的靈活性與敏捷性
混合云計(jì)算方案允許企業(yè)將公有云及私有云計(jì)算模式的優(yōu)勢結(jié)合起來,將工作負(fù)載與最佳負(fù)載選項(xiàng)相匹配,并根據(jù)需求在二者之間靈活移動(dòng)。以此為基礎(chǔ),我們可以靈活地提升并擴(kuò)展容量,無需在時(shí)間、供電及其他成本項(xiàng)目上追加前期投資。而作為一項(xiàng)關(guān)鍵要素,這種靈活性必須能夠在企業(yè)需要時(shí)快速轉(zhuǎn)移工作負(fù)載,又不給IT部門帶來過于沉重的負(fù)擔(dān)。
隨著云服務(wù)供應(yīng)商從純CPU計(jì)算、內(nèi)存及存儲(chǔ)轉(zhuǎn)向其他增值性服務(wù),例如容器化、人工智能與機(jī)器學(xué)習(xí)平臺(tái),企業(yè)開始采用更廣泛的專有連接及特定于云平臺(tái)的API調(diào)用機(jī)制。但與此同時(shí),可移植性與鎖定問題也開始進(jìn)一步凸顯。
在本質(zhì)上,Kubernetes是一套由大量虛擬機(jī)組成容器集群。Kubernetes的核心思路是將機(jī)器、存儲(chǔ)及網(wǎng)絡(luò)從其物理實(shí)現(xiàn)當(dāng)中分離出來,并建立起一套可在不同云之間往來移植的中立性環(huán)境。全面的Kubernetes平臺(tái)將幫助企業(yè)管理大量IT服務(wù),并在整個(gè)容器及應(yīng)用程序生命周期之內(nèi),提供盡可能多的靈活性與敏捷性。企業(yè)可以在其中選擇最符合業(yè)務(wù)訴求的平臺(tái),并規(guī)避平臺(tái)鎖定乃至供應(yīng)商鎖定等問題。
節(jié)約寶貴的部署周期
容器化技術(shù)能夠?qū)④浖a及其所有相關(guān)庫與依賴項(xiàng)捆綁至統(tǒng)一的程序包當(dāng)中,借此建立起統(tǒng)一的運(yùn)行環(huán)境,幫助IT團(tuán)隊(duì)節(jié)約下以往浪費(fèi)在代碼開發(fā)及生產(chǎn)部署方面的精力。也正是憑借著這一點(diǎn),才讓容器化技術(shù)成為傳統(tǒng)虛擬化技術(shù)的替代方案,并受到各類用戶在軟件開發(fā)與部署場景中的高度關(guān)注。容器中僅包含運(yùn)行軟件代碼所必需的內(nèi)容,因此可以降低生產(chǎn)成本并優(yōu)化平臺(tái)效率。但標(biāo)準(zhǔn)的企業(yè)工作負(fù)載往往由大量容器組成,這種容器結(jié)構(gòu)很可能快速復(fù)雜化、繁瑣化,占用大量管理時(shí)間而且極易出錯(cuò)。
如今,對容器化環(huán)境的管理及編排已經(jīng)成為一大核心需求。Kubernetes平臺(tái)使企業(yè)得以使用多家云服務(wù)商,并在無需重新構(gòu)建基礎(chǔ)設(shè)施的前提下,根據(jù)需求快速提升承載容量。這不僅節(jié)約了寶貴的部署周期,同時(shí)也極大提高了企業(yè)交付新服務(wù)的能力。
提供更穩(wěn)定、更安全的環(huán)境
Kubernetes的一大優(yōu)勢,在于提供更穩(wěn)定、更安全的環(huán)境,同時(shí)降低產(chǎn)生代碼錯(cuò)誤及bug的可能性。在傳統(tǒng)軟件部署模式中,通常是在單一操作系統(tǒng)(OS)的單一實(shí)例上部署多個(gè)應(yīng)用程序,這種方式目前仍常見于數(shù)據(jù)中心內(nèi)的虛擬機(jī)與裸機(jī)部署場景。
當(dāng)出于安全性及穩(wěn)定性的考量而需要對操作系統(tǒng)進(jìn)行更新,或者修復(fù)時(shí),軟件庫也會(huì)同時(shí)進(jìn)行更新或升級(jí)。這可能導(dǎo)致多個(gè)應(yīng)用程序出現(xiàn)穩(wěn)定性問題:計(jì)算機(jī)上多個(gè)應(yīng)用程序所依賴的庫一旦更新,則有可能與服務(wù)器上運(yùn)行的應(yīng)用程序發(fā)生兼容性沖突。此外,更新或升級(jí)還可能導(dǎo)致關(guān)鍵應(yīng)用程序無法啟動(dòng)甚至意外崩潰。
由于應(yīng)用程序工作負(fù)載存在停機(jī)風(fēng)險(xiǎn),IT部門必須不斷在操作系統(tǒng)的安全性方面做出權(quán)衡,借此換取應(yīng)用程序穩(wěn)定性;反之亦然。容器化應(yīng)用程序則將所有依賴項(xiàng)捆綁在一起,將它們從底層操作系統(tǒng)中抽象出來。這樣,IT部門就能更自信地對操作系統(tǒng)進(jìn)行修復(fù)和升級(jí),確保對容器化應(yīng)用程序的影響降低最低,最終加快整個(gè)更新周期的執(zhí)行速度。
同樣的,容器化應(yīng)用程序中的庫和軟件也能更快完成更新和升級(jí),使得應(yīng)用程序能夠在內(nèi)部快速完成bug修復(fù)、安全補(bǔ)丁安裝甚至是新功能發(fā)布。
綜合來看,使用Kubernetes能夠編排不同容器版本,包括已修復(fù)的容器版本與未修復(fù)的容器版本,在不同主機(jī)之間快速移動(dòng)容器,加快上述優(yōu)勢的實(shí)現(xiàn)速度。Red Hat的OpenShift平臺(tái)就使用Kubernetes作為底層代碼,并經(jīng)過嚴(yán)格的測試、強(qiáng)化與補(bǔ)充,確保在跨云環(huán)境場景下始終保持良好的穩(wěn)定性與一致性。
總結(jié)
企業(yè)應(yīng)首先確定Kubernetes的優(yōu)勢是否足以支撐由此帶來的額外復(fù)雜因素。如果決定過渡至Kubernetes,請優(yōu)先選擇企業(yè)級(jí)Kubernetes平臺(tái),借此實(shí)現(xiàn)統(tǒng)一、敏捷、穩(wěn)定、安全的容器與云服務(wù)運(yùn)行效果。這種在不同云環(huán)境之間無縫遷移的能力,將幫助企業(yè)在快速變化的業(yè)務(wù)市場上更具敏捷性優(yōu)勢。
企業(yè)可以將企業(yè)級(jí)Kubernetes平臺(tái)視為面向混合云環(huán)境的操作系統(tǒng)。無論選擇哪家云服務(wù)商,企業(yè)級(jí)Kubernetes平臺(tái)都能助力企業(yè)以最有效的方式管理、運(yùn)行并增強(qiáng)應(yīng)用程序,而且不損害IT生態(tài)系統(tǒng)的穩(wěn)定性與安全性,從而受益企業(yè)內(nèi)部以及外部客戶,以更快、更靈活的方式運(yùn)用應(yīng)用程序與服務(wù)。