CNCF 是什么书幕?
CNCF 是一個開源軟件基金會象迎,致力于使云原生計算具有普遍性和可持續(xù)性香伴。 云原生計算使用開源軟件技術(shù)棧將應(yīng)用程序部署為微服務(wù)祖驱,將每個部分打包到自己的容器中,并動態(tài)編排這些容器以優(yōu)化資源利用率瞒窒。 云原生技術(shù)使軟件開發(fā)人員能夠更快地構(gòu)建出色的產(chǎn)品捺僻。
CNCF 項目成員
Kubernetes
Kubernetes 是世界上最受歡迎的容器編排平臺和第一個 CNCF 項目。 Kubernetes 幫助用戶構(gòu)建、擴展和管理應(yīng)用程序及其動態(tài)生命周期匕坯。 Kubernetes 最初是在谷歌開發(fā)的束昵,現(xiàn)在有超過 2,300 名貢獻者,并且被世界上許多行業(yè)中一些具有創(chuàng)新性的公司所使用葛峻。 集群調(diào)度功能可讓開發(fā)人員構(gòu)建云原生應(yīng)用锹雏,更加關(guān)注代碼而不是操作。 Kubernetes 面向未來的應(yīng)用程序開發(fā)和基礎(chǔ)設(shè)施管理可在本地或云端進行术奖,無需供應(yīng)商或云提供商綁定礁遵。
Prometheus
Prometheus 為云原生應(yīng)用程序提供實時監(jiān)控、警報和時間序列數(shù)據(jù)庫功能(包括強大的查詢和可視化能力)采记,并與許多流行的開源數(shù)據(jù)導(dǎo)入佣耐、導(dǎo)出工具集成。 它已經(jīng)成為監(jiān)控基于容器的基礎(chǔ)設(shè)施的標準唧龄,并且隨著用戶需求的而不斷添加主要功能兼砖。 Prometheus為云原生體系結(jié)構(gòu)(包括 Kubernetes 和其他下一代組件)提供了所需的可見性和故障排除。
OpenTracing
Tracing 是基于微服務(wù)環(huán)境的關(guān)鍵部分既棺,用于追蹤跨服務(wù)請求的行為讽挟。 OpenTracing 是一種分布式追蹤 API,可用于各種流行的開源的和商業(yè)的追蹤工具丸冕。 OpenTracing API 使微服務(wù)交互監(jiān)控成為可能耽梅,使用 Jaeger、Zipkin胖烛、DataDog 等流行工具進行切換褐墅。 它是LightStep、Red Hat洪己、Uber和其他公司的工程師們努力的產(chǎn)物妥凳,它為開發(fā)人員提供了一種即使在異構(gòu)環(huán)境中也能精確跟蹤的簡單工具。
Fluentd
Fluentd 是一個統(tǒng)一的日志記錄工具答捕,可收集來自任何數(shù)據(jù)源(包括數(shù)據(jù)庫逝钥、應(yīng)用程序服務(wù)器、最終用戶設(shè)備)的數(shù)據(jù)拱镐,并與眾多警報艘款、分析和存儲工具配合使用。 Fluentd 通過提供一個統(tǒng)一的層來幫助用戶更好地了解他們的環(huán)境中發(fā)生的事情沃琅,以便收集哗咆、過濾日志數(shù)據(jù)并將其路由到許多流行的源和目的地。 Fluentd 通過提供統(tǒng)一的平臺來收集益眉、構(gòu)建(如果可能的話晌柬,使用JSON)并導(dǎo)出數(shù)據(jù)姥份,從而使日志分析更加輕松。 它采用可插拔架構(gòu)年碘,通過統(tǒng)一的平臺和可插拔架構(gòu)澈歉,簡化了新數(shù)據(jù)源(例如連接設(shè)備)和后端系統(tǒng)(例如云存儲和數(shù)據(jù)庫)的上線,并集成到 Atlassian 屿衅、 微軟等軟件提供商埃难。
gRPC
gRPC 是由 Google 開發(fā)的高性能 RPC(遠程過程調(diào)用)框架,針對連接跨語言涤久、云和數(shù)據(jù)中心的服務(wù)以及將移動設(shè)備連接到后端的云原生計算環(huán)境的大規(guī)模涡尘、多平臺性質(zhì)進行了服務(wù)優(yōu)化。 gRPC 支持 10 種流行語言响迂,并被全球一些領(lǐng)先的企業(yè)考抄、技術(shù)供應(yīng)商和大學(xué)所使用。 gRPC改善了分布式計算環(huán)境中遠程調(diào)用的延遲性栓拜,同時支持多語言編程座泳,并包括 iOS 和 Android 的客戶端庫以及后端服務(wù)器惠昔。
containerd
Containerd 是由 Docker 開發(fā)并基于 Docker Engine 運行時的行業(yè)標準容器運行時組件幕与。 作為容器生態(tài)系統(tǒng)的選擇,Containerd 通過提供運行時镇防,可以將 Docker 和 OCI 容器鏡像作為新平臺或產(chǎn)品的一部分進行管理啦鸣。 Containerd 旨在直接集成到第三方軟件產(chǎn)品和項目(例如Kubernetes)中,提供圍繞容器生命周期的基礎(chǔ)功能来氧。 它為許多基礎(chǔ)容器生命周期流程提供原型诫给,使開發(fā)人員可以在更高層次上自由地進行創(chuàng)新。
Rkt
Rkt 是 Docker 容器引擎的一個可行的替代方案啦扬,最初由 CoreOS 創(chuàng)建中狂,旨在實現(xiàn)最大的可組合性并管理名為 Pod 的容器集合。 Rkt 不使用守護進程來管理容器扑毡,而是直接從命令行啟動容器胃榕。 它針對安全性以及與其他開源容器技術(shù)和標準的集成進行了優(yōu)化。
CNI
容器網(wǎng)絡(luò)接口(CNI)項目是由一系列行業(yè)組織創(chuàng)建的瞄摊,目的是為了在云原生環(huán)境中標準化容器的基本網(wǎng)絡(luò)接口勋又。 CNI 為開發(fā)人員提供了在多個容器運行時間上構(gòu)建應(yīng)用程序的自由,同時體驗了一致的網(wǎng)絡(luò) API换帜。 CNI 通過對基本功能進行標準化來推進集裝箱網(wǎng)絡(luò)的狀態(tài)楔壤,例如跨公共運行時(包括Kubernetes,Rkt惯驼,Mesos 和 Cloud Foundry)添加和刪除容器資源蹲嚣,并通過第三方插件主動支持高級網(wǎng)絡(luò)功能递瑰。
envoy
Envoy 是最初在 Lyft 創(chuàng)建的 Service Mesh(服務(wù)網(wǎng)格),現(xiàn)在用于Google端铛、Apple泣矛、Netflix等公司內(nèi)部。 Envoy 是用 C++ 編寫的禾蚕,旨在最大限度地減少內(nèi)存和 CPU 占用空間您朽,同時提供諸如負載均衡、網(wǎng)絡(luò)深度可觀察性换淆、微服務(wù)環(huán)境中的跟蹤和數(shù)據(jù)庫活動等功能哗总。
jaeger
Jaeger 是由 Uber 開發(fā)的分布式追蹤系統(tǒng),用于監(jiān)控其大型微服務(wù)環(huán)境倍试,現(xiàn)在已經(jīng)被 Red Hat讯屈、SeatGeek 和 Under Armour 等公司收集。 Jaeger 被設(shè)計為具有高度可擴展性和可用性县习,并為 OpenTracing 標準和眾多存儲后端提供本地支持涮母。 它具有現(xiàn)代 UI,旨在與云原生系統(tǒng)(如 OpenTracing躁愿、Kubernetes 和 Prometheus)集成叛本。
Notary
Notary 最初由 Docker 創(chuàng)建,是 TUF(另一個CNCF項目)的實現(xiàn)彤钟,旨在通過強大的加密技術(shù)建立對數(shù)字內(nèi)容的信任来候。 公證通過確保軟件來自預(yù)期的來源來做到這一點,并且除了其作者以外沒有任何人改變它逸雹。 它為開發(fā)人員提供了一個加密工具來驗證容器及其內(nèi)容的來源营搅。
The Update Framework
更新框架(TUF)是用于保護軟件更新系統(tǒng)免受更新或初始安裝期間發(fā)生的攻擊的規(guī)范。 TUF 最初由紐約大學(xué)工程學(xué)院開發(fā)梆砸,并已集成到由 Docker 和 VMware 等開發(fā)的企業(yè)軟件產(chǎn)品中转质。 TUF 使用加密密鑰來防止軟件安裝或更新期間的已知漏洞,確保用戶安裝他們打算安裝的文件帖世。 TUF 作為軟件開發(fā)過程的一部分被集成休蟹,而不是作為獨立的網(wǎng)絡(luò)安全工具。
Vitess
Vitess 是一個用于通過廣義分片對 MySQL 進行水平縮放的數(shù)據(jù)庫集群系統(tǒng)狮暑。 通過封裝分片路由邏輯鸡挠,Vitess 允許應(yīng)用程序代碼和數(shù)據(jù)庫查詢對于將數(shù)據(jù)分布到多個分片上保持不變。 使用 Vitess搬男,您甚至可以根據(jù)您的需求增長來分割和合并碎片拣展,原子切割步驟只需幾秒鐘。 自 2011 年以來缔逛,Vitess 一直是 YouTube 數(shù)據(jù)庫基礎(chǔ)架構(gòu)的核心組件备埃,并且已經(jīng)發(fā)展到包含數(shù)以萬計的 MySQL 節(jié)點姓惑。它的架構(gòu)可以像在專用硬件上一樣有效地在公共或私有云架構(gòu)中運行。 它結(jié)合并擴展了許多重要的 MySQL 功能和 NoSQL 數(shù)據(jù)庫的可擴展性按脚。
CoreDNS
CoreDNS 是針對云原生環(huán)境的性能于毙、靈活性和服務(wù)發(fā)現(xiàn)要求而優(yōu)化的 DNS 服務(wù)器。 CoreDNS 是用 Go 編寫的 SkyDNS 的后繼者辅搬。 它包括各種功能唯沮,包括通過 Prometheus 進行 Kubernetes 支持和監(jiān)控,并強調(diào)插件增加新功能或編譯簡化實施堪遂。 DNS 是基于云原生或基于微服務(wù)的體系結(jié)構(gòu)的重要組成部分介蛉,可以包括數(shù)百或數(shù)千個單獨的服務(wù)、容器和其他端點溶褪。 CoreDNS 旨在支持這些體系結(jié)構(gòu)币旧,以及在需求成熟時輕松支持新功能。
Nats
NATS Server 是一個簡單猿妈、高性能的開源消息系統(tǒng)吹菱,用于云原生應(yīng)用程序、IoT 消息傳遞和微服務(wù)架構(gòu)彭则。 Synadia 團隊的成員創(chuàng)建了NATS Server(用Go編寫)鳍刷、NATS Streaming 以及用 Python、Ruby贰剥、Node.js折联、Elixir燕刻、Java笼痹、NGINX钦听、C 和 C# 編寫的客戶端疙筹。 該社區(qū)貢獻了越來越多的庫娜亿,包括Arduino馁启、Rust养匈、Lua坯癣、PHP瓶盛、Perl等等。
Linkerd
Linkerd 是一種基于云原生的 Service Mesh(服務(wù)網(wǎng)格)示罗,基于 Netty 和 Finagle 構(gòu)建惩猫,是由 Twitter 構(gòu)建的工具,用于管理其廣闊的微服務(wù)環(huán)境蚜点,使其可以擴展到每秒數(shù)以萬計的請求轧房。 Linkerd 提供了一個獨立的代理層,分布式應(yīng)用程序服務(wù)通過它可以相互通信來處理任務(wù)绍绘,如負載平衡奶镶、路由和 TLS迟赃。 它通過管理微服務(wù)之間的交互來確保應(yīng)用程序性能,從而幫助簡化向云原生體系結(jié)構(gòu)的轉(zhuǎn)換和操作厂镇。