中國數字經濟資訊與服務平臺

一文帶你讀懂CNCF Landscape

Cloud Native Computing Foundation,云原生計算基金會(以下簡稱CNCF)是一個開源軟件基金會,它致力于云原生(Cloud Native)技術的普及和可持續發展。云原生技術是通過一系列的軟件、規范和標準幫助企業和組織,在現代的動態環境(如公共云、私有云和混合云)中構建和運行敏捷的、可擴展的應用程序。容器、微服務、微服務治理、聲明式API等都是代表性的云原生技術。這些技術使松散耦合的系統具有更好的彈性、可管理性,同時更容易被監控和觀察。這些技術通過與強大的自動化工具相結合,允許工程師頻繁地、可預見地對系統進行任意的更改,并盡可能減少由此帶來的工作量(在這些云原生技術和框架被采用之前,相信大家都有過針對系統任何一個小改動,都需要整個開發、測試、運維團隊投入大量工作的痛苦經歷),而這就是云原生技術最希望為技術團隊以及業務帶來的價值。

在每年的CNCF年度報告中都會提及CNCF Landscape,CNCF Landscape是CNCF中的一個重要項目,它始于2016年11月,旨在為云原生應用者提供一個資源地圖,幫助企業和開發人員快速了解云原生體系的全貌。CNCF Landscape項目在Github上已經獲得超過5000顆星,表明廣大開發者和使用者對該項目的關注和重視。CNCF Landscape通過對云原生技術中的大多數項目和產品進行分類,來追蹤整個生態中的大量應用。

CNCF Landscape路線圖

CNCF Landscape最重要的產出包括一個路線圖和一個全景圖。路線圖(Trail Map)是CNCF對云原生用戶使用開源項目以及云原生技術的推薦過程。在路線圖的每個步驟中,用戶都可以選擇供應商支持的產品或自己動手使用開源項目。

整個路線圖分成了十個步驟,每個步驟都是用戶或平臺開發者將云原生技術在實際環境中落地時,需要循序漸進思考和處理的問題:

1.?容器化。目前最流行的容器化技術是Docker,你可以將任意大小的應用程序和依賴項,甚至在模擬器上運行的一些程序,都進行容器化。隨著時間的推移,你還可以對應用程序進行分割,并將未來的功能編寫為微服務。

2.?CI/CD(持續集成和持續發布)。創建CI/CD環境,從而使源代碼上的任意修改,都能夠自動通過容器進行編譯、測試,并被部署到預生產甚至生產環境中。

3.?應用編排。Kubernetes是目前市場上應用編排領域被最廣泛應用的工具,Helm Charts可以用來幫助應用開發和發布者用于升級Kubernetes上運行的應用。

4.?監控和分析。在這一步中,用戶需要為平臺選擇監控、日志以及跟蹤的相關工具,例如將Prometheus用于監控、Fluentd用于日志、Jaeger用于整個應用調用鏈的跟蹤。

5.?服務代理、發現和治理。CoreDNS、Envoy和LInkerd可以分別用于服務發現和服務治理,提供服務的健康檢查、請求路由、和負載均衡等功能。

6.?網絡。Calico、Flannel以及Weave Net等軟件用于提供更靈活的網絡功能。

7.?分布式數據庫和存儲。分布式數據庫可以提供更好的彈性和伸縮性能,但同時需要專業的容器存儲予以支持。

8.?流和消息處理。當應用需要比JSON-REST這個模式更高的性能時,可以考慮使用gRPC或者NATS。gRPC是一個通用的RPC(遠程調用)框架(類似各種框架中的RPC調用),NATS是一個發布/訂閱和負載均衡的消息隊列系統。

9.?容器鏡像庫和運行環境。Harbor是目前最受歡迎的容器鏡像庫,同時,你也可以選擇使用不同的容器運行環境用于運行容器程序。

10.?軟件發布。最后可以借助Notary等軟件用于軟件的安全發布。

CNCF Landscape全景圖

CNCF Landscape路線圖從實踐步驟上幫助用戶梳理了整個云原生應用的最佳流程。然而整個實踐過程中的每個環節,用戶都需要了解有哪些具體的軟件和產品選擇,這就是CNCF Landscape全景圖發揮作用的地方了(https://landscape.cncf.io/)。

這張全景圖試圖從云原生的層次結構,以及不同的功能組成上,讓用戶了解云原生體系的全貌,并幫助用戶在不同組件層次去選擇恰當的軟件和工具進行支持。從總體來看,它將云原生生態分為以下幾層:

Cloud

圖中最底層是Cloud(公有云,包括AWS、Google、Azure、Ali、Baidu、Tencent等)以及Kubernetes認證的服務提供商(主要是私有云,包括諧云、靈雀云、博云、才云、DaoCloud、Rancher等提供商)

Provisioning

有了物理機或虛擬機后,在運行容器化服務之前,需要為容器準備標準化的基礎環境,這就是Provisioning這一層的作用。在Provisioning這一層中,分為以下幾個功能組成模塊:

  • Automation & Configuration:用于自動化部署和配置容器運行平臺和環境,代表工具和廠商包括Ansible、Chef、Puppet、VMware、OpenStack。
  • 容器鏡像庫:容器鏡像庫是整個CNCF云原生中的核心部件之一,因為基于容器的運行環境中,所有的應用都需要借助容器鏡像庫來進行安裝和部署。容器鏡像庫又分為公有和私有,公有的容器鏡像庫包括docker官方的registry,AWS的Elastic Container Registry,Google的Container Registry等。在私有鏡像庫中,VMware中國團隊主導的Harbor得到了廣泛的應用,大量的容器平臺目前都基于Harbor構建其鏡像倉庫。
  • Security & Compliance:Notary和TUF(The Upgrade Framework)是這個領域兩個主要的項目,其中TUF是一個開源的安全標準,Notary是其中一個實現。Notary軟件除了確保軟件的出處外,它還能保證在未經容器鏡像提供者批準的情況下,不會在鏡像供應鏈的任何地方修改鏡像內的內容,從而確保從開發到運營的過程中,安全都被無縫統一地嵌入到整個工作流中。
  • Key Management:主要用于在整個容器平臺中進行秘鑰管理。

Runtime

Runtime這一層可以理解為容器的整個運行環境,是云原生中最核心的部分,它包括了計算、存儲、網絡三大塊:

  • Container Runtime:Docker是最廣為人知的容器運行環境,但生產環境下也有一些其他的容器環境在運行。Containerd是滿足OCI規范的核心容器運行時,從設計上就是為了嵌入大型系統的。它由Docker Inc公司啟動,并且在2017年3月份捐贈給了CNCF。此外,CoreOS的RKT是一個用于在Linux上運行應用程序容器的CLI,也可以作為安全、可組合和基于標準的容器虛擬化運行環境。
  • Cloud-Native Storage:起初,容器為無狀態的運行單元,容器最上一層文件系統無法保存其在運行時寫入的文件或數據,容器重建或重啟后,這些寫入的數據將丟失。但隨著數據庫、消息隊列等中間件逐步在容器環境中得到應用,如今用戶對容器持久化存儲的理解和需求也更加深入和迫切。本文稍后還將對容器存儲做更深入的分析。
  • Cloud-Native Network:網絡歷來是虛擬化技術中最靈活多變的部分,目前,大多數客戶使用的主要包括Calico、Flannel、Open vSwitch等方案。

Orchestration Management

這一層主要負責容器平臺的編排和調度,包括服務的發現和治理,遠程調用,服務代理,微服務治理等組件,包括:

  • Scheduling & Orchestration:在這個領域,Kubernetes是當仁不讓的頭號玩家,目前基于Kubernetes的容器生態得到了迅速發展。其它的編排工具還包括Mesos、Docker Swarm等。
  • Coordination & Service Discovery:分布式計算中很重要的一點就是各個服務之間的協同以及服務發現(或節點發現的問題),從老牌的Zookeeper到近年來在很多互聯網廠商和應用中流行的Consul(Docker Swarm默認使用),都可以用于分布式服務的發現和配置,Kubernetes默認使用的則是CoreOS旗下的Etcd。
  • Remote Procedure Call:微服務間進行通信,通常有兩種方式,其一為HTTP REST-JSON的方式,另一種為RPC 方式,相比起來RPC方式效率更高。常用的包括 Google 開源的 GRPC 、apache 旗下的 thrift 框架、Netflix 開源的自帶負載均衡的 ribbon 和 avra 數據序列化框架。

App Definition and Development

這一層就是容器平臺上運行的具體應用和工具了,可以理解為容器平臺的應用商店。根據應用的不同作用的使用場景,可以大致分為以下幾種類型:數據庫(例如MySQL、MariaDB、mongoDB、PostgreSQL、Cassandra、TiDB等)、流處理和消息隊列(例如Spark、Storm、RocketMQ、Kafka、RabbitMQ等)、應用和鏡像制作(用于將應用封裝成標準鏡像,使應用能在標準的容器平臺上運行,例如Helm、Docker Composer、Packer等)、CI/CD(最常見的Jenkins、Atlassian公司開發的Bamboo等)。

Platform

從橫向上看,整個云原生還包括眾多的經過認證的平臺供應商。

Observability and Analysis

這個部分包含了大量用于對平臺進行監控(Prometheus、Nagios、Grafana、Zabbix等)、日志(Fluentd、ElasticSearch、Logstash)、以及追蹤(Jaeger)的工具。

 

綜上所述,CNCF Landscape全景圖中包含了CNCF社區成熟或使用范圍較廣、具有最佳實踐的產品和方案供用戶在實際應用中選擇。

在容器存儲(Cloud-Native Storage)部分,焱融云的YRCloudFile是國內唯一被列入到CNCF Landscape的容器存儲產品。

與CNCF Landscape Cloud-Native Storage部分其它產品和開源方案相比,YRCloudFile具有大量獨特的重要特性:

  • 支持有狀態容器在節點故障時,跨節點秒級重建,幫助有狀態Pod有效應對節點故障。
  • 提供細粒度的(PV級別)的多數據中心容災能力,可根據服務SLA要求創建和使用不同保護級別的PV,并通過優先本地讀技術,極大縮小數據訪問延遲。
  • 支持PV Quota、QoS等企業級特性,確保PV間不發生存儲資源的搶占。
  • 支持RWX、RWO、ROX等讀寫訪問模式。
  • 提供CSI、FlexVolume接口,并完成與靈雀云、諧云、Rancher、思科等多個容器平臺供應商的對接。
  • 通過PV Hot Spot功能,為上層業務快速定位數據訪問熱點,消除系統訪問瓶頸。
  • PV Insight功能,洞察PV內部數據分布及溫度,為PV內部數據治理提供決策依據。
  • 提供Prometheus exporter,并與Grafana進行整合,完成監控體系的融合和統一。
  • 全界面化呈現Kubernetes平臺中Pod、PV、PVC之間的關聯關系。
  • PV性能的實時監控、歷史監控記錄和告警。
  • PV動態Resize。
  • 支持RDMA,提供極致性能。

通過以上的介紹,相信我們已經為眾多即將在云原生應用,尤其是容器存儲領域付諸實踐的工程師團隊、CIO們提供了明確的建設思路和選型標準,我們也將會把云原生建設中所收獲的經驗和教訓分享給大家,幫助客戶更順暢地完成業務向云原生的轉型。

未經允許不得轉載:DOIT » 一文帶你讀懂CNCF Landscape
分享到: 更多 (0)
河北快3推荐号码今天