盤點那些你可能錯過的CNCF優秀開源項目

自2015年成立以來,雲原生計算基金會(CNCF)已經成爲開源生態系統中最重要的推動者之一,特別是當涉及到影響容器和其他“雲原生”技術的工具時。CNCF成立的目的是促進和組織與大型行業趨勢相關的項目,包括容器化、編排和微服務架構。自那以後,CNCF已經增加了10個開源項目。

即使您從未聽說過CNCF,也一定聽說過比它更受歡迎的項目之一:Kubernetes容器編排平臺,但是CNCF比Kubernetes要大得多。如果您想要了解容器和雲計算領域的重要發展,可以看看下文中介紹的CNCF生態系統中其他值得關注的重要項目。

LINKERD

https://linkerd.io

第一個是Linkerd,一個基於微服務的原生雲應用程序的開源“服務網格(service mesh)”項目。

Linkerd背後的想法是:微服務固然很好,但是隻有當你有一個好方法來連接它們、形成完整的應用程序時,微服務的好處才能夠體現。如若不然,你的微服務應用程序就會變成一個笨重的移動部件,它們彼此也不能很好地結合在一起。

Linkerd是一個開源項目,旨在通過提供開發人員所說的“服務網格”來解決上述挑戰。Linkerd的服務網格提供了一個方便可靠的接口,不同的服務可以交互運行。除了通過爲連接服務提供簡單的方式和一致的抽象層來簡化程序員的工作之外,Linkerd還具備可伸縮性、高可用性和安全性等特點。該項目由Buoyant監管,於2017年初加入CNCF。

FLUENTD

https://www.fluentd.org

度量只是微服務應用程序可見性難題的一個方面。集中化的日誌則是另一個。

隨着應用程序的數量和公司規模的增長(尤其是越來越多的服務被容器化),在一個地方收集、分析和查詢結構化日誌是非常重要的。

這就是Fluentd的初衷。Fluentd是一個日誌收集器(類似於logstorage),通過它可以對日誌進行過濾、淨化和路由到各種目的地。與其他日誌收集器一樣,Fluentd可以與各種核心和第三方輸入及輸出插件(如Elasticsearch插件、S3插件等)一起使用。

Fluentd還具有一定的內存存儲和可靠性。從多個主機到Fluentd、接着到Elasticsearch集羣的rsyslog文件的日誌路徑極其簡潔,這一簡單的例子也充分證明了使用Fluentd的益處所在。

OPENTRACING

http://opentracing.io

值得關注的第三個項目是分佈式跟蹤。隨着單體應用程序被分解爲各種更小的服務,自然會有越來越多的數據在服務中傳輸,從前端傳輸到後端,從一個服務傳輸到另一個服務。但是,當一個具有各種依賴關係的公共應用程序突然出現延遲時,會發生什麼情況呢?這就是分佈式跟蹤的由來。其核心在於,跟蹤是通過不同的請求調用、線程和流程來傳播元數據,並最終基於此元數據構建一個圖表。

OpenTracing是一種跟蹤標準,它是爲響應分佈式跟蹤領域長期存在的問題而創建的——即,當一個公司的堆棧可能由大量第三方軟件、操作系統和自定義應用程序組成的時候,如何協調跟蹤?

OpenTracing,一種標準化的跟蹤程式,就是這一難題的解決方案。該項目爲跨越(即定時操作)管理和進程間傳播,提供了的設備API的標準化服務。因此,用戶可以輕鬆地切換到跟蹤庫或集中式跟蹤系統(如Zipkin、Dapper等),無須複雜的配置,免去了很多麻煩。

GPRC

https://grpc.io

到目前爲止,我們已經知道了如何部署、調度和了解雲中的微服務。但是他們之間的交流方式是什麼呢?

讓我們來看看“遠程程序調用(RPC)”。

遠程程序調用的概念已經存在了一段時間了,它指的是一種模式,在這種模式中,函數被稱爲遠程調用,通常在系統中使用,而不是基於RESTful服務的CRUD模型。

但是,gRPC指的是谷歌實現的遠程程序調用,它利用了http/2和協議緩衝區。與基於jsf的RPC相比,gRPC已經被證明在數量級上更快,這使得它成爲大型分佈式平臺的優秀選擇。事實上,etcd(來自CoreOS的流行鍵值存儲)和谷歌自己的BigTable都是gRPC!

RKT

https://coreos.com/rkt/

最後一個值得關注的項目是rkt(也稱爲Rocket),一個容器運行時。儘管Docker的containerd運行時可能是以推廣容器概念的容器爲目的的運行時,但是Docker仍然是編排生態系統中常用的運行時,因此我們相信RKT在後期會變得越來越受歡迎。

兩者之間的差異也是顯而易見的。雖然Docker已經選擇了在集羣中打包,並由一個守護進程和通過REST API與保護進程通信的可執行程序組成,但是rkt要簡單得多。它由一個簡單的命令行工具組成,當給定一個鏡像、一個規範格式和一個鏡像發現機制時,rkt就能運行一個容器。

使用RKT,用戶可以在配置容器運行時時避免像systemd這樣的問題。此外,rkt不僅可以運行App Container format中的鏡像,還可以運行標準的Docker鏡像。

結語

我們正在一步步更快地向微服務架構的世界邁進,與此同時,越來越多的開源項目涌現,以期爲那些真正想要做到“雲原生”的組織及個人服務。CNCF有大量優秀卻未必廣爲人知的項目,本文只涵蓋了其中一部分,建議您也可以多瞭解其他的項目,爲未來儲備:https://www.cncf.io


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章