您好,登錄后才能下訂單哦!
本篇文章為大家展示了來自CNCF的云原生景觀簡介是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
當你在研究云原生應用程序和技術,則可能會看到過云原生基金會(CNCF)提供的云原生景觀圖。毫不奇怪,它的規模相當龐大。如此眾多的類別和眾多的技術。我們應該如何看待它?
與其他任何復雜事物一樣,如果你并對其進行拆分并分析,你會發現它并不那么復雜。實際上,云原生景觀圖是按功能整齊地組織的,一旦你了解了每個類別所代表的內容,就可以輕松進行“導航”。
在本系列的第一篇文章中,我們將分解這個龐大的云原生景觀并提供整體,每個層,每一列和每個類別的概述。在后續文章中,我們將著重介紹每個層和每一列,并介紹每個類別是什么,它解決了什么問題以及如何運用等。
在第一層中,是配置云原生基礎架構的工具。第二層和第三層,是添加運行和管理應用程序所需的工具,例如運行時和編排層。在第四層,是用于定義和開發應用程序的工具,例如數據庫,鏡像構建和CI/CD工具。
現在,云原生景觀始于基礎架構,每一層都更接近實際應用程序。你可能也注意到還有跨所有層運行的兩個“列“,文章后面我們將討論。
Provisioning指的是創建和強化云本機應用程序基礎所涉及的工具。它涵蓋了從自動化基礎結構的創建,管理和配置鏡像掃描,鏡像簽名和存儲鏡像的所有內容。除此之外,它還具備在應用程序和平臺中構建身份驗證授權以及處理密鑰分發的工具,資源調配和安全領域的工具。
在供應層中,你會看到:
自動化和配置工具(Automation &configuration ):可幫助工程師無需人工干預即可構建基礎環境。
容器倉庫(Container Registry): 存儲應用程序的鏡像。
安全( Security &compliance ):涉及不同的安全領域。
密鑰管理(Key management):有助于加密,以確保只有授權的用戶才能訪問該應用程序。
這些工具使工程師可以了解所有基礎架構的細節,以便根據需要進行調整,來確保它們的一致性和安全性。
運行時是云原生中最可能引起混淆的術語之一。與IT中的許多術語一樣,沒有嚴格的定義,可以根據上下文使用的不同來定義。從狹義上講,運行時是運行應用程序的特定沙箱環境(應用程序運行所需的最低限度)。從廣義上講,運行時是應用程序運行所需要的任何工具。
在CNCF云原生環境中,運行時重點放在對容器化應用特別重要的組件上。它們包括:
云原生存儲(Cloud native storage):為容器化的應用程序提供了虛擬化磁盤或持久性。
容器運行時(Container runtime):為容器提供了約束,資源和安全性等。
云網絡(Cloud native networking):分布式系統的節點通過其進行連接和通信的網絡。
一旦按照安全性標準自動搭建了基礎結構(供應層),并設置了應用程序需要運行的工具(運行時層),工程師就需要知道如何編排和管理其應用程序。
編排和管理層,把所有容器化應用程序作為一個組進行管理。還要確定是否需要和其他服務相互通信并進行協調。同時,云原生應用程序具有良好的可擴展性。
在這一層中,包括:
編排和調度( Orchestration & scheduling ):部署和管理容器集群,以確保它們具有彈性,松耦合和可伸縮性。具有代表性的容器編排工具就是Kubernetes。
服務發現( Coordination and service discovery ):服務可以相互通信的工具。
遠程過程調用(RPC):跨節點上的服務進行通信的技術。
服務代理( Service proxy ):代理的唯一目的是對服務通信施加更多控制,它不會對通信本身添加任何內容。這些代理對于下面提到的服務網格至關重要。
API網關:一個抽象層,外部應用程序可以通過它進行通信。
服務網格( Service mesh ):在某種程度上類似于API網關,它是應用程序通過其進行通信的專用基礎結構層,但是它提供了策略驅動的服務的通信。此外,它可能包括從加密、服務發現、到應用程序可觀察性的所有內容。
顧名思義,應用程序定義和開發層,是側重于使工程師能夠構建應用程序并使其運行的工具。
在此類別下,你會看到:
數據庫( Databases):使應用程序能夠以有組織的方式收集數據。
流和消息傳遞( Streaming & messaging):使應用程序能夠發送和接收消息(事件和流)。它不是網絡層,而是用于對消息進行排隊和處理的工具。
應用程序定義和鏡像構建( Application definition &image build ):是幫助配置,維護和運行容器鏡像的服務。
持續集成和持續交付(CI/CD):使開發人員能夠自動測試代碼,自動打包,甚至還可以自動部署到生產環境中。
接下來,我們將介紹在所有層上運行的兩列–可觀察性和分析。
為了降低MRRT(解決軟件問題的時間),你需要監視和分析應用程序的各個方面,以便立即發現并糾正任何異常情況。在復雜的環境中故障隨時會發生,而這些工具將通過幫助盡快識別和解決故障來幫助減輕故障的負面影響。由于此類別遍歷并監視所有層,因此它在側面,而不是嵌入在特定層中。
在這里你會發現:
日志記錄( Logging):收集事件日志(有關進程的信息)的工具。
監視( Monitoring ):收集指標(系統參數,例如RAM可用性等),監視運行狀況。
跟蹤( Tracing ):比監視更進一步,這與服務網格相關。
混沌工程( Chaos engineering):是對生產中的軟件進行測試的工具,可以在交付之前識別缺陷并加以修復。
如我們所見,每個模塊都解決了一個特定的問題。例如,僅存儲并不能提供管理應用程序所需的全部功能。你將需要一個編排工具,覆蓋多層,將不同的工具捆綁在一起,以解決更大的問題。
你可能會注意到,所有類別都圍繞Kubernetes展開。這是因為Kubernetes是最受歡迎的云原生編排工具。
平臺可分為四類:
Kubernetes發行版:未經修改的開源代碼(盡管有人對其進行了修改),并跟蹤市場需求添加相應功能。
Kubernetes托管:類似于發行版,在提供商的基礎架構上進行管理。
Kubernetes安裝程序:使用它們可以自動執行Kubernetes的安裝和配置過程。
PaaS /容器服務:與Kubernetes托管相似,但包含了廣泛的應用程序部署工具集(通常是云原生環境的一部分)。
在每種類別中,都有旨在解決相同或相似問題的不同工具。區別在于它們的實現和設計方法。
在選擇時,工程師必須仔細考慮每種功能并進行權衡,以確定適合其用例的最佳選擇。盡管這帶來了額外的復雜性,但選擇最適合應用程序需求的數據存儲,基礎架構管理,消息系統等,都是至關重要的。
上述內容就是來自CNCF的云原生景觀簡介是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。