一文讀懂云原生技術(shù)圖譜

2021-02-07    分類: 網(wǎng)站建設(shè)

如果你一直在跟蹤和研究云原生應(yīng)用程序和技術(shù),一定會知道云原生計算基金會(CNCF)的云原生技術(shù)圖譜(Landscape)。乍一眼看去,你一定會被龐大的云原生規(guī)模所震撼,為什么會有如此眾多的類別和技術(shù),想要了解完整的技術(shù)圖譜不是容易的事情。

一文讀懂云原生技術(shù)圖譜
清晰技術(shù)圖譜可在CNCF網(wǎng)站查看

但如果對其剝絲抽繭,分解類別,以及搞清楚每一類代表了哪些技術(shù),以及每個類別所要解決的問題,那么理解上就會輕松很多。大體上云原生技術(shù)圖譜可以分為四層配置層(Provisioning Layer)、運行時層(Runtime Layer)、編排和管理層(Orchestration and Management Layer)、應(yīng)用定義和開發(fā)層(Application Definition and Development Layer)。架構(gòu)的每一層都有自己的子類別。

一文讀懂云原生技術(shù)圖譜

配置層(Provisioning Layer)

配置層是構(gòu)建云原生應(yīng)用程序基礎(chǔ)所涉及的工具。它包含了從自動化基礎(chǔ)結(jié)構(gòu)的創(chuàng)建,管理和配置到掃描,簽名和存儲容器鏡像等所有內(nèi)容。提供設(shè)置和實施策略,在應(yīng)用程序和平臺中構(gòu)建身份驗證和授權(quán),以及處理機(jī)密分發(fā)的工具,資源調(diào)配,甚至擴(kuò)展到了安全領(lǐng)域。它包含了一些重要的子類別:

  • 自動化和配置工具——幫助工程師在無需人工干預(yù)下構(gòu)建計算環(huán)境。
  • 容器注冊表——存儲應(yīng)用程序的可執(zhí)行文件。
  • 安全和合規(guī)框架——涉及不同的安全領(lǐng)域。
  • 密鑰管理解決方案——加密來確保只有授權(quán)的用戶才能訪問應(yīng)用程序。

這些工具使工程師可以整理所有基礎(chǔ)架構(gòu)的細(xì)節(jié),便于系統(tǒng)可以根據(jù)需要來調(diào)整環(huán)境,確保它們的一致性和安全性。

運行時層(Runtime Layer)

運行時是可能引起混淆的術(shù)語之一。與IT中的許多術(shù)語一樣,沒有嚴(yán)格的定義,可以根據(jù)上下文使用不同的定義。從狹義上講,運行時是準(zhǔn)備運行應(yīng)用程序的特定計算機(jī)上的沙箱,即應(yīng)用程序所需的最低限度。從廣義上講,運行時是應(yīng)用程序需要運行的任何工具。

在CNCF的云原生環(huán)境中,運行時在兩者之間的某個位置定義,重點放在對容器化應(yīng)用特別重要的組件上:它們需要運行,記憶和互動的內(nèi)容。它們包括:

  • 云原生存儲為容器化的應(yīng)用程序提供了虛擬化磁盤或持久性。
  • 容器運行時為容器提供了約束,資源和安全性方面的考慮,并使用編程后的應(yīng)用程序執(zhí)行了文件。
  • 云原生網(wǎng)絡(luò),分布式系統(tǒng)的節(jié)點(機(jī)器或過程)通過其進(jìn)行連接和通信的網(wǎng)絡(luò)。

編排和管理層(Orchestration and Management Layer)

一旦按照安全性和合規(guī)性標(biāo)準(zhǔn)自動執(zhí)行基礎(chǔ)結(jié)構(gòu)設(shè)置,并設(shè)置了應(yīng)用程序需要運行的工具,工程師就必須弄清楚如何編排和管理其應(yīng)用程序。編排和管理層處理所有容器化服務(wù)(應(yīng)用程序組件)如何作為一個組進(jìn)行管理。他們需要確定其他服務(wù),相互通信并進(jìn)行協(xié)調(diào)。云原生應(yīng)用程序具有固有的可擴(kuò)展性,它依賴于此層啟用的自動化和彈性。

在這一層中包括:

  • 編排和調(diào)度——部署和管理容器集群,以確保它們具有彈性,松散耦合和可伸縮性。實際上,在大多數(shù)情況下,編排工具Kubernetes就是通過管理容器和操作環(huán)境構(gòu)成集群的
  • 協(xié)調(diào)和服務(wù)發(fā)現(xiàn)——因此服務(wù)(應(yīng)用程序組件)可以相互定位和通信。
  • 遠(yuǎn)程過程調(diào)用(RPC)——一種使一個節(jié)點上的服務(wù)與通過網(wǎng)絡(luò)連接的不同節(jié)點上的服務(wù)進(jìn)行通信的技術(shù)。
  • 服務(wù)代理——是放置在服務(wù)之間的中介,通過它們進(jìn)行通信。代理的唯一目的是對服務(wù)通信施加更多控制,它不會對通信本身添加任何內(nèi)容。這些代理對于下面提到的服務(wù)網(wǎng)格至關(guān)重要。
  • API網(wǎng)關(guān)——一個抽象層,外部應(yīng)用程序可以通過它進(jìn)行通信。
  • 服務(wù)網(wǎng)格——在某種程度上類似于API網(wǎng)關(guān),它是應(yīng)用程序通過其進(jìn)行通信的專用基礎(chǔ)結(jié)構(gòu)層,但是它提供了策略驅(qū)動的內(nèi)部服務(wù)到服務(wù)的通信。此外,它可能包括從流量加密到服務(wù)發(fā)現(xiàn)到應(yīng)用程序可觀察性的所有內(nèi)容。

應(yīng)用定義和開發(fā)層(Application Definition and Development Layer)

顧名思義,應(yīng)用程序定義和開發(fā)層側(cè)重于讓工程師能夠構(gòu)建應(yīng)用程序并使其運行的工具。上面討論的所有內(nèi)容都與構(gòu)建可靠,安全的環(huán)境以及提供所有必需的應(yīng)用程序依賴關(guān)系有關(guān)。

在這層包括:

  • 數(shù)據(jù)庫——使應(yīng)用程序能夠以有組織的方式收集數(shù)據(jù)的數(shù)據(jù)庫。
  • 流和消息——傳遞使應(yīng)用程序能夠發(fā)送和接收消息(事件和流)。它不是網(wǎng)絡(luò)層,而是用于對消息進(jìn)行排隊和處理的工具。
  • 應(yīng)用程序定義和鏡像構(gòu)建——是幫助配置,維護(hù)和運行容器鏡像(應(yīng)用程序的可執(zhí)行文件)的服務(wù)。
  • 持續(xù)集成和交付(CI/CD)——使開發(fā)人員能夠自動測試其代碼是否與代碼庫(應(yīng)用程序的其余部分)兼容,如果他們的團(tuán)隊足夠成熟,甚至可以自動部署到生產(chǎn)中。

跨所有層運行的工具

回到類別上,下面討論在所有層上運行的列分類??捎^察性和分析是監(jiān)控所有層的工具。另一方面,平臺將這些層中的多種技術(shù)捆綁到一個解決方案中,包括可觀察性和分析。

一文讀懂云原生技術(shù)圖譜

可觀察性與分析(Observability and Analysis)

為了限制服務(wù)中斷并降低MRRT(解決問題的時間),需要監(jiān)控和分析應(yīng)用程序的各個方面,以便立即發(fā)現(xiàn)并糾正任何異常情況。故障將在復(fù)雜的環(huán)境中發(fā)生,這些工具將通過幫助盡快識別和解決故障來幫助減輕影響。由于此類別遍歷并監(jiān)控所有層,因位于垂直面,而不是嵌入在特定層中。

在這層包括:

  • 收集事件日志——有關(guān)進(jìn)程的信息的日志記錄工具。
  • 監(jiān)控解決方案——收集指標(biāo)(數(shù)字系統(tǒng)參數(shù),例如RAM可用性)。
  • 跟蹤——比監(jiān)控和監(jiān)控用戶請求的傳播更進(jìn)一步。與服務(wù)網(wǎng)格相關(guān)。
  • 混沌工程——是對生產(chǎn)中的軟件進(jìn)行測試的工具,可以在缺陷影響服務(wù)交付之前對其進(jìn)行識別并加以修復(fù)。

平臺(Platforms)

如上,每個模塊都解決了一個特定的問題。僅存儲并不能提供管理應(yīng)用程序所需的全部功能。我們需要一個編排工具、容器運行時、服務(wù)發(fā)現(xiàn)、網(wǎng)絡(luò)、API網(wǎng)關(guān)等。覆蓋多層,平臺將不同的工具捆綁在一起,以解決更大的問題。

配置和微調(diào)不同的模塊以使其可靠和安全,并確保更新其利用的所有技術(shù),并修補漏洞。使用平臺,用戶不必?fù)?dān)心這些細(xì)節(jié),可實現(xiàn)生產(chǎn)中的增值。

你可能會注意到,所有類別都圍繞Kubernetes展開。這是因為Kubernetes是云原生堆棧的核心。別忘記,Kubernetes是CNCF的第一個孵化項目,之后才有了其他所有后續(xù)項目。

平臺可分為四種:

  • Kubernetes發(fā)行版(Kubernetes distributions)采用了未經(jīng)修改的開源代碼,盡管有供應(yīng)商對其進(jìn)行了修改,并圍繞其市場添加了其市場需求的其他功能。
  • 托管Kubernetes(Hosted Kubernetes)類似于發(fā)行版,但由提供商在其或用戶自己的基礎(chǔ)架構(gòu)上進(jìn)行管理。
  • Kubernetes安裝程序(Kubernetes installers),它們可以自動執(zhí)行Kubernetes的安裝和配置過程。
  • PaaS/容器服務(wù)(PaaS/container services),與托管的Kubernetes相似,但是包含了廣泛的應(yīng)用程序部署工具集(通常是云原生環(huán)境的一部分)。

總結(jié)

在每種類別中,都有解決相同或相似問題的不同工具。有些是滿足當(dāng)下云原生技術(shù)的,有些則是全新的。區(qū)別在于它們的實現(xiàn)和設(shè)計方法。沒有好的技術(shù),因為在大多數(shù)情況下技術(shù)受到設(shè)計和架構(gòu)選擇的限制,始終存在一個權(quán)衡。

在選擇堆棧時,云原生工程師必須仔細(xì)考慮每種功能并進(jìn)行權(quán)衡,以確定適合其用例的好選擇。盡管這帶來了額外的復(fù)雜性,但選擇最適合應(yīng)用程序需求的數(shù)據(jù)存儲,基礎(chǔ)架構(gòu)管理,消息系統(tǒng)等是必須的。現(xiàn)在,架構(gòu)系統(tǒng)比在云之前的原生世界中容易得多。而且,如果進(jìn)行適當(dāng)?shù)募軜?gòu)設(shè)計,云原生技術(shù)將提供強(qiáng)大且急需的靈活性。

本文標(biāo)題:一文讀懂云原生技術(shù)圖譜
文章源于:http://www.bm7419.com/news46/99596.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、動態(tài)網(wǎng)站、網(wǎng)站設(shè)計、靜態(tài)網(wǎng)站、定制網(wǎng)站、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司