鐘合
現(xiàn)階段,云計算基礎設施的自動化已成為企業(yè)的“必要措施”??焖俚淖詣踊^程是由市場上有效且有用的IT/云計算自動化工具的激增所帶動的。但是,在選擇工具時會遇到很多挑戰(zhàn),例如缺乏強大的計算功能、數(shù)據(jù)監(jiān)視不一致、網(wǎng)絡問題,以及故障排除等。
由于基礎設施的多個方面需要與這些關鍵痛點一起管理,因此沒有一種工具可以完成所有的工作。缺乏合適的工具將會增加停機時間,影響業(yè)務運營。根據(jù)PagerDuty公司發(fā)布的數(shù)字運營狀況調(diào)查報告,40.4%的受訪者稱,就IT問題造成的損失而言,銷售部門受到了極大的影響,這將直接影響企業(yè)的利潤。
許多企業(yè)認為,在使用容器技術之前使用基礎設施自動化技術,只是臨時性的應對措施。標準化和自動化在IT行業(yè)中并非新的概念,但基礎設施自動化如今卻成為了熱門的關鍵技術,這緣于容器、編排和其他現(xiàn)代化技術使基礎設施自動化的功能得到了擴展。
Red Hat公司的首席技術官Gordon Haff表示,“企業(yè)的標準操作環(huán)境(SOE)和配置管理工具可以自動配置操作環(huán)境及監(jiān)控。但為了完成特定的任務,仍然需要使用很多的服務器,即使配置管理軟件試圖保持合規(guī)性,部署的容器鏡像仍會隨時間的推移而轉(zhuǎn)移?!?/p>
Gordon Haff指出,在長期追求有效的基礎設施自動化的過程中,“容器化”和“編排”為這一過程注入了新的活力。
容器和編排
云原生的生態(tài)系統(tǒng)已經(jīng)非常龐大,并且仍在持續(xù)增長的過程中。在這種背景下,基礎設施自動化有兩個主要方面值得關注,那就是容器和Kubernetes。
在運行多個容器或多個編排選項時,使用Kubernetes作為默認選項不失為一種好的選擇,因為Kubernetes已成為容器編排的明確“領導者”,而容器編排則是現(xiàn)代基礎設施自動化的重要組成部分。
不變的基礎設施
以云計算為中心的技術為基礎設施鋪平了道路,這意味著一旦部署了基礎設施,就不會在生產(chǎn)中遭受更改,而是根據(jù)需求將其替換為新版本。如果使用類似Kubernetes的工具,管理員就可以為自己的應用程序和基礎結構聲明所需的狀態(tài),然后編排平臺以高度自動化的方式管理這些狀態(tài)。
微服務架構
微服務架構本質(zhì)上的意義是將應用程序分解為更小的離散組件,這些組件可以作為較大系統(tǒng)的一部分,同時協(xié)同系統(tǒng)工作。微服務架構可以使運營團隊獨立管理較小的服務,不必在每次更改時重新進入、部署整個應用程序。微服務與容器非常匹配,由于每個服務都可以獨立地實現(xiàn)容器化。但值得注意的是,并非每個應用程序都適合微服務架構。
如果企業(yè)在起始階段部署單一的應用程序組合,那便不要將基礎設施自動化視為短期項目。反之,可以將其視為單一過程,尤其是當企業(yè)需要將現(xiàn)有應用程序分解為微服務時。
OpsRamp公司產(chǎn)品經(jīng)理Michael Fisher說:“在通向‘不變的基礎設施道路過程中,可能會花費許多時間,特別是在基于容器的應用程序擴散和普及前部署應用程序的企業(yè)。但盡管如此,卻并不意味著架構規(guī)劃和研發(fā)團隊可以就此處于停滯狀態(tài),研發(fā)團隊會將應用程序進行重新配置,使其可以獨立的在微前端和后端上運行。企業(yè)的研發(fā)團隊會迭代性地對服務進行優(yōu)先級劃分和容器化改進,直到整個應用程序完全轉(zhuǎn)換?!?/p>
基礎設施自動化的創(chuàng)新方法取決于云平臺和工具的相應轉(zhuǎn)變。Michael Fisher將這種轉(zhuǎn)變階段視為一種創(chuàng)新過程。Michael Fisher說:“這一過程不僅僅是技術的創(chuàng)新,還需要人們對容器化內(nèi)容的理解,以及對應用程序的核心服務和構建塊的熟悉?!?/p>
容器化的發(fā)展有許多途徑,特別是當企業(yè)將一個或多個應用程序重構為微服務時。Fisher說:“實現(xiàn)應用程序重構的最好方法之一,是了解終端用戶在用戶界面(UI)、用戶體驗(UX)中最常訪問的位置,然后向下移動。這種方法被稱為“微前端”,一旦企業(yè)了解實現(xiàn)容器化需求,就可以利用大量的工具可以幫助其橫向擴展運行服務的基礎設施。”
持續(xù)集成、交付,構建管道、工件
如果企業(yè)已經(jīng)將適配的工作負載容器化,并使用商業(yè)Kubernetes平臺。那么對于不變的基礎設施,則需要停止使用服務器等傳統(tǒng)術語,即使其在技術上仍具有相關性。
反之,企業(yè)則需要考慮構建管道及工件問題,這是企業(yè)自動部署、停用,或用“不變的基礎設施”替換該內(nèi)容。持續(xù)集成(CI)、持續(xù)交付(CD),已經(jīng)成為關鍵的實踐工具,構建管道及工件階段是持續(xù)集成、持續(xù)交付管道的基礎。
一般來說,管道概念是助力基礎設施自動化建設的一種有效手段,一旦部署到位,企業(yè)代碼以及正確運行所需的一切都應貫穿管道的每個階段(從構建到測試再到安全部署),只有在企業(yè)指定的步驟中,或者當某些內(nèi)容不符合標準時,才會有人積極參與。
從本質(zhì)上來說,持續(xù)集成、持續(xù)交付管道是容器化應用程序從代碼到存儲庫、生產(chǎn)的過程,這一過程無需花費太多人力。Snow Software公司首席設施師Jesse Stockall表示,管理容器化應用程序和不可變基礎設施重要方法,都說明了容器和編排如何防止在標準操作環(huán)境(SOE)中仍然可能發(fā)生的轉(zhuǎn)移。
Stockall說:“容器映像應該基于可信任的基本容器,構建可重復的、自動化的管道,該管道使用私有映像存儲庫作為構建輸出。在企業(yè)需要更多控制權時,基本鏡像也可以復制到私有注冊表中,并阻止對公共注冊表的訪問。構建系統(tǒng)還應該實時檢測是否有新版本的基礎映像可用,以便及時的審查、更改、更新映像配置?!背掷m(xù)集成、持續(xù)交付管道的關鍵要素還包括測試和驗證/合規(guī)性。Stockall說:“企業(yè)的容器注冊表應該對其已知的易受攻擊的軟件執(zhí)行掃描操作,并阻止外部上傳的不良鏡像,同時,還應該使用對映像配置和部署清單的靜態(tài)分析,來檢測常見的錯誤配置。”
云原生工具
單一的工具和流程不一定能讓企業(yè)在基礎設施自動化方面達到其預期的效果。這一現(xiàn)狀與網(wǎng)絡安全性相似,如果企業(yè)使用與十年前的外圍防火墻和終結點防病毒軟件,并且從未進行更新,則很難達到其目的。
無獨有偶,基礎設施也是如此?,F(xiàn)今,越來越多的企業(yè)使用混合云,這項技術既可以解決云原生的開發(fā)問題,又可以解決諸多私有云和內(nèi)部部署基礎設施工作負載的適配問題。并且有大量成熟的工具可以幫助企業(yè)進行管理。
Haff說:“由于在Kubernetes已經(jīng)成為容器編排的標準時,人們又發(fā)明出專門針對‘容器化世界設計的自動化工具,故而這一技術革新導致了企業(yè)對基礎設施自動化布局的重新思考。”
在云計算時代,從構建到安全再到部署,一個項目或平臺依賴于另一個項目或平臺,特別是當其開源的時候。這給基礎設施自動化帶來了“滾雪球”效應。Haff說:“許多企業(yè)正在考慮在其持續(xù)集成、持續(xù)交付領域的項目使用Kubernetes原生開發(fā)模式和流程來構建和部署管道。這其中包括Tekton管道以及專門針對部署自動化的較新項目?!?/p>