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

CNCF Landscape路線圖

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

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

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

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

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

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

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

6.?網(wǎng)絡(luò)。Calico、Flannel以及Weave Net等軟件用于提供更靈活的網(wǎng)絡(luò)功能。

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

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

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

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

CNCF Landscape全景圖

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

這張全景圖試圖從云原生的層次結(jié)構(gòu),以及不同的功能組成上,讓用戶了解云原生體系的全貌,并幫助用戶在不同組件層次去選擇恰當?shù)能浖凸ぞ哌M行支持。從總體來看,它將云原生生態(tài)分為以下幾層:

Cloud

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

Provisioning

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

Runtime

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

Orchestration Management

這一層主要負責容器平臺的編排和調(diào)度,包括服務的發(fā)現(xiàn)和治理,遠程調(diào)用,服務代理,微服務治理等組件,包括:

App Definition and Development

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

Platform

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

Observability and Analysis

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

 

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

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

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

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

分享到

zhangnn

相關(guān)推薦