容器作為一種賦能技術(shù),在企業(yè)IT規(guī)劃中扮演著重要的角色。其中原因不言而喻,它能幫助企業(yè)獲得快速發(fā)展。畢竟對(duì)于數(shù)字化業(yè)務(wù)而言,速度就是金錢(qián)。為了實(shí)現(xiàn)業(yè)務(wù)敏捷度,IT領(lǐng)導(dǎo)者希望顛覆以往的二八模式,即將80%的預(yù)算用于維護(hù),僅投入20%預(yù)算進(jìn)行創(chuàng)新。如今,CIO們希望將更多預(yù)算用來(lái)幫助企業(yè)建立敏捷性與敏銳性。
容器、DevOps以及微服務(wù)等要素組合起來(lái),可以幫助CIO們實(shí)現(xiàn)這一目標(biāo)。
簡(jiǎn)而言之,容器將應(yīng)用程序封裝在單一程序包當(dāng)中,與運(yùn)行所在的主機(jī)系統(tǒng)相隔離。開(kāi)發(fā)人員能夠在開(kāi)發(fā)過(guò)程中,輕松移動(dòng)這些程序包,這也是DevOps理念中的基本要求。從開(kāi)發(fā)環(huán)境快速遷移至生產(chǎn)環(huán)境時(shí),容器技術(shù)同樣具有重大意義。
僅僅技術(shù)本身并不能解決問(wèn)題,在多個(gè)跨職能DevOps小組和重新考慮流程以及業(yè)務(wù)邊界時(shí),CIO還需要直面文化層面的種種挑戰(zhàn)。無(wú)論是技術(shù)還是文化,CIO都可以從同行身上學(xué)到很多東西。本文介紹了企業(yè)采用容器的四種典型方式,并列舉出每種方式所需要注意的事項(xiàng)。
當(dāng)然,對(duì)于任何一家企業(yè)而言,并不存在完美的容器部署方式。你可以以一條路徑作為切入點(diǎn),之后再切換至其他路徑。另外,企業(yè)內(nèi)部的不同團(tuán)隊(duì)往往也會(huì)采取不同的容器部署方式。因此,企業(yè)內(nèi)部往往同時(shí)存在多種容器部署模式。
引入容器平臺(tái)
不少企業(yè)在開(kāi)始使用容器之后,很快意識(shí)到自己需要一套平臺(tái)。通常,由特定的小組(例如DevOps小組)在推進(jìn)變更的過(guò)程中,引入一套用于快速執(zhí)行實(shí)驗(yàn)及部署的敏捷性技術(shù)平臺(tái)。在此過(guò)程中,容器就成了理想的解決方案,他們會(huì)力爭(zhēng)說(shuō)服領(lǐng)導(dǎo)者接納容器,并最終將其作為企業(yè)運(yùn)營(yíng)的固定組成部分。關(guān)鍵問(wèn)題在于,企業(yè)應(yīng)該使用哪種平臺(tái)部署并管理容器?盡管目前市面上存在著大量開(kāi)源容器工具,但企業(yè)級(jí)容器平臺(tái)通常囊括數(shù)十種開(kāi)源項(xiàng)目,包括Kubernetes編排、安全性、網(wǎng)絡(luò)、管理、自動(dòng)化構(gòu)建以及持續(xù)集成/部署等功能。總而言之,這類平臺(tái)有助于解決管理、治理以及安全性方面的諸多問(wèn)題。
對(duì)于這條路徑,企業(yè)可以先從易于實(shí)現(xiàn)的目標(biāo)入手。 Web服務(wù)器與應(yīng)用程序服務(wù)器往往是最易于作為容器化工作負(fù)載進(jìn)行部署的目標(biāo),然后進(jìn)一步引入數(shù)據(jù)庫(kù)與有狀態(tài)系統(tǒng),同時(shí)密切關(guān)注與現(xiàn)有構(gòu)建及部署工具/流程的集成效果,把握進(jìn)展情況。
除此以外,也要考慮容器安全問(wèn)題。由于容器中包含系統(tǒng)特定的庫(kù)與依賴項(xiàng),因此更不容易發(fā)現(xiàn)隱藏的安全漏洞,可信注冊(cè)表、鏡像掃描與管理工具可實(shí)現(xiàn)自動(dòng)識(shí)別并修復(fù)容器鏡像。
打造云原生應(yīng)用容器
一些企業(yè)更傾向于使用由應(yīng)用程序開(kāi)發(fā)團(tuán)隊(duì)打造的云原生應(yīng)用容器,其中包括新項(xiàng)目以及對(duì)原有應(yīng)用程序的改造成果。這類應(yīng)用程序通常以微服務(wù)架構(gòu)為基礎(chǔ),目標(biāo)在于將應(yīng)用程序拆分為多項(xiàng)基礎(chǔ)服務(wù),以便團(tuán)隊(duì)可以針對(duì)各獨(dú)立組件進(jìn)行應(yīng)用程序更新。IT團(tuán)隊(duì)還可以使用靈活的API實(shí)現(xiàn)這類目標(biāo)。
如果采用此種模式,企業(yè)應(yīng)使用安全且易于理解的API集在應(yīng)用程序當(dāng)中同其他自有,或者第三方應(yīng)用程序、系統(tǒng)及數(shù)據(jù)進(jìn)行交互。另外,免備案主機(jī),還需要充分考慮如何將其與現(xiàn)有系統(tǒng)相集成。由此可以看出,容器與微服務(wù)及API相結(jié)合,將幫助開(kāi)發(fā)團(tuán)隊(duì)更輕松地開(kāi)發(fā)、協(xié)同并部署云原生應(yīng)用程序。
在考慮使用新的運(yùn)行時(shí),以往部署的單體式應(yīng)用服務(wù)器很難用于運(yùn)行下一代應(yīng)用程序,這是因?yàn)楹笳咄捎檬录?qū)動(dòng)設(shè)計(jì)、響應(yīng)式以及無(wú)服務(wù)器等新興技術(shù)。容器平臺(tái)必須有能力支持廣泛的現(xiàn)有及云原生運(yùn)行時(shí)與框架方案。同時(shí),也要關(guān)注開(kāi)發(fā)者工具,在運(yùn)行時(shí)不斷發(fā)展的同時(shí),立足云端的開(kāi)發(fā)者工具,也有望高效管理由自我學(xué)習(xí)技術(shù)以及自動(dòng)化工作流帶來(lái)的日益復(fù)雜的工作環(huán)境,進(jìn)而幫助開(kāi)發(fā)人員更快構(gòu)建起高質(zhì)量產(chǎn)品代碼。
實(shí)現(xiàn)云管理的技術(shù)與文化因素
在這種常用模式中,運(yùn)營(yíng)團(tuán)隊(duì)或管理大量應(yīng)用程序的其他團(tuán)隊(duì)通常已經(jīng)深刻認(rèn)識(shí)到公有云的優(yōu)勢(shì),且希望將其彈性、速度與性能等要素納入運(yùn)營(yíng)環(huán)境。但團(tuán)隊(duì)可能出于歷史、法規(guī)或安全等方面的考量,仍需要在本地環(huán)境中運(yùn)行某些應(yīng)用程序。此外,團(tuán)隊(duì)通常還需要面對(duì)原有裸機(jī)服務(wù)器或虛擬化環(huán)境,甚至包括一部分私有云。面對(duì)繁多的考量因素,云管理將成為至關(guān)重要的一環(huán)。
這其中關(guān)鍵問(wèn)題在于——要如何建立一個(gè)抽象層級(jí)?一套在所有環(huán)境中都能良好運(yùn)行的平臺(tái)?確保運(yùn)營(yíng)團(tuán)隊(duì)能夠無(wú)縫管理所有應(yīng)用程序?又如何將各類基礎(chǔ)設(shè)施隱藏起來(lái),為開(kāi)發(fā)人員提供一套統(tǒng)一的部署環(huán)境?這種便利性將成為提高開(kāi)發(fā)者工作速度的重要前提。