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