CNCF 是什么?
CNCF 是一個開源軟件基金會,致力于使云原生計算具有普遍性和可持續性。 云原生計算使用開源軟件技術棧將應用程序部署為微服務,將每個部分打包到自己的容器中,并動態編排這些容器以優化資源利用率。 云原生技術使軟件開發人員能夠更快地構建出色的產品。
CNCF 項目成員
Kubernetes
Kubernetes 是世界上最受歡迎的容器編排平臺和第一個 CNCF 項目。 Kubernetes 幫助用戶構建、擴展和管理應用程序及其動態生命周期。 Kubernetes 最初是在谷歌開發的,現在有超過 2,300 名貢獻者,并且被世界上許多行業中一些具有創新性的公司所使用。 集群調度功能可讓開發人員構建云原生應用,更加關注代碼而不是操作。 Kubernetes 面向未來的應用程序開發和基礎設施管理可在本地或云端進行,無需供應商或云提供商綁定。
Prometheus
Prometheus 為云原生應用程序提供實時監控、警報和時間序列數據庫功能(包括強大的查詢和可視化能力),并與許多流行的開源數據導入、導出工具集成。 它已經成為監控基于容器的基礎設施的標準,并且隨著用戶需求的而不斷添加主要功能。 Prometheus為云原生體系結構(包括 Kubernetes 和其他下一代組件)提供了所需的可見性和故障排除。
OpenTracing
Tracing 是基于微服務環境的關鍵部分,用于追蹤跨服務請求的行為。 OpenTracing 是一種分布式追蹤 API,可用于各種流行的開源的和商業的追蹤工具。 OpenTracing API 使微服務交互監控成為可能,使用 Jaeger、Zipkin、DataDog 等流行工具進行切換。 它是LightStep、Red Hat、Uber和其他公司的工程師們努力的產物,它為開發人員提供了一種即使在異構環境中也能精確跟蹤的簡單工具。
Fluentd
Fluentd 是一個統一的日志記錄工具,可收集來自任何數據源(包括數據庫、應用程序服務器、最終用戶設備)的數據,并與眾多警報、分析和存儲工具配合使用。 Fluentd 通過提供一個統一的層來幫助用戶更好地了解他們的環境中發生的事情,以便收集、過濾日志數據并將其路由到許多流行的源和目的地。 Fluentd 通過提供統一的平臺來收集、構建(如果可能的話,使用JSON)并導出數據,從而使日志分析更加輕松。 它采用可插拔架構,通過統一的平臺和可插拔架構,簡化了新數據源(例如連接設備)和后端系統(例如云存儲和數據庫)的上線,并集成到 Atlassian 、 微軟等軟件提供商。
gRPC
gRPC 是由 Google 開發的高性能 RPC(遠程過程調用)框架,針對連接跨語言、云和數據中心的服務以及將移動設備連接到后端的云原生計算環境的大規模、多平臺性質進行了服務優化。 gRPC 支持 10 種流行語言,并被全球一些領先的企業、技術供應商和大學所使用。 gRPC改善了分布式計算環境中遠程調用的延遲性,同時支持多語言編程,并包括 iOS 和 Android 的客戶端庫以及后端服務器。
containerd
Containerd 是由 Docker 開發并基于 Docker Engine 運行時的行業標準容器運行時組件。 作為容器生態系統的選擇,Containerd 通過提供運行時,可以將 Docker 和 OCI 容器鏡像作為新平臺或產品的一部分進行管理。 Containerd 旨在直接集成到第三方軟件產品和項目(例如Kubernetes)中,提供圍繞容器生命周期的基礎功能。 它為許多基礎容器生命周期流程提供原型,使開發人員可以在更高層次上自由地進行創新。
Rkt
Rkt 是 Docker 容器引擎的一個可行的替代方案,最初由 CoreOS 創建,旨在實現最大的可組合性并管理名為 Pod 的容器集合。 Rkt 不使用守護進程來管理容器,而是直接從命令行啟動容器。 它針對安全性以及與其他開源容器技術和標準的集成進行了優化。
CNI
容器網絡接口(CNI)項目是由一系列行業組織創建的,目的是為了在云原生環境中標準化容器的基本網絡接口。 CNI 為開發人員提供了在多個容器運行時間上構建應用程序的自由,同時體驗了一致的網絡 API。 CNI 通過對基本功能進行標準化來推進集裝箱網絡的狀態,例如跨公共運行時(包括Kubernetes,Rkt,Mesos 和 Cloud Foundry)添加和刪除容器資源,并通過第三方插件主動支持高級網絡功能。
envoy
Envoy 是最初在 Lyft 創建的 Service Mesh(服務網格),現在用于Google、Apple、Netflix等公司內部。 Envoy 是用 C++ 編寫的,旨在最大限度地減少內存和 CPU 占用空間,同時提供諸如負載均衡、網絡深度可觀察性、微服務環境中的跟蹤和數據庫活動等功能。
jaeger
Jaeger 是由 Uber 開發的分布式追蹤系統,用于監控其大型微服務環境,現在已經被 Red Hat、SeatGeek 和 Under Armour 等公司收集。 Jaeger 被設計為具有高度可擴展性和可用性,并為 OpenTracing 標準和眾多存儲后端提供本地支持。 它具有現代 UI,旨在與云原生系統(如 OpenTracing、Kubernetes 和 Prometheus)集成。
Notary
Notary 最初由 Docker 創建,是 TUF(另一個CNCF項目)的實現,旨在通過強大的加密技術建立對數字內容的信任。 公證通過確保軟件來自預期的來源來做到這一點,并且除了其作者以外沒有任何人改變它。 它為開發人員提供了一個加密工具來驗證容器及其內容的來源。
The Update Framework
更新框架(TUF)是用于保護軟件更新系統免受更新或初始安裝期間發生的攻擊的規范。 TUF 最初由紐約大學工程學院開發,并已集成到由 Docker 和 VMware 等開發的企業軟件產品中。 TUF 使用加密密鑰來防止軟件安裝或更新期間的已知漏洞,確保用戶安裝他們打算安裝的文件。 TUF 作為軟件開發過程的一部分被集成,而不是作為獨立的網絡安全工具。
Vitess
Vitess 是一個用于通過廣義分片對 MySQL 進行水平縮放的數據庫集群系統。 通過封裝分片路由邏輯,Vitess 允許應用程序代碼和數據庫查詢對于將數據分布到多個分片上保持不變。 使用 Vitess,您甚至可以根據您的需求增長來分割和合并碎片,原子切割步驟只需幾秒鐘。 自 2011 年以來,Vitess 一直是 YouTube 數據庫基礎架構的核心組件,并且已經發展到包含數以萬計的 MySQL 節點。它的架構可以像在專用硬件上一樣有效地在公共或私有云架構中運行。 它結合并擴展了許多重要的 MySQL 功能和 NoSQL 數據庫的可擴展性。
CoreDNS
CoreDNS 是針對云原生環境的性能、靈活性和服務發現要求而優化的 DNS 服務器。 CoreDNS 是用 Go 編寫的 SkyDNS 的后繼者。 它包括各種功能,包括通過 Prometheus 進行 Kubernetes 支持和監控,并強調插件增加新功能或編譯簡化實施。 DNS 是基于云原生或基于微服務的體系結構的重要組成部分,可以包括數百或數千個單獨的服務、容器和其他端點。 CoreDNS 旨在支持這些體系結構,以及在需求成熟時輕松支持新功能。
Nats
NATS Server 是一個簡單、高性能的開源消息系統,用于云原生應用程序、IoT 消息傳遞和微服務架構。 Synadia 團隊的成員創建了NATS Server(用Go編寫)、NATS Streaming 以及用 Python、Ruby、Node.js、Elixir、Java、NGINX、C 和 C# 編寫的客戶端。 該社區貢獻了越來越多的庫,包括Arduino、Rust、Lua、PHP、Perl等等。
Linkerd
Linkerd 是一種基于云原生的 Service Mesh(服務網格),基于 Netty 和 Finagle 構建,是由 Twitter 構建的工具,用于管理其廣闊的微服務環境,使其可以擴展到每秒數以萬計的請求。 Linkerd 提供了一個獨立的代理層,分布式應用程序服務通過它可以相互通信來處理任務,如負載平衡、路由和 TLS。 它通過管理微服務之間的交互來確保應用程序性能,從而幫助簡化向云原生體系結構的轉換和操作。