有些人認(rèn)為在使用容器之前,基礎(chǔ)設(shè)施自動(dòng)化只是一個(gè)臨時(shí)應(yīng)對(duì)措施。但是如今,IT部門(mén)可以實(shí)現(xiàn)這一目標(biāo)。
標(biāo)準(zhǔn)化和自動(dòng)化在IT行業(yè)中并不是什么新概念。那么,為什么基礎(chǔ)設(shè)施自動(dòng)化如今成為一個(gè)熱門(mén)話(huà)題?
其答案是:容器、編排和其他現(xiàn)代化技術(shù)已使基礎(chǔ)設(shè)施自動(dòng)化功能得到了擴(kuò)展,除了提供其他好處之外,這些功能還使標(biāo)準(zhǔn)化得以實(shí)施。
Red Hat公司的首席技術(shù)官Gordon Haff解釋說(shuō),“有人可能說(shuō)在使用容器之前,基礎(chǔ)設(shè)施及其自動(dòng)化的標(biāo)準(zhǔn)化是一項(xiàng)臨時(shí)的措施。當(dāng)然組織擁有的標(biāo)準(zhǔn)操作環(huán)境(SOE)和配置管理工具,可以自動(dòng)配置這些標(biāo)準(zhǔn)操作環(huán)境(SOE)及其持續(xù)監(jiān)控。但是,完成特定任務(wù)仍然需要很多服務(wù)器,即使配置管理軟件試圖使它們保持合規(guī)性,部署的容器映象仍會(huì)隨時(shí)間推移而轉(zhuǎn)移。”
他指出,在長(zhǎng)期追求有效的基礎(chǔ)設(shè)施自動(dòng)化的過(guò)程中,容器化和編排為這一旅程注入了新的活力。
現(xiàn)代基礎(chǔ)設(shè)施自動(dòng)化的三個(gè)基礎(chǔ)知識(shí)
以下介紹了現(xiàn)代基礎(chǔ)設(shè)施自動(dòng)化的三個(gè)基礎(chǔ)知識(shí),這些基礎(chǔ)知識(shí)主要針對(duì)仍在快速掌握使用云原生技術(shù)實(shí)現(xiàn)基礎(chǔ)設(shè)施自動(dòng)化新方法背后的概念(適用于混合云或多云場(chǎng)景)的IT領(lǐng)導(dǎo)者和團(tuán)隊(duì),并提供了一些入門(mén)建議。
(1)關(guān)鍵概念:容器和編排
盡管云原生生態(tài)系統(tǒng)已經(jīng)非常龐大(并且仍在增長(zhǎng)),但是在這種情況下談?wù)摶A(chǔ)設(shè)施自動(dòng)化時(shí),有兩個(gè)主要方面值得關(guān)注:容器和Kubernetes。有多個(gè)容器運(yùn)行時(shí)和多個(gè)編排選項(xiàng),但對(duì)于后者,將使用Kubernetes作為默認(rèn)選擇,因?yàn)樗殉蔀槿萜骶幣诺拿鞔_領(lǐng)導(dǎo)者,而容器編排是現(xiàn)代基礎(chǔ)設(shè)施自動(dòng)化的重要組成部分。
·不變的基礎(chǔ)設(shè)施
這些以云計(jì)算為中心的技術(shù)為Haff先前提到的不變的基礎(chǔ)設(shè)施鋪平了道路。這意味著一旦部署了基礎(chǔ)設(shè)施,就不會(huì)在生產(chǎn)中對(duì)其進(jìn)行更改,而是根據(jù)需要將其替換為新版本。并且可以使用Kubernetes之類(lèi)的工具自動(dòng)啟動(dòng)(或關(guān)閉)這一功能,這樣管理員就可以為自己的應(yīng)用程序和基礎(chǔ)結(jié)構(gòu)聲明所需的狀態(tài),然后編排平臺(tái)以高度自動(dòng)化的方式管理這些狀態(tài)。
·微服務(wù)架構(gòu)
這里的另一個(gè)關(guān)鍵概念是微服務(wù)架構(gòu),它本質(zhì)上意味著將應(yīng)用程序分解為更小的離散組件,這些組件可以作為較大系統(tǒng)的一部分協(xié)同工作。除了獲得其他好處之外,微服務(wù)使團(tuán)隊(duì)可以獨(dú)立管理那些較小的服務(wù),而不必在每次更改時(shí)都必須重新進(jìn)入(并重新部署)整個(gè)應(yīng)用程序。微服務(wù)與容器非常匹配,因?yàn)槊總€(gè)服務(wù)都可以獨(dú)立地實(shí)現(xiàn)容器化。應(yīng)該注意的是,并不是每個(gè)應(yīng)用程序都非常適合微服務(wù)架構(gòu),但這無(wú)關(guān)緊要。
有些人提出一些建議:如果組織是從單一的應(yīng)用程序組合開(kāi)始的,則不要將基礎(chǔ)設(shè)施自動(dòng)化視為短期項(xiàng)目。與其相反,可以將其視為逐個(gè)過(guò)程,尤其是當(dāng)組織要將現(xiàn)有應(yīng)用程序分解為微服務(wù)時(shí)。
OpsRamp公司產(chǎn)品經(jīng)理Michael Fisher說(shuō),“通向不變的基礎(chǔ)設(shè)施的道路可能會(huì)花費(fèi)一些時(shí)間,特別是對(duì)于那些擁有比基于容器的應(yīng)用程序的擴(kuò)散和普及更早的應(yīng)用程序的組織來(lái)說(shuō)。但是,這并不意味著架構(gòu)規(guī)劃和開(kāi)發(fā)處于停滯狀態(tài),直到將應(yīng)用程序配置為可以在獨(dú)立的微前端和后端上運(yùn)行。組織的團(tuán)隊(duì)?wèi)?yīng)該迭代地對(duì)服務(wù)進(jìn)行優(yōu)先級(jí)劃分和容器化,直到整個(gè)應(yīng)用程序完成轉(zhuǎn)換為止。”
基礎(chǔ)設(shè)施自動(dòng)化的現(xiàn)代方法取決于向云平臺(tái)和工具的相應(yīng)轉(zhuǎn)變。但是并不是一蹴而就的事情。
Fisher表示,他將這個(gè)階段視為一個(gè)創(chuàng)新過(guò)程,而不僅僅將其視為技術(shù)過(guò)程:人們要理解容器化的內(nèi)容,就需了解應(yīng)用程序的核心服務(wù)和構(gòu)建塊。
對(duì)于容器化的正確路徑有許多觀點(diǎn),特別是當(dāng)組織將一個(gè)應(yīng)用程序(或多個(gè)應(yīng)用程序)重構(gòu)為微服務(wù)時(shí)。
Fisher說(shuō):“實(shí)現(xiàn)這一點(diǎn)的最好方法之一是了解終端用戶(hù)在用戶(hù)界面(UI)/用戶(hù)體驗(yàn)(UX)中最常訪問(wèn)的位置,然后向下移動(dòng)。這種方法通常被稱(chēng)為‘微前端’,一旦了解了什么需要實(shí)現(xiàn)容器化,就有大量的工具可以幫助組織橫向擴(kuò)展運(yùn)行服務(wù)的基礎(chǔ)設(shè)施,而Kubernetes是最流行的工具。”
(2)關(guān)鍵概念:持續(xù)集成(CI)/ 持續(xù)交付(CD)、構(gòu)建管道和構(gòu)建工件
即使組織已經(jīng)開(kāi)始將合適的工作負(fù)載實(shí)現(xiàn)容器化并學(xué)習(xí)Kubernetes或使用商業(yè)Kubernetes平臺(tái),仍然有很多工作要做。
對(duì)于不變的基礎(chǔ)設(shè)施,需要停止使用服務(wù)器等傳統(tǒng)術(shù)語(yǔ),即使它們?cè)诩夹g(shù)上仍然相關(guān)。與其相反,組織需要開(kāi)始考慮構(gòu)建管道以及另一方面的問(wèn)題:構(gòu)建工件。這是組織自動(dòng)部署、停用和/或用不變的基礎(chǔ)設(shè)施替換的內(nèi)容。
持續(xù)集成(CI)/ 持續(xù)交付(CD)已經(jīng)成為這方面的關(guān)鍵實(shí)踐和工具。構(gòu)建階段實(shí)質(zhì)上是強(qiáng)大的持續(xù)集成(CI)/ 持續(xù)交付(CD)管道的基礎(chǔ)。
一般來(lái)說(shuō),管道概念是考慮基礎(chǔ)設(shè)施自動(dòng)化的一種有用方法:一旦部署到位,組織代碼以及正確運(yùn)行所需的一切都應(yīng)貫穿管道的每個(gè)階段(從構(gòu)建到測(cè)試再到安全再到部署),只有在組織指定的步驟中,或者當(dāng)某些內(nèi)容不符合標(biāo)準(zhǔn)時(shí),才會(huì)有人積極參與。
從本質(zhì)上來(lái)說(shuō),持續(xù)集成(CI)/ 持續(xù)交付(CD)管道是容器化應(yīng)用程序如何從代碼到存儲(chǔ)庫(kù)或生產(chǎn)的過(guò)程,而無(wú)需花費(fèi)太多人力。
Snow Software公司首席設(shè)施師Jesse Stockall解釋了管理容器化應(yīng)用程序和不可變基礎(chǔ)設(shè)施的一些重要方法。這些方法都說(shuō)明了容器和編排如何防止即使在標(biāo)準(zhǔn)操作環(huán)境(SOE)中仍然可能存在的轉(zhuǎn)移。
Stockall說(shuō):“容器映像應(yīng)該使用可重復(fù)的、自動(dòng)化的構(gòu)建管道從可信的基本容器構(gòu)建,該管道使用私有映像存儲(chǔ)庫(kù)作為構(gòu)建輸出。為了獲得更多控制,基本映像也可以復(fù)制到私有注冊(cè)表,并阻止對(duì)公共注冊(cè)表的訪問(wèn)。構(gòu)建系統(tǒng)還應(yīng)該檢測(cè)何時(shí)有較新版本的基礎(chǔ)映像可用,以便可以審查更改并更新映像配置。”
持續(xù)集成(CI)/ 持續(xù)交付(CD)管道的其他關(guān)鍵要素包括測(cè)試和驗(yàn)證/合規(guī)性。如果做得好,安全性對(duì)于每個(gè)階段都是不可或缺的。
Stockall說(shuō):“組織的容器注冊(cè)表應(yīng)該對(duì)已知的易受攻擊的軟件執(zhí)行掃描,并阻止不良圖像被上傳。應(yīng)該使用對(duì)映像配置和部署清單的靜態(tài)分析來(lái)檢測(cè)常見(jiàn)的錯(cuò)誤配置和遺漏,例如基本映像的版本丟失或部署的資源限制。”
(3)關(guān)鍵概念:云原生工具
雖然有些原則保持不變,但單一的工具和流程不一定能讓組織在基礎(chǔ)設(shè)施自動(dòng)化方面達(dá)到其想要的目的。
這有點(diǎn)像安全性:如果組織使用與十年前運(yùn)行的相同的外圍防火墻和終結(jié)點(diǎn)防病毒軟件,并且根本沒(méi)有更新,那么只能順其自然。
基礎(chǔ)設(shè)施也是如此。如今越來(lái)越多的組織使用混合云,既可以解決云原生開(kāi)發(fā)問(wèn)題,又可以解決許多更適合私有云和內(nèi)部部署基礎(chǔ)設(shè)施的工作負(fù)載。并且有大量成熟的工具可以幫助組織管理這一切。
Haff說(shuō):“這一巨變導(dǎo)致了對(duì)基礎(chǔ)設(shè)施自動(dòng)化的重新思考。Kubernetes已經(jīng)成為容器編排的標(biāo)準(zhǔn)。這反過(guò)來(lái)又產(chǎn)生了專(zhuān)門(mén)為容器化世界設(shè)計(jì)的各種自動(dòng)化工具。”
“生態(tài)系統(tǒng)”這個(gè)術(shù)語(yǔ)在科技界往往使用得很寬松。但是,在云計(jì)算時(shí)代,從構(gòu)建到安全再到部署,一個(gè)項(xiàng)目或平臺(tái)依賴(lài)于另一個(gè)項(xiàng)目或平臺(tái),特別是當(dāng)它們是開(kāi)源的時(shí)候。這給基礎(chǔ)設(shè)施自動(dòng)化帶來(lái)了“滾雪球”效應(yīng)。
Haff說(shuō):“持續(xù)集成(CI)/ 持續(xù)交付(CD)領(lǐng)域的項(xiàng)目正在考慮使用Kubernetes原生開(kāi)發(fā)模式和流程來(lái)構(gòu)建和部署管道。這其中包括Tekton管道以及專(zhuān)門(mén)針對(duì)部署自動(dòng)化的較新項(xiàng)目,例如Argo CD和Keptn。組織還會(huì)采用許多新的安全工具(例如Aqua和Snyk),它們針對(duì)這種相對(duì)較新的基礎(chǔ)設(shè)施進(jìn)行了優(yōu)化。”
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。