- CNCF組織介紹
- CNCF雲原生路線圖
- 階段一:容器化(Containerization)
- 階段二:持續集成&發布(CI/CD)
- 階段三:編排&應用定義(Orchestration&Application Definition)
- 階段四:監控&分析(Observability&Analysis)
- 階段五:服務代理、發現、網格化(Service Proxy、Discovery、Mesh)
- 階段六:網絡策略&安全(Networking,Policy,Security)
- 階段七:分布式數據庫&存儲(Distributed Database&Storage)
- 階段八:流&消息傳遞(Streaming&Messaging)
- 階段九:容器注冊&運行(Container Registry&Runtime)
- 階段十:軟件發布
- CNCF雲原生全景圖
參考:
- 一文帶你讀懂CNCF Landscape - 知乎 (zhihu.com)
- trailmap/CNCF_TrailMap_latest.pdf at master · cncf/trailmap (github.com)
- CNCF Cloud Native Interactive Landscape
CNCF組織介紹
Cloud Native Computing Foundation,雲原生計算基金會(以下簡稱CNCF)是一個開源軟件基金會,它致力於雲原生(Cloud Native)技術的普及和可持續發展。雲原生技術是通過一系列的軟件、規范和標准幫助企業和組織,在現代的動態環境(如公共雲、私有雲和混合雲)中構建和運行敏捷的、可擴展的應用程序。容器、微服務、微服務治理、聲明式API等都是代表性的雲原生技術。這些技術使松散耦合的系統具有更好的彈性、可管理性,同時更容易被監控和觀察。這些技術通過與強大的自動化工具相結合,允許工程師頻繁地、可預見地對系統進行任意的更改,並盡可能減少由此帶來的工作量(在這些雲原生技術和框架被采用之前,相信大家都有過針對系統任何一個小改動,都需要整個開發、測試、運維團隊投入大量工作的痛苦經歷),而這就是雲原生技術最希望為技術團隊以及業務帶來的價值。
在每年的CNCF年度報告中都會提及CNCF Landscape,CNCF Landscape是CNCF中的一個重要項目,它始於2016年11月,旨在為雲原生應用者提供一個資源地圖,幫助企業和開發人員快速了解雲原生體系的全貌。CNCF Landscape項目在Github上已經獲得超過5000顆星,表明廣大開發者和使用者對該項目的關注和重視。CNCF Landscape通過對雲原生技術中的大多數項目和產品進行分類,來追蹤整個生態中的大量應用。
CNCF雲原生路線圖
階段一:容器化(Containerization)
目前最流行的容器化技術是Docker,你可以將任意大小的應用程序和依賴項,甚至在模擬器上運行的一些程序,都進行容器化。隨着時間的推移,你還可以對應用程序進行分割,並將未來的功能編寫為微服務。
階段二:持續集成&發布(CI/CD)
創建CI/CD環境,從而使源代碼上的任意修改,都能夠自動通過容器進行編譯、測試,並被部署到預生產甚至生產環境中。
階段三:編排&應用定義(Orchestration&Application Definition)
Kubernetes是目前市場上應用編排領域被最廣泛應用的工具,Helm Charts可以用來幫助應用開發和發布者用於升級Kubernetes上運行的應用。
階段四:監控&分析(Observability&Analysis)
在這一步中,用戶需要為平台選擇監控、日志以及跟蹤的相關工具,例如將Prometheus用於監控、Fluentd用於日志、Jaeger用於整個應用調用鏈的跟蹤。
階段五:服務代理、發現、網格化(Service Proxy、Discovery、Mesh)
CoreDNS、Envoy和LInkerd可以分別用於服務發現和服務治理,提供服務的健康檢查、請求路由、和負載均衡等功能。
階段六:網絡策略&安全(Networking,Policy,Security)
Calico、Flannel以及Weave Net等軟件用於提供更靈活的網絡功能。
階段七:分布式數據庫&存儲(Distributed Database&Storage)
分布式數據庫可以提供更好的彈性和伸縮性能,但同時需要專業的容器存儲予以支持。
階段八:流&消息傳遞(Streaming&Messaging)
當應用需要比JSON-REST這個模式更高的性能時,可以考慮使用gRPC或者NATS。gRPC是一個通用的RPC(遠程調用)框架(類似各種框架中的RPC調用),NATS是一個發布/訂閱和負載均衡的消息隊列系統。
階段九:容器注冊&運行(Container Registry&Runtime)
Harbor是目前最受歡迎的容器鏡像庫,同時,你也可以選擇使用不同的容器運行環境用於運行容器程序。
階段十:軟件發布
最后可以借助Notary等軟件用於軟件的安全發布。