云原生景觀:供應(yīng)層(Provisioning)解決了什么問(wèn)題?如何解決的?
上篇文章《叮,你收到一份來(lái)自CNCF的云原生景觀簡(jiǎn)介》,我們對(duì)CNCF云原生生態(tài)系統(tǒng)做了概述。從這篇文章開(kāi)始,我們將介紹云原生景觀中,每種類別中的工具是什么,他們解決了什么問(wèn)題以及如何解決的。
云原生環(huán)境中的第一層是供應(yīng)層(Provisioning)。這涵蓋了從自動(dòng)化基礎(chǔ)結(jié)構(gòu)的創(chuàng)建,管理和配置鏡像掃描,鏡像簽名和存儲(chǔ)鏡像的所有內(nèi)容。該層還擴(kuò)展了安全性,其工具可用于設(shè)置和實(shí)施安全策略,處理應(yīng)用程序和平臺(tái)中身份認(rèn)證和授權(quán),以及密鑰分發(fā)。

查看云原生景觀圖時(shí),你會(huì)注意到一些區(qū)別:

大盒子中的項(xiàng)目是CNCF托管的開(kāi)源項(xiàng)目。有些仍處于孵化階段(淺藍(lán)色/紫色框),而另一些則是已畢業(yè)的項(xiàng)目(深藍(lán)色框)。
白色小盒子中的項(xiàng)目是開(kāi)源項(xiàng)目。
灰色的是專有產(chǎn)品。
請(qǐng)注意,即使在撰寫(xiě)本文時(shí),我們也看到新項(xiàng)目成為CNCF的一部分,因此始終參考實(shí)際情況-事情發(fā)展很快!
好的,讓我們看一下供應(yīng)層(Provisioning)的每個(gè)類別,它所扮演的角色以及這些技術(shù),如何幫助應(yīng)用程序適應(yīng)云原生環(huán)境。
自動(dòng)化與配置 (Automation and Configuration)
這是什么
自動(dòng)化和配置工具可加快計(jì)算資源(虛擬機(jī),網(wǎng)絡(luò),防火墻規(guī)則,負(fù)載均衡器等)的創(chuàng)建和配置。這些工具可能會(huì)處理供應(yīng)層(Provisioning)的不同部分,或者嘗試控制所有端到端的內(nèi)容。大多數(shù)工具,提供與該空間中其他項(xiàng)目和產(chǎn)品集成的能力。
解決了什么問(wèn)題
傳統(tǒng)上,IT流程依賴冗長(zhǎng)且復(fù)雜的手動(dòng)發(fā)布周期,甚至需要三到六個(gè)月。這些周期伴隨著許多人工流程和控制,從而減緩了生產(chǎn)環(huán)境的變更。這些緩慢的發(fā)布周期和靜態(tài)環(huán)境與云原生開(kāi)發(fā)不兼容。為了實(shí)現(xiàn)快速的開(kāi)發(fā)周期,必須動(dòng)態(tài)配置基礎(chǔ)架構(gòu),并且無(wú)需人工干預(yù)。
它如何解決
此類工具使工程師無(wú)需人工干預(yù)即可構(gòu)建計(jì)算環(huán)境。環(huán)境設(shè)置,只需單擊一個(gè)按鈕,它就可以實(shí)現(xiàn)。手動(dòng)設(shè)置很容易出錯(cuò),但是一旦進(jìn)行了編碼,環(huán)境創(chuàng)建就會(huì)與所需的確切狀態(tài)相匹配,這是巨大的優(yōu)勢(shì)。
盡管這些工具可能采用不同的方法,但它們都旨在通過(guò)自動(dòng)化配置資源減少所需的手工操作。
相應(yīng)的解決工具
當(dāng)我們從老式的人為驅(qū)動(dòng)的配置過(guò)渡到云環(huán)境所要求的按需擴(kuò)展時(shí),我們發(fā)現(xiàn)以前使用的模式和工具不再滿足我們的需求。組織也無(wú)力維持龐大的7×24員工隊(duì)伍,并且他們的工只作是創(chuàng)建,配置和管理服務(wù)器。
Terraform之類的自動(dòng)化工具減少了擴(kuò)展數(shù)十個(gè)服務(wù)器和相關(guān)網(wǎng)絡(luò)以及多達(dá)數(shù)百個(gè)防火墻規(guī)則所需的工作量。諸如Puppet,Chef和Ansible之類的工具會(huì)在啟動(dòng)時(shí)以編程方式配置這些新服務(wù)器和應(yīng)用程序,并允許開(kāi)發(fā)人員使用它們。
一些工具可以直接與AWS或vSphere等平臺(tái)提供的基礎(chǔ)架構(gòu)API進(jìn)行交互,而其他工具側(cè)重于配置單個(gè)計(jì)算機(jī)以使其成為Kubernetes集群的一部分。
像Chef和Terraform一樣,許多工具可以進(jìn)行交互操作以配置環(huán)境。諸如OpenStack之類的其他工具,運(yùn)用基礎(chǔ)架構(gòu)即服務(wù)(IaaS)的理念來(lái)配置環(huán)境。從根本上講,在此空間中,你需要一個(gè)或多個(gè)工具來(lái)為Kubernetes集群搭建計(jì)算環(huán)境,CPU,內(nèi)存,存儲(chǔ)和網(wǎng)絡(luò)。你還需要其中一部分來(lái)創(chuàng)建和管理Kubernetes集群本身。
在撰寫(xiě)本文時(shí),該領(lǐng)域中有三個(gè)CNCF項(xiàng)目:KubeEdge(一個(gè)CNCF沙盒項(xiàng)目)以及Kubespray和Kops(后兩個(gè)是Kubernetes子項(xiàng)目,因此雖然尚未列出,但它們屬于CNCF)。此類別中的大多數(shù)工具都提供開(kāi)源和付費(fèi)版本。
| 流行語(yǔ) | 熱門(mén)項(xiàng)目/產(chǎn)品 |
|---|---|
|
|

鏡像倉(cāng)庫(kù) (Container Registry)
這是什么
在介紹鏡像倉(cāng)庫(kù)之前,讓我們首先討論三個(gè)緊密相關(guān)的概念:
容器是用于執(zhí)行軟件流程的一組計(jì)算約束。容器內(nèi)啟動(dòng)的進(jìn)程相信它們正在自己的專用計(jì)算機(jī)上運(yùn)行,而不是與其他進(jìn)程(類似于虛擬機(jī))共享的計(jì)算機(jī)上運(yùn)行。簡(jiǎn)而言之,容器使你無(wú)論身在何處都可以以受控方式運(yùn)行代碼。
鏡像是運(yùn)行容器及其過(guò)程所需的一組存檔文件。你可以將其視為模板的一種形式,可以在其上創(chuàng)建無(wú)限數(shù)量的容器。
存儲(chǔ)庫(kù)是存儲(chǔ)鏡像的地方。
鏡像倉(cāng)庫(kù)是用于分類和存儲(chǔ)鏡像的專用Web應(yīng)用程序。

解決的問(wèn)題
云原生應(yīng)用程序打包并作為容器運(yùn)行。鏡像倉(cāng)庫(kù)存儲(chǔ)并提供這些容器鏡像。
如何解決
通過(guò)將所有容器鏡像集中存儲(chǔ)在一個(gè)地方,任何使用該應(yīng)用程序的開(kāi)發(fā)人員都可以輕松訪問(wèn)它們。
相應(yīng)的解決工具
鏡像倉(cāng)庫(kù)工具存儲(chǔ)和分發(fā)鏡像,從根本上說(shuō),它是一種Web API,允許容器引擎存儲(chǔ)和檢索鏡像。他們有的還提供接口以允許容器掃描或簽名工具來(lái)增強(qiáng)存儲(chǔ)的鏡像的安全性。
任何使用容器的環(huán)境都將需要使用一個(gè)或多個(gè)鏡像倉(cāng)庫(kù)。
該空間中的工具可以提供集成功能,以掃描,簽名和檢查它們存儲(chǔ)的鏡像。在撰寫(xiě)本文時(shí),Dragonfly和Harbor是CNCF項(xiàng)目,而Harbor最近成為了第一個(gè)符合OCI的注冊(cè)機(jī)構(gòu)。每個(gè)主要的云提供商都提供自己托管的鏡像倉(cāng)庫(kù),許多鏡像倉(cāng)庫(kù)可以獨(dú)立部署,也可以通過(guò)Helm之類的工具直接部署到Kubernetes集群中。
| 流行語(yǔ) | 熱門(mén)項(xiàng)目/產(chǎn)品 |
|---|---|
|
|
安全與合規(guī)(Security and Compliance)
這是什么
云原生應(yīng)用程序旨在快速迭代。就好像你的手機(jī)應(yīng)用程序不斷更新–每天它們都在不斷發(fā)展,并且可能會(huì)變得越來(lái)越好。為了定期發(fā)布代碼,我們必須確保我們的代碼和操作環(huán)境是安全的,并且只能由授權(quán)的工程師訪問(wèn)。
本節(jié)中的工具和項(xiàng)目代表了以安全方式創(chuàng)建和運(yùn)行現(xiàn)代應(yīng)用程序所需的一些內(nèi)容。
解決的問(wèn)題
這些工具和項(xiàng)目可幫助你加強(qiáng),監(jiān)視和實(shí)施平臺(tái)和應(yīng)用程序的安全性。從容器到你的Kubernetes環(huán)境,它們使你能夠設(shè)置策略(用于合規(guī)性),深入了解現(xiàn)有漏洞,捕獲錯(cuò)誤配置以及增強(qiáng)容器和集群的安全性。
如何解決
為了安全地運(yùn)行容器,必須對(duì)容器進(jìn)行掃描以查找已知漏洞并簽名,以確保它們未被篡改。Kubernetes本身默認(rèn)的訪問(wèn)控制設(shè)置比較寬松。因此,對(duì)于希望攻擊你的系統(tǒng)的任何人來(lái)說(shuō),Kubernetes集群都是一個(gè)有吸引力的目標(biāo)。該空間中的工具和項(xiàng)目有助于增強(qiáng)群集,并提供工具來(lái)檢測(cè)系統(tǒng)何時(shí)出現(xiàn)異常。
相應(yīng)的解決工具
為了滿足在動(dòng)態(tài),快速發(fā)展的云環(huán)境中安全運(yùn)行,我們必須將安全性視為平臺(tái)和應(yīng)用程序開(kāi)發(fā)生命周期的一部分。這個(gè)領(lǐng)域中的工具種類繁多,旨在解決問(wèn)題的不同部分。大多數(shù)工具屬于以下類別之一:
審計(jì)與合規(guī)(Audit and compliance)
生產(chǎn)環(huán)境中強(qiáng)化的途徑
代碼掃描
漏洞掃描
鏡像簽名
政策制定與執(zhí)行
網(wǎng)絡(luò)層安全
這些工具和項(xiàng)目中的一部分很少會(huì)被直接使用,例如鏡像倉(cāng)庫(kù)或其他掃描工具會(huì)利用Trivy,Claire和Notary等。其他一些工具,是現(xiàn)代應(yīng)用程序平臺(tái)的關(guān)鍵強(qiáng)化組件,例如Falco或Open Policy Agent(OPA)。
有許多成熟的供應(yīng)商在此領(lǐng)域提供解決方案,在撰寫(xiě)本文時(shí),F(xiàn)alco,Notary / TUF和OPA是該領(lǐng)域中僅有的CNCF項(xiàng)目。
| 流行語(yǔ) | 熱門(mén)項(xiàng)目/產(chǎn)品 |
|---|---|
|
|

密鑰和身份管理(Key and Identity Management)
這是什么
在進(jìn)行密鑰管理之前,讓我們首先定義密鑰。密鑰是用于加密或簽名數(shù)據(jù)的字符串。就像物理密鑰一樣,它加密數(shù)據(jù),以便只擁有正確密鑰的才能解密數(shù)據(jù)。
隨著應(yīng)用程序適應(yīng)新的云原生世界,安全工具也在不斷發(fā)展以滿足新的安全需求。此類別中的工具和項(xiàng)目涵蓋了從如何安全地存儲(chǔ)密碼和其他機(jī)密信息(敏感數(shù)據(jù),例如API密鑰,密鑰等)到如何從微服務(wù)環(huán)境中安全刪除密碼和機(jī)密信息等。
解決的問(wèn)題
云原生環(huán)境是高度動(dòng)態(tài)的,需要按需,完全編程(無(wú)人參與)和自動(dòng)化的秘密分發(fā)。應(yīng)用程序還必須知道給定的請(qǐng)求是否來(lái)自有效來(lái)源(身份驗(yàn)證),以及該請(qǐng)求是否有權(quán)執(zhí)行其嘗試執(zhí)行的任何操作。通常將其稱為AuthN和AuthZ。
如何解決
每個(gè)工具或項(xiàng)目都采用不同的方法,但是它們都提供了一種安全分發(fā)密鑰的方法,或者它們提供了與身份驗(yàn)證,授權(quán)或兩者相關(guān)的服務(wù)或規(guī)范。
相應(yīng)的解決工具
此類別中的工具可以分為兩組:一些工具專注于密鑰生成,存儲(chǔ),管理和輪換,另一組專注于單點(diǎn)登錄和身份管理。例如,Vault是一種相當(dāng)通用的密鑰管理工具,可讓你管理不同類型的密鑰。另一方面,Keycloak是一種身份代理,可用于管理不同服務(wù)的訪問(wèn)密鑰。
在撰寫(xiě)本文時(shí),SPIFFE / SPIRE是該領(lǐng)域中唯一的CNCF項(xiàng)目,并且大多數(shù)工具都提供開(kāi)源版本和付費(fèi)版本。
| 流行語(yǔ) | 熱門(mén)項(xiàng)目 |
|---|---|
|
|

正如我們已經(jīng)看到的那樣,供應(yīng)層(Provisioning)側(cè)重于構(gòu)建你的云原生平臺(tái)和應(yīng)用程序的基礎(chǔ),其工具處理從基礎(chǔ)結(jié)構(gòu)到鏡像倉(cāng)庫(kù)到安全性的所有內(nèi)容。本文旨在作為詳細(xì)介紹云原生環(huán)境的系列文章的第一篇。在下一篇文章中,我們將專注于運(yùn)行時(shí)層,并探索云原生存儲(chǔ),容器運(yùn)行時(shí)和網(wǎng)絡(luò)。
譯者:王延飛
譯文連接:https://thenewstack.io/the-cloud-native-landscape-the-provisioning-layer-explained/
