日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

都在说云原生,它的技术图谱你真的了解吗?

發(fā)布時(shí)間:2024/8/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 都在说云原生,它的技术图谱你真的了解吗? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來源 |?K8sMeetup社區(qū)

作者 |?Catherine Paganini

翻譯 |?Sarah(K8sMeetup)

校對(duì) |?木子(才云)

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

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

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

云原生全景圖的 4 層

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

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

供應(yīng)層 (Provisioning)

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

供應(yīng)層包括:

  • 自動(dòng)化和部署工具:幫助工程師在無需人工干預(yù)情況下即可構(gòu)建計(jì)算環(huán)境;

  • 容器注冊(cè)表:存儲(chǔ)應(yīng)用程序的可執(zhí)行文件;

  • 不同安全領(lǐng)域的安全和合規(guī)框架

  • 密鑰管理解決方案:通過加密確保只有授權(quán)的用戶才能訪問特定的應(yīng)用程序。

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

運(yùn)行時(shí)層(Runtime)

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

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

  • 云原生存儲(chǔ):為容器化應(yīng)用提供虛擬磁盤或持久化存儲(chǔ);

  • 容器運(yùn)行時(shí):為容器提供隔離、資源和安全;

  • 云網(wǎng)絡(luò):分布式系統(tǒng)的節(jié)點(diǎn)(機(jī)器或進(jìn)程)通過其連接和通信。

編排和管理層(Orchestration and Management)

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

這一層包含:

  • 編排和調(diào)度:部署和管理容器集群,確保它們具有彈性伸縮能力,相互之間低耦合,并且可擴(kuò)展。事實(shí)上,編排工具(絕大多數(shù)情況下就是 Kubernetes)通過管理容器和操作環(huán)境構(gòu)成了集群;

  • 協(xié)調(diào)和服務(wù)發(fā)現(xiàn):使得服務(wù)(應(yīng)用程序組件)之間可以相互定位和通信;

  • 遠(yuǎn)程進(jìn)程調(diào)用(RPC):使跨節(jié)點(diǎn)服務(wù)間通信的技術(shù);

  • 服務(wù)代理:服務(wù)間通信的中介。服務(wù)代理的唯一目的就是對(duì)服務(wù)之間的通信進(jìn)行更多控制,而不會(huì)對(duì)通信本身添加任何內(nèi)容。服務(wù)代理對(duì)下面將提到的服務(wù)網(wǎng)格(service mesh)至關(guān)重要。

  • API 網(wǎng)關(guān):一個(gè)抽象層,外部應(yīng)用可通過 API 網(wǎng)關(guān)進(jìn)行通信;

  • Service Mesh:某種程度上類似于 API 網(wǎng)關(guān),它是應(yīng)用程序進(jìn)行通信的專用基礎(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ùn)行應(yīng)用程序的工具。上述所有內(nèi)容都是關(guān)于構(gòu)建可靠、安全的環(huán)境,以及提供全部所需的應(yīng)用程序依賴。

這一層包括:

  • 數(shù)據(jù)庫:使應(yīng)用程序能以有序的方式收集數(shù)據(jù);

  • 流和消息傳遞:使應(yīng)用程序能發(fā)送和接收消息(事件和流)。它不是網(wǎng)絡(luò)層,而是讓消息成為隊(duì)列并處理消息的工具;

  • 應(yīng)用程序定義和鏡像構(gòu)建:用于配置、維護(hù)和運(yùn)行容器鏡像(應(yīng)用程序的可執(zhí)行文件)的服務(wù);

  • 持續(xù)集成和持續(xù)交付(CI/CD):使開發(fā)者可自動(dòng)測(cè)試代碼是否與代碼庫(應(yīng)用程序的其余部分)兼容。如果團(tuán)隊(duì)足夠成熟,甚至可以自動(dòng)部署代碼到生產(chǎn)環(huán)境。

貫穿所有層的工具

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

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

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

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

  • 日志工具:收集事件日志(有關(guān)進(jìn)程的信息);

  • 監(jiān)控方案:收集指標(biāo)(以數(shù)字表示的系統(tǒng)參數(shù),例如 RAM 可用性);

  • 追蹤工具:追蹤比監(jiān)控更進(jìn)了一步,它們監(jiān)控用戶請(qǐng)求的傳播,與服務(wù)網(wǎng)格相關(guān)。

  • 混沌工程(Chaos Engineering):在生產(chǎn)環(huán)境中測(cè)試軟件的工具,可識(shí)別缺陷并進(jìn)行修復(fù),減少其對(duì)服務(wù)交付的影響。

平臺(tái)類(Platform)

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

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

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

平臺(tái)可分為四類:

  • Kubernetes 發(fā)行版:采用未經(jīng)修改的開放源代碼(盡管有人對(duì)其進(jìn)行了修改),并根據(jù)市場(chǎng)需要增加了其他功能;

  • 托管的 Kubernetes:類似于 Kubernetes 發(fā)行版,但是由提供商托管;

  • Kubernetes 安裝程序:自動(dòng)執(zhí)行 Kubernetes 的安裝和配置過程;

  • PaaS/容器服務(wù):類似于托管的 Kubernetes,但是包含了一套更廣泛的應(yīng)用部署工具(通常是來自云原生景觀圖)。

    總結(jié)

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

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

更多閱讀推薦

  • SRE 是如何保障穩(wěn)定性的

  • 新春聊一下:技術(shù)架構(gòu)與架構(gòu)師角色的諸多思考

  • 如何寫出讓 CPU 跑得更快的代

  • 備戰(zhàn)春招:阿里一面,給了幾條SQL,問需要執(zhí)行幾次樹搜索操作?

總結(jié)

以上是生活随笔為你收集整理的都在说云原生,它的技术图谱你真的了解吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。