日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

都在說云原生,它的技術(shù)圖譜你真的了解嗎?

 yi321yi 2021-02-18

如果你研究過云原生應(yīng)用程序和相關(guān)技術(shù),大概率你遇到過 CNCF 的云原生全景圖。這張全景圖技術(shù)之多規(guī)模之大無疑會讓人感到震驚,該如何去理解這張圖呢?

如果把它拆開來一次只分析一小塊內(nèi)容,你會發(fā)現(xiàn)整個全景圖沒有那么復(fù)雜。事實上,該全景圖按照功能有序地組織在一起,一旦你了解了每個類別代表的內(nèi)容,你就可以輕松游走于全景圖中。

本文是這一系列的第一篇文章,我們將把整個全景圖拆解開來,并對整個全景圖進行綜述。在后續(xù)文章中,我們將聚焦在每一層(or 每一列),對每個類別解決的問題和原理進行更為詳細(xì)的解讀。


云原生全景圖的 4 層

首先,我們剝離掉所有單個的技術(shù),僅查看類別(如下圖)。圖中有不同的“行”,像建筑的不同層,每層都有自己的子類別。最底層提供了構(gòu)建云原生基礎(chǔ)設(shè)施的工具。往上,你可以開始添加運行和管理應(yīng)用程序所需的工具,比如運行時和調(diào)度層。在最上層,有定義和開發(fā)應(yīng)用程序的工具,比如數(shù)據(jù)庫、鏡像構(gòu)建和 CI/CD 工具(我們將在后文討論)。

好了,現(xiàn)在你應(yīng)該記住了云原生全景圖始于基礎(chǔ)設(shè)施,往上的每一層都更接近實際的應(yīng)用程序。這就是每層代表的意思(后面我們會討論上圖右邊的兩“列”)。下面我們就從最底層開始,逐層進行解析。
供應(yīng)層 (Provisioning)

供應(yīng)指的是為云原生應(yīng)用準(zhǔn)備標(biāo)準(zhǔn)基礎(chǔ)環(huán)境所涉及的工具。它包含了基礎(chǔ)設(shè)施的創(chuàng)建、管理、配置流程的自動化,以及容器鏡像的掃描、簽名和存儲等。供應(yīng)層通過提供設(shè)置和實施策略,在應(yīng)用程序和平臺中構(gòu)建身份驗證和授權(quán),以及處理密鑰分發(fā)等等的工具,也拓展到了安全領(lǐng)域。

供應(yīng)層包括:

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

這些工具使工程師可以編寫基礎(chǔ)設(shè)施參數(shù),使系統(tǒng)可以按需搭建新環(huán)境,確保了一致性和安全性。

運行時層(Runtime)

接下來是運行時層。這個詞可能會讓你感到迷惑。像很多 IT 術(shù)語一樣,運行時沒有嚴(yán)格的定義,且可以根據(jù)語境有不同的用法。狹義上講,運行時是特定機器上準(zhǔn)備運行應(yīng)用程序的沙盒——也就是保障應(yīng)用程序正常運行所需的最低配置。廣義上講,運行時是運行一個應(yīng)用程序所需的所有工具。

在 CNCF 云原生全景圖中,運行時保障了容器化應(yīng)用程序組件的運行和通信, 包括:

  • 云原生存儲:為容器化應(yīng)用提供虛擬磁盤或持久化存儲;
  • 容器運行時:為容器提供隔離、資源和安全;
  • 云網(wǎng)絡(luò):分布式系統(tǒng)的節(jié)點(機器或進程)通過其連接和通信。

編排和管理層(Orchestration and Management)

一旦按照安全和合規(guī)性標(biāo)準(zhǔn)(供應(yīng)層)自動化基礎(chǔ)設(shè)施供應(yīng),并安裝了應(yīng)用程序運行所需的工具(運行時層),工程師就需要弄清楚如何編排和管理應(yīng)用程序。編排和管理層將所有容器化服務(wù)(應(yīng)用程序組件)作為一個群組管理。這些容器化服務(wù)需要相互識別和通信,并需要進行協(xié)調(diào)。這一層可為云原生應(yīng)用提供自動化和彈性能力,使云原生應(yīng)用天然具有可擴展性。

這一層包含:

  • 編排和調(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ù)間通信的技術(shù);
  • 服務(wù)代理:服務(wù)間通信的中介。服務(wù)代理的唯一目的就是對服務(wù)之間的通信進行更多控制,而不會對通信本身添加任何內(nèi)容。服務(wù)代理對下面將提到的服務(wù)網(wǎng)格(service mesh)至關(guān)重要。
  • API 網(wǎng)關(guān):一個抽象層,外部應(yīng)用可通過 API 網(wǎng)關(guān)進行通信;
  • Service Mesh:某種程度上類似于 API 網(wǎng)關(guān),它是應(yīng)用程序進行通信的專用基礎(chǔ)架構(gòu)層,提供基于策略的內(nèi)部服務(wù)間通信。此外,它還可能包含流量加密、服務(wù)發(fā)現(xiàn)、應(yīng)用程序監(jiān)控等內(nèi)容。

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

現(xiàn)在,我們來到了最頂層。應(yīng)用定義和開發(fā)層,顧名思義,聚集了讓工程師構(gòu)建和運行應(yīng)用程序的工具。上述所有內(nèi)容都是關(guān)于構(gòu)建可靠、安全的環(huán)境,以及提供全部所需的應(yīng)用程序依賴。

這一層包括:

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


貫穿所有層的工具
接下來我們將進入到云原生全景圖右側(cè)貫穿所有層的兩列。可觀察性和分析(Observability&analysis)是監(jiān)控各層的工具,平臺則將各層中不同的技術(shù)捆綁為一個解決方案。

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

為了限制服務(wù)中斷并降低解決問題的平均時間(MRRT),你需要監(jiān)控和分析應(yīng)用層序的方方面面,以便在出現(xiàn)異常時可立即發(fā)現(xiàn)并糾正。復(fù)雜環(huán)境中容易出現(xiàn)故障,這些工具可快速識別并解決故障,從而降低故障帶來的影響。由于這一類別貫穿并監(jiān)控各層,因此它在側(cè)面,而不是嵌入到某一層中。

這這一類別你將發(fā)現(xiàn):

  • 日志工具:收集事件日志(有關(guān)進程的信息);
  • 監(jiān)控方案:收集指標(biāo)(以數(shù)字表示的系統(tǒng)參數(shù),例如 RAM 可用性);
  • 追蹤工具:追蹤比監(jiān)控更進了一步,它們監(jiān)控用戶請求的傳播,與服務(wù)網(wǎng)格相關(guān)。
  • 混沌工程(Chaos Engineering):在生產(chǎn)環(huán)境中測試軟件的工具,可識別缺陷并進行修復(fù),減少其對服務(wù)交付的影響。

平臺類(Platform)

可以看到,圖中每一個模塊解決一個特定的問題。但我們知道,僅有存儲并不能提供應(yīng)用程序所需的全部功能。你還需要編排工具,容器運行時,服務(wù)發(fā)現(xiàn),網(wǎng)絡(luò),API 網(wǎng)關(guān)等等。平臺覆蓋多層,將不同的工具組合在一起,以解決更大的問題。

配置和微調(diào)不同的模塊使其安全可靠,并確保它利用的技術(shù)都能及時更新、所有漏洞都打了補丁,這并不是一件容易的事情。使用平臺時,用戶不用額外擔(dān)心這些細(xì)節(jié)問題。

你可能會注意到,所有的類別都圍繞著 Kubernetes 展開。這是因為 Kubernetes 雖然只是云原生景觀圖這張拼圖中的一塊,但它卻是云原生技術(shù)棧的核心。順便說一下,CNCF 剛創(chuàng)建時,Kubernetes 就是其中的第一個種子項目,后來才有了其他項目。

平臺可分為四類:

  • Kubernetes 發(fā)行版:采用未經(jīng)修改的開放源代碼(盡管有人對其進行了修改),并根據(jù)市場需要增加了其他功能;
  • 托管的 Kubernetes:類似于 Kubernetes 發(fā)行版,但是由提供商托管;
  • Kubernetes 安裝程序:自動執(zhí)行 Kubernetes 的安裝和配置過程;
  • PaaS/容器服務(wù):類似于托管的 Kubernetes,但是包含了一套更廣泛的應(yīng)用部署工具(通常是來自云原生景觀圖)。

    總結(jié)

在每個類別中,針對相同或相似的問題,都有不同的工具可選擇。有一些是適用于新現(xiàn)實的預(yù)云原生技術(shù),還有一些則是全新的。區(qū)別在于它們的實現(xiàn)和設(shè)計方法。沒有完美的技術(shù)符合你的所有需求。大多數(shù)情況下,技術(shù)受設(shè)計和架構(gòu)選擇的限制——始終需要權(quán)衡取舍。

在選擇技術(shù)棧時,工程師必須仔細(xì)考慮每種能力和需要權(quán)衡取舍的地方,以確定最合適的選項。雖然這樣會讓情況變得更復(fù)雜,但在選擇應(yīng)用程序所需的最適合的數(shù)據(jù)存儲、基礎(chǔ)設(shè)施管理、消息系統(tǒng)等方案時,這樣做是最可行的辦法。現(xiàn)在,構(gòu)建一個系統(tǒng)比云原生之前的時代容易多了。如果構(gòu)建恰當(dāng),云原生技術(shù)將提供更強大的靈活性。在現(xiàn)如今快速變化的技術(shù)生態(tài)中,這可能是最重要的能力之一。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多